Validating a Model for Motion Capture
Verify that your character model matches ARKit’s Motion Capture requirements.
Overview
ARKit‘s body-tracking functionality requires models to be in a specific format. Models that don’t match the expected format may work incorrectly, or not work at all. Use the detailed information in this article to verify that your character’s scene coordinate system and orientation match ARKit’s expectations, and ensure that your skeleton matches ARKit’s expected joint names and hierarchy for Motion Capture.
Additionally, you can verify models that you’ve rigged according to Rigging a Model for Motion Capture, and use the information to modify your existing rigged humanoid models to match the expected format.
Confirm Scene and Model Coordinate Systems
Your exported model must use a scene coordinate system that uses +Y for up, +Z for forward, and +X for right. Your model also must face forward on the +Z axis.
If your 3D software package doesn’t use this coordinate system by default, you may be able to reconfigure your scene settings or transform the coordinate system as part of the export process.
Validate Joint Names, Relationships, and Orientation
The joints that make up your model’s skeleton must exactly match ARKit’s required joint names. Additionally, the relationship between joints must also match ARKit’s layout.
Although your skeleton must contain all the expected joints in the correct hierarchy, you don’t have to bind vertices to every bone. If your character doesn’t need moving eyes, for example, its skeleton must still have the bones that control the eyes, but you can simply bind no part of your model to those bones so they have no affect on your model.
Make sure to match the orientation of every joint in your model in its bind post to match the values in the model biped skeleton.
Confirm Bind Pose and Binding
Your characters should be rigged in a standard T-pose. Although some software packages allow you to bind your character mesh in multiple poses, your character model shouldn’t have any additional bind poses. No more than four joints should contribute to the movement of any single vertex in your model and you shouldn’t add any animation keyframes to your character.
Match Torso Joints
The torso of a puppeteering skeleton should contain eight joints: the hip joint, which is the root of the joint hierarchy, and seven spine joints. The hip joint and first spine joint overlap when the character is in the T-pose position.
[Image]
Joint name | Parent joint |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Review Head and Neck Joints
The head contains four neck joints extending from the spine, as well as joints for controlling the specific parts of the head, including the eyes and eyelids, nose, chin, and jaw.
[Image]
Joint name | Parent joint |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Review Arm and Shoulder Joints
Both arms descend from the seventh spine joint and are comprised of three joints, representing the shoulder, elbow, and wrist.
[Image]
Joint name | Parent joint |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Review Leg and Foot Joints
The leg and foot joints of the model descend from the hips, with joints for moving the upper legs, lower legs, feet, and toes.
[Image]
Joint name | Parent joint |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Review Right-Hand Joints
The hands contain many joints, with each of the four fingers comprised of five joints descending from the hand. The thumb has only four joints, but also descends from the hand joint.
[Image]
Joint name | Parent joint |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Review Left-Hand Joints
The structure and naming convention of the joints of the left hand are similar to those of the right.
[Image]
Joint name | Parent joint |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|