Multi-Skeleton Rigs from Maya LT to Unity
We are creating a game with customisable avatars, and monsters which share a common body but have different accessories.
Each monster is made up of four separate meshes:
Body - this is the main mesh that is shared through all the monsters, with only textures being swapped
Accessories - a mask, a shoulder accessory and a tail.
As these meshes will be swapped in and out depending on which monster is chosen and the accessories will all have different animations, each mesh has their own skeleton.
The problem that we are encountering is the pipeline between animating in Maya LT and putting the elements together in Unity. To animate, we need to have the accessories following the main mesh as it moves. To do this the mask skeleton was parented to the body mesh, and a test flip animation was created. The two meshes were separated and imported into Unity, where the mask mesh was re-parented to the body mesh. However, when the flip animation was played the mask double-transformed, following the body animation and replicating that movement in it's own animation. We suspect that the mask inherited the animation from the body mesh, thus for the mask, the flip animation was playing twice, once driven by the connection to the body mesh, and the second time in it's own animation file.
The approach that we’re considering is to rig all of these meshes separately in their own files. Then we would animate the body mesh without accessories (let’s use the flip as our example again) and export it as an fbx. The rigged mask would be imported (Maya LT doesn’t have referencing) and a parent constraint would be applied between the mask’s root joint and the neck joint. The mask would then be animated as needed, taking its translation and root rotation from the body mesh. We would then unparent the mask and export it separately from the body mesh.
What we’re doing seems similar to customisation of clothing and hair of other games. Does the above approach seem reasonable, or are there techniques that we are unaware of?