The Engine is able to load animated objects and skinned characters with bones. There are some things to keep in mind when we're going to export animations to the Engine.
When creating models and animations for the Engine, there are some limitations, specially if the Engine will be used in mobile platforms, in which resources are more limited:
- Currently, there are no limits in the number of bones deforming a mesh in windows, but in some smartphones, there are limitations or important performance reductions. If you're going to use the engine in mobile platforms, specially in Android, is recommended to not use more than 50 bones to deform a character or mesh.
- Biped is supported, as well as custom skeleton and hierarchies; Anyway, you should keep the skeletons simple. Usually, complex rigs are used for animation, but in the final skeleton exported to the engine should only be the deformer bones, to increase performance and prevent issues with complex constraint setups. A good way to do this, is to use the complex rig for the animation, but in the final one, use only the bones that are deforming the scene. For that, it's possible to bake the animation so no constraints, helpers and complex stuff is needed. Here is a document explainig a simple way to bake animation in 3Ds Max.
- No vertex level animations like fluid simulations or morphers are supported currently, you may only deform vertices using bones and skin modifier.
Here, we'll expose some guidelines and suggestion that will help you when exporting animations from 3Ds Max.
- Don't forget to activate animation in the exporter options, so the animation information in the scene and objects gets exported:
- The exported animation will only use the frames in the active timeline. That's it, deciding the frame range in the timeline, you'll export the same frame range in the exported animation. The suggested workflow is to add all the animations consecutively, like: animation01 → frames 0 to 40, animation02 → frames 41 to 100, animation03 → frames 101 to 150, etc. Later, you can set those frame ranges in the timeline to export the animations separately. Right under the animation playback controls, you'll find the “Time Configuration” button. It will open the window that you can see in the image above. In the field “Animation”, you have to define the start and end frames of the timeline: this is the frame range that will get exported.
- Before you export, make sure that everything is unselected, to prevent issues. Having something selected at export time may cause corrupted .EAD files.
- Modifiers that animate geometry won't be animated, only the first frame status will be baked into the .EAD (May behave incorrectly if other stuff in the scene depends on these animations, it's recommended to not animate modifiers)
- Animations and models should be separated: to not loading the same model over and over again with each animation, it's recommended to export several .EAD files, one with the Hierarchy (objects and relations between them) and Materials (defining material properties and textures, and then, one different .EAD file only containing animation information for each of the animations you want to load into that objects. This will allow you to load the model only once, and then only load animations into it as needed. Example:
- character_model.EAD (Hierarchy and Materials) - Remember that currently, you always need to activate animation when exporting. It's suggested that for this kind of models, you export a frame range like 0-1 without any movement.
- character_animation01.EAD (Only Animation)
- character_animation02.EAD (Only Animation)
- Animation Managers: If you're trying to export a complex scene, in which different objects needs to be able to play different animations simultaneously, you'll need to understand “animation managers” and how to set them up. Check the Advanced Export documentation to learn about them.