IC Python API:RLPy RISkeletonComponent
- Main article: Modules.
- Last modified: 04/29/2020
Description
This class is mainly used to get all the bones, skeleton states, and animation clips inside an object. If the control object of this component is RIAvatar, then the motion bones will be retrieved. For other objects, the skin bones will be returned. For avatars, the motion bones will be present mainly for retargeting purchases, which are also responsible for driving the skin bones.
Inheritance
RIBase> RISkeletonComponent
Member Functions
GetClip ( self, uIndex )
Get the clip on the current object at the specified index. Currently, only works for body motion clips on the timeline for avatars and animation tracks for other object types. If the current object does not have a clip or if the index exceeds the number of existing clips then return None.
See also: RIClip
Parameters
- uIndex [IN] Index number for the Clip - integer
Returns
- The newly copied animation clip object - RIClip
1 # Get Clip
2 skeleton_component = avatar.GetSkeletonComponent()
3 print(skeleton_component.GetClip(0))
GetClipCount ( self )
Get the total clip count for the current object. Currently, only works for body motion clips on the timeline for avatars and animation tracks for other object types. If a clip does not exist then return 0.
See also: RIClip
Returns
- The total number of clips in this skeleton component - integer
1 # Get Clip Count
2 skeleton_component = avatar.GetSkeletonComponent()
3 print(skeleton_component.GetClipCount())
GetMotionBones ( self )
Get all of the motion bones for the current object. Currently, this function is only supported for avatars. Retargeting is applied to the motion bones, which is a unified skeleton for various characters. Motion bones are also responsible for driving skin bones.
See also: RINode
Returns
- All of the motion bone nodes - RINode list
1 # Get Motion Bones
2 skeleton_component = avatar.GetSkeletonComponent()
3 motion_bones = skeleton_component.GetMotionBones()
4 print(len(motion_bones))
GetRootBone ( self )
Get the root bone of this skeleton component.
See also: RINode
Returns
- The root bone - RINode
1 # Get Motion Bones
2 skeleton_component = avatar.GetSkeletonComponent()
3 root_bone = skeleton_component.GetRootBone()
4 print(root_bone.GetName())
GetSkinBones ( self )
Get the skin bones for the current object. Skin bones are the counterparts to the mesh skin, if this object is an avatar then the motion bones will drive the skin bones.
See also: RINode
Returns
- All of the skin bone nodes - RINode list
1 # Get Motion Bones
2 skeleton_component = avatar.GetSkeletonComponent()
3 motion_bones = skeleton_component.GetSkinBones()
4 print(len(motion_bones))
GetSelectedBones ( self )
Get all of the selected bones on the current object. If no bones are selected for the current character, then an empty list is returned.
Returns
- All of the currently selected bones - RINode list
1 # Get Motion Bones
2 skeleton_component = avatar.GetSkeletonComponent()
3 selected_bones = skeleton_component.GetSelectedBones()
4 print(len(selected_bones))
GetRootPositionRetargetingRatio ( self )
If the current object has motion bone retargeting, then get the position ratio (x, y, z) between the MotionRoot and SkinBoneRoot. If the current object is a prop then retargeting is not supported and (0, 0, 0) will be returned.
Returns
- The motion and skin bone root position ratio - RVector3
1 # Get Motion Bones
2 skeleton_component = avatar.GetSkeletonComponent()
3 xyz_ratio = skeleton_component.GetRootPositionRetargetingRatio()
4 print(xyz_ratio.x)
5 print(xyz_ratio.y)
6 print(xyz_ratio.z)