Static Art Assets Tutorial
This page explains how to build a Static Art Asset in 3ds Max/Maya.
A Static Asset is an art asset that does not animate, meaning that it does not need to deform. It is composed of either a single mesh, or a single group of meshes.
Once your artists have created a model in 3ds Max or Maya, that art will then need to be exported into a mesh file that HeroEngine can use. This section will review in detail the creation of a static asset (that being a game world asset that does not animate).
For quick reference on the different export modes, including static assets, see the Hero Export Guide.
Build the geometry
Model an object in 3ds Max or Maya. Remember to name it and to make sure the geometry is clean.
- transforms and scale should be reset
- Polygons are single sided
- Pivot point should be placed where you want it relative to the object
- Object should be one mesh or one group of meshes
Use a HeroMaterial
Next apply a HeroMaterial to your geometry. If you need more than one HeroMaterial, you can assign a Multi/Sub-Object material with as many sub-HeroMaterials as you want or you can assign individual HeroMaterials directly to the appropriate polygons. The sample image displays a fairly common HeroMaterial setup for us. It uses a diffuse texture(.dds) and Normal map(.dds) texture with a spec channel on it.
- Use a HeroMaterial or Multi/Sub-Object material made up of multiple HeroMaterials
- Textures must be dds files, and the texture path is relative to the model path. So if your model is in .../MyComputer/MyArt/MyModels/ and your texture is in .../MyComputer/MyArt/MyTextures/, your model now knows where to find its texture. When you upload it to the server via the repository browser it will then look to find its texture in the same relative path. So you would need to upload your model to .../MyRepository/MyArt/MyModels/ and you would need to upload your textures to .../MyRepository/MyArt/MyTextures. This is why we have the concept of the Art_Depot. But if you get confused, just put all your models and textures in the same folder on your local machine, then have them all in the same folder on the server, until you get your feet wet.
There are two special exceptions to "put your stuff anywhere". The select terrain texture dialog looks in \World\LiveContent\TerrainMaps\ and its sub-directories for terrain textures. Make sure to add your terrain textures there, or they will not be found by the select texture dialog. And Dynamic characters must have the Character\Dynamic_2 folder as their root. It is required that character files go inside the Character/Dynamic_2 folder, but you may create subfolders in anyway you like.
- If you are going to add LODs then follow the next step, otherwise you can can skip ahead.
- LOD objects must be named LOD_01-LOD_05. Use only what you need, simply start at 01.
- These should have the same material applied to them
To add an LOD to your static asset, create your low res geometry and place it in the exact same spot as your hi res geometry. Name your hi res LOD_01 and then each lower res piece of geometry LOD_02, LOD_03, LOD_04, LOD_05. You do not need all 5, use only what you feel you need, just don't skip any numbers, start at 01 and work from there. The engine automatically reads these labels from the asset as LOD's
You can also name the object and add the "_LOD_01" as a suffix. For example: myObject_LOD_01, myObject_LOD_02, myObject_LOD_03, myObject_LOD_04, and myObject_LOD_05
Once again, if you do not intend to use any occluders for your asset, you can skip ahead. Please reference the page on Occlusion_assets for more detailed information.
There are two ways of making Occluders. The first is mainly for exterior pieces. Since an Occluder can't occlude something within it's own volume, you need to make a few simple planes to occlude from each direction. These should have no material assigned to them and should be grouped after all the appropriate ones are made. Once they are grouped, name the group _occluder_only and move the groups pivot to the same spot as the main geometry. You can also name use the occluder_only tag as a suffix just like the LOD's, for example: "myObject_occluder_only"
The second method is to use the existing geometry of your asset as an occluder. This works well for interiors since the player is inside them looking outward. In this case, right click on your model or group and go to properties. Then click on the User Defined tab. This is the same place that you add snap settings. If you have snap setting add the following line after those:
If you intend on adding snap setting so that the engine can move your asset on the snap grid, then please look at the Tile Sets page.
These setting can be altered by using Hero Asset Tools in both 3ds Max and Maya. They can be found on the HeroTools shelf in Maya, or from the export panel in 3ds Max.
The following is instructions on how to manually manipulate the snap setting in Max or Maya:
- For 3ds Max snap setting should be placed on User defined properties of the object/group if it is intended to have snap properties in game.
- For Maya, snap setting go in the notes area of the parent's shape node or group head's node.
Example: GridSnap=.5 RotationalSnap=15 Occluder=true
Last but not least, export your asset through the Hero Export. Make sure that post processing is always on (this is the default setting).
- Export using *Static Asset setting on Hero Export
- Export unhidden is the most common way of exporting whats viewable in your viewport.
- Hide any unwanted objects/helpers in the background before export
- LOD and Occluder objects should be visible when exported
Now that your asset is exported, upload your resulting mesh file and .dds textures using the Repository Browser and then add your asset into HeroEngine.