Skip to content
This repository has been archived by the owner on Dec 1, 2021. It is now read-only.

Intermediate Skeleton & Retargeting

jsprenger edited this page Jun 29, 2021 · 1 revision

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.

Transfer of information

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.

Retargeting

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.

MOSIM Documentation

Introduction

Documentation

Known Issues

Clone this wiki locally