<aside> โ ๏ธ Custom armors is for advanced modders, as it require a good knowledge of rigging, skinning and 3D modeling characters in different softwares. The guide is a first draft about how to do armors, it may lack some important tips, in this case, feel free to contact a Warpfrog team member for more information.
</aside>
Since U12, the SDK now contain a special version of Manikin, the system we use to manage modular characters.
In the example folder in the SDK, you will find a custom helmet already configured, that serve as example of how to do a custom armor part.
The example folder contain a male and female fbx, that can be used as an example source to create new armor parts.
The guide will not cover how to create a compatible character model using a 3d software, so you will have to figure out how to do this.
The fbx can be used as a cut guide, to help you to avoid clipping and adjust a bitmask used for vertex occlusion (an armor part can hide a part of the torso for example), and as reference for the current rig used in the game.
The guide canโt focus on using a 3d modeling software, but we can at least share the export settings for Maya that is used by our character artist :p
<aside> ๐๏ธ When we export the Rig cannot be different from a scale of 1 before being exported from the modeling software.
</aside>
<aside> ๐๏ธ A part is a prefab that contain all skinned mesh renderers and components that will be added on the character in game
</aside>
To create a new armor part, drag and drop the armor fbx into the scene, select one (or multiple) skinned mesh renderer(s), go to Gameobject โ Manikin โ Create new part
then set the path where the part(s) should be saved.
Once the part is created, drag and drop the asset in an addressable group of your choice, and define an address to it.
Optionally, you can open the prefab and do the following:
Assign a rig on the manikin smr part to be able to view the mesh in prefab mode:
Add the reveal decal component on all skinned mesh renderers (including all lods) so reveal (decals) works
Character material should use the Shader ThunderRoad LIT, itโs necessary for reveal (decal) and other systems.
Try to optimize mask resolution depending on part size and LOD. For example sandals may need a lower resolution while a chestplate need an higher one, and LOD3 probably could even have lower resolution, if even no reveal at all.
Like items and environments colliders, armors can also use a physic material. To set a different material than flesh (default on characters), you need to add the mesh part component to the root of the part prefab.
As character only use simple colliders, the game use a custom system to determine the physic material on the collision point. This work by ray casting the low poly mesh to get an UV coordinate that can be then used to retrieve a specific color on an IDMap.
ID map of the chest part of the gladiator armor
Mesh part component:
<aside>
๐๏ธ Skinned mesh renderer
reference the mesh that will be used to retrieve the ID map color. For better performance, we recommend to use an higher lod so the raycast will be faster on a low poly mesh
</aside>
<aside>
๐๏ธ Default physic material
is the default material that will be used on the whole mesh. If the part is only one physic material, setting this should be enough.
</aside>
<aside>
๐๏ธ Id Map
is the texture to use in case the armor have multiple physic material
</aside>
SDK contain textures of each material type and an IdMapTest shader to visualize your idmap on your armor