EMotion FX 3
EMotion FX is a real time, next generation, character animation and general model export SDK which can plugged into any 3D engine, game or any other product. The SDK is designed from the ground up to take full advantage of hardware that allows parallel processing and also includes a code path optimized for single processor hardware.

The SDK has been in production since 2001 and has been licensed to other companies since 2003 which makes EMotion FX a very solid and robust product that has proven itself successfully in many games on both high- and low end platforms.

The EMotion FX SDK includes full body skeletal and facial animation support, lipsync, real time motion retargeting, inverse kinematics, PhysX ragdoll support, and comprehensive exporters for 3dsMax and Maya.

EMotion FX is a complete character and general purpose export solution. It handles everything from exporting geometry and animation data from 3D Studio Max or Maya to character customization to playing animations on your models inside your game.

EMotion FX supports a wide range of features, including:

  • Geometry and Animation Export: Many games use EMotion FX's exporter to also export level geometry, next to their animated characters. Our API allows you to very easily import this geometry inside your product.

  • Advanced LOD: This includes geometry LOD, skeletal LOD, motion LOD, material LOD and morph target LOD.

  • Motion Blending and Compositing: It is very easy to play animations on characters or objects. The motions can be blend and mixed together in layers.

  • Realtime Motion Retargeting: Share the same motion between characters with different proportions, saving both art time and memory.

  • Realtime Motion Mirroring: Instantly turn right handed motions into left handed motions, without any additional art work. This has turned out to be especially useful in sport games.

  • Advanced Motion Compression: We provide several compression techniques, including a technique similar to MP3 for music and JPG for images, providing high compression rates.

  • Inverse Kinematics: We provide several Inverse Kinematics solvers that can be used for planting feet or grabbing objects.

  • Jiggle Controller: Simulating small pieces of cloth, hair or fatty tissue brings your characters much more alive. This bone-based physics support does not rely on any external physics system.

  • Lookat Controller: This procedural controller allows you to make characters look towards a given goal position. This can make your characters more interactive.

  • PhysX Integration: We supply examples and code that allows you to easily turn your EMotion FX characters into ragdolls.

  • Character Customization: Different techniques inside EMotion FX allow for detailed character customization. This includes support for skinned attachments to customize clothing and hair styles, morphing to easily adjust body physical properties such as how fat a character is and how muscular. EMotion FX's scaling support also allows you to customize the size of individual bones.

  • Facial Animation and Lipsync: Advanced facial animation can be exported directly from Maya BlendShape and 3dsMax's Morpher modifier. It is also possible to do bone-based facial animation, or to even mix both techniques. Lipsync motions can be generated based on sound files. 
EMotion FX ships with exporter plugins for 3D Studio Max and Maya as well as with an application called EMotion Studio. The exporter plugins are used to export both geometry and animations. The animations can be on any object, so you can also animate buildings, lights or cameras for example.

EMotion Studio the tool in which you can inspect the exported data and configure your character and motions further. Things you can do inside EMotion Studio include:

  • Inspect Geometry: Check your normals, tangents, normal maps, shading and bounding volumes and collision meshes.

  • Test Motions: Try to see how the exported animations look on your characters. Adjust playback properties and layer other animations on top of it, to see how things will look in-game.

  • Test LOD Levels: Test the different levels of details.

  • Test Morph Targets: Test the morph targets by either controlling them manually or using morph target animations.

  • Setup Motion Events: If you would like to trigger sound effects at given points inside a motion, or spawn full particle effects, execute scripts or anything else you can imagine, edit motion events in a movie-editor style track based time line.

  • Inspect Hierarchy: This is useful if you want to see information about a given node. Quickly look up given node names and other properties. This is useful for programmers as well.

  • Test Attachments: Apply deformable and non-deformable attachments to characters to see if everything looks as expected. This is useful to test clothing items and to combine them to see if it all works as expected.

  • Lipsync: Link certain morph targets with given phonemes and quickly test by drag and dropping sound files into EMotion Studio. Batch generation of lipsync motion files from sound files is also supported.

  • Inspect Materials: Inspect exported material properties. EMotion Studio's default renderer supports full HDR lighting, diffuse maps, normal maps and specular maps.

  • Modern UI: EMotion Studio has a very modern user interface. It supports customizable layouts, movable interface items, multiple configurable viewports, an action history with full undo/redo support, multi-monitor support and it is fully scriptable and extensible through plugins.
API and Documentation
EMotion FX has a cross platform API. Each platform has its own optimizations to take full advantage of the specific hardware. The API is written in C++ and only uses special instructions through intrinsics. It does not depend on other external libraries such as STL. Since our code is cross platform it is very easy to compile it on any platform.

The documentation consists of four parts, currently available in English only. The four different parts are:

  • API References: Very useful if programmers want to look up the details on given methods or parameters. Every parameter, class, struct and function is fully documented.

  • Programmer Guide: This is a tutorial style guide, which explains all the features of the API in detail. It provides technical background information and explains through code snipsets how to perform certain tasks.

  • Artist Guide: This is the documentation for artists. It contains information about the exporters, EMotion Studio and how to add support for given features, from an art perspective.

  • API Examples: There are over 50 different very cleanly written API examples that show you how to implement each of the features. You can browse through the example categories either using our Sample Browser application or directly by looking into the example folders.