-
Notifications
You must be signed in to change notification settings - Fork 8
Intermediate Skeleton & Retargeting
To be able to transfer motions between different MMUs, motion modeling techniques, target engines, and ultimately companies, there must be a common understanding of the motion representation. For this reason, the intermediate skeleton was proposed and implemented. The intermediate skeleton is a hierarchical kinematic representation of the human body. It consists of a fixed number of joints, which have a predefined base orientation. As a result, the local up-axis MVector3(0,1,0)
of any joint should always point to its child. For example, the up-axis of the elbow joint will always point to the wrist joint. The local right-axis MVector3(1,0,0)
will always point in the main interaction direction of the joint. E.g. the right-axis of the head is pointing in the gaze direction, the right-axis of the wrist in the direction of the inside of the palm. To be able to animate different-sized characters, the intermediate skeleton is defined up to the scale and thus can be adapted to any sized humanoid avatar.
TODO: Insert an image here.
Similar to the BVH file structure, the static posture information and the active motion information are separated. MAvatarPosture
is the data structure to transfer static posture information (e.g. to transfer the zero posture in MAvatarDescription
during initialization), while MAvatarPostureValues
contain the dynamic information.
For more information on the structure of the Intermediate Skeleton, the motion transfer format and computational model, we have written a separate article on the Structure of the Intermediate Skeleton.
Any developer can implement the transfer of motion from and to the intermediate skeleton. For ease of use, however, we provide an implementation to retarget motion between different hierarchies. This approach does not require users to either understand or utilize the intermediate skeleton. However, the retargeting service can be utilized by sending global posture information re-using the MAvatarPosture
structure with different semantical usage. Thus, users of the retargeting service can provide and receive global joint positions and rotations in their own representation instead of directly utilizing the intermediate skeleton. This retargeting solution requires a reference posture, which can be generated with the Retargeting Configurator. For more information on the retargeting solution and the configurator, we provide a separate article on Retargeting and its Configuration.
- What is the MOSIM Framework?
- Components of the Framework
- Repository Structure
- RPCs with Apache Thrift
- Setting up the MMI-Environment
- MMU Development
- Target Engine Integration
- Integration in Unity
- Integration in UE4
- Integration in 3rd Party Engines
- Service Development
-
Intermediate Skeleton & Retargeting
- Concept of the Intermediate Skeleton
- Retargeting Service and Configurator
- Retargeting in Unity
- Retargeting in UE4
- Constraints