IBodyPose is the interface through which a body pose is consumed. It contains GetJointPoseLocal and GetJointPoseFromRoot methods, and exposes ISkeletonMapping which allows the consumer to query the joint set and parent/child relationships of each joint. Different skeletons have different joint sets, so you can use ISkeletonMapping to get a scapula or shoulder joint in one skeleton that doesn’t exist in another. You can also use it to find the parent of a joint, which is often used to determine relative position and rotation.BodyPoseData is the serialized ScriptableObject representation of a BodyPose, and can be used to store and recall pose data. To create an empty BodyPoseData object, on the menu, go to Meta > Interaction > Body Pose Recorder.PoseFromBody takes IBody and exposes IBodyPose. It is used to drive any component that takes an IBodyPose, such as a debug visual or body mesh.AutoUpdate boolean determines whether PoseFromBody should update automatically as the IBody data is updated. When set to true, it updates along with the IBody. When false, it doesn’t. Setting AutoUpdate to false and calling the UpdatePose() method explicitly can be used to take snapshots of the current pose of the IBody.BodyPoseComparerActiveState is a pose recognition component that compares local joint orientations between IBodyPoses. With it you can select which joints to monitor and what the maximum angle delta between each joint should be. If all joints are within this maximum range, the IActiveState becomes Active.
BodyPoseData ScriptableObjects. These ScriptableObjects can then be shipped with your application and used for pose comparison as preset body poses, or for driving body models for in-game pose teaching. This utility must be used in Play Mode in the Unity Editor in order to capture your live body pose.
| Property | Description |
|---|---|
Source | The IBody that will supply joint data for the captured pose. This will be auto-wired to the first IBody found in your scene, or you can override it as needed. |
Target Asset | An optional BodyPoseData ScriptableObject that the pose will be captured into. If none is provided, a new asset will be created for each captured pose, and written to Assets/BodyPoses. |
Capture Delay | The time between pressing the Capture Body Pose button and the actual capture. |
Play Sound On Capture | If checked, a system beep will be played when the timer elapses and a pose is captured. |