IC8 Python API:RLPy RIObject
Contents
- 1 Description
- 2 Class Methods
- 2.1 RLPy.RIObject.AlignTo(self, spTargetObject, eAlignAxis, bAlignToPivot)
- 2.2 RLPy.RIObject.Clone(self)
- 2.3 RLPy.RIObject.DeleteMesh(self, spMesh)
- 2.4 RLPy.RIObject.FollowPath(self, spPath, kAppTime)
- 2.5 RLPy.RIObject.GetBounds(self, kMaxPoint, kCenterPoint, kMinPoint)
- 2.6 RLPy.RIObject.GetControl(self, strKey)
- 2.7 RLPy.RIObject.GetDataBlock(self, strId)
- 2.8 RLPy.RIObject.GetID(self)
- 2.9 RLPy.RIObject.GetLinkedObject(self, kTime)
- 2.10 RLPy.RIObject.GetMeshes(self, bAll = True)
- 2.11 RLPy.RIObject.GetMeshNames(self, bAll = True)
- 2.12 RLPy.RIObject.GetName(self)
- 2.13 RLPy.RIObject.GetPivot(self, kPosition, kOrientation)
- 2.14 RLPy.RIObject.GetType(self)
- 2.15 RLPy.RIObject.IsSelected(self)
- 2.16 RLPy.RIObject.IsStatic(self)
- 2.17 RLPy.RIObject.LinkTo(self, spTargetObject, eAlignType, kTime)
- 2.18 RLPy.RIObject.LocalTransform(self)
- 2.19 RLPy.RIObject.ReleasePath(self, kTime)
- 2.20 RLPy.RIObject.RemoveDataBlock(self, strId)
- 2.21 RLPy.RIObject.RemoveLinkKey(self, kTime)
- 2.22 RLPy.RIObject.SetDataBlock(self, strId, spDataBlock)
- 2.23 RLPy.RIObject.SetName(self, strName)
- 2.24 RLPy.RIObject.SetParent(self, args)
- 2.25 RLPy.RIObject.SetStatic(self, bStatic)
- 2.26 RLPy.RIObject.UnLink(self, kTime)
- 2.27 RLPy.RIObject.Update(self)
- 2.28 RLPy.RIObject.WorldTransform(self)
- 3 Description
- 4 Constructor & Destructor
- 5 Member Functions
- 5.1 AlignTo (self, spTargetObject, eAlignAxis, bAlignToPivot)
- 5.2 Clone (self)
- 5.3 DeleteMesh (self, spMesh)
- 5.4 FollowPath (self, spPath, kAppTime)
- 5.5 GetBounds (self, kMaxPoint, kCenterPoint, kMinPoint)
- 5.6 GetControl (self, strKey)
- 5.7 GetDataBlock (self, strId)
- 5.8 GetID (self)
- 5.9 GetLinkedObject (self, kTime)
- 5.10 GetMeshNames (self, bAll=True)
- 5.11 GetMeshes (self, bAll=True)
- 5.12 GetName (self)
- 5.13 GetParent (self)
- 5.14 GetParentNode (self)
- 5.15 GetPivot (self, kPosition, kOrientation)
- 5.16 GetType (self)
- 5.17 IsSelected (self)
- 5.18 IsStatic (self)
- 5.19 LinkTo (self, *args)
- 5.20 LocalTransform (self)
- 5.21 ReleasePath (self, kTime)
- 5.22 RemoveDataBlock (self, strId)
- 5.23 RemoveLinkKey (self, kTime)
- 5.24 SetDataBlock (self, strId, spDataBlock)
- 5.25 SetName (self, strName)
- 5.26 SetParent (self, *args)
- 5.27 SetStatic (self, bStatic)
- 5.28 UnLink (self, kTime)
- 5.29 Update (self, *args)
- 5.30 WorldTransform (self)
- 5.31 __eq__ (self, kRhs)
- 6 Properties
- Main article: iC8 Modules.
- Last modified: 10/21/2026
Description
This class is used to access the bone node parameters in a character skeleton or object. Retrievable parameters include name, ID, parent node, list of child nodes, and more. Use Update to get the world-transform values of the bone node for the current point in time.
Class Methods
RLPy.RIObject.AlignTo(self, spTargetObject, eAlignAxis, bAlignToPivot)
Attach object to another object with align axis.
Experimental API
Parameters
- spTargetObject[IN] Attach target object - RLPy.RIObject
- eAlignAxis[IN] Attach object with align axis - RLPy.EAlignAxis
- RLPy.EAlignAxis_INVALID
- RLPy.EAlignAxis_X_AXIS
- RLPy.EAlignAxis_Y_AXIS
- RLPy.EAlignAxis_Z_AXIS
- RLPy.EAlignAxis_ROTATE_AXIZ
- bAlignToPivot[IN] Align object pivot or align object world bound center - bool
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # No example
RLPy.RIObject.Clone(self)
Clones the object original and returns the clone.
Experimental API
Returns
clonedobject.
1 # No example
RLPy.RIObject.DeleteMesh(self, spMesh)
Delete the mesh of the object.
Parameters
- spMesh[IN] the mesh want to delete - RLPy.RIMesh
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # No example
RLPy.RIObject.FollowPath(self, spPath, kAppTime)
Experimental API
Parameters
- spPath[IN]Path you want to set.
- kTime[IN] Time of following path.
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # No example
RLPy.RIObject.GetBounds(self, kMaxPoint, kCenterPoint, kMinPoint)
Get world bound of this object.
Experimental API
Parameters
kMaxPoint[OUT] The maximal point of the box - RLPy.RVector3f kCenterPoint[OUT] The center of the bounding box - RLPy.RVector3f kMinPoint[OUT] The minimal point of the box - RLPy.RVector3f
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # No example
RLPy.RIObject.GetControl(self, strKey)
Get control of the object.
Parameters
- strKey[IN] Key of the controller, allowing use "Transform" to retrieve the transform control of the Transform track, use "PathPosition" to retrieve the float control of Path position track, and use "PathOffset" to retrieve the transform control of the Path Offset track, - string
Returns
The specified control - RLPy.RControl
1 # No example
RLPy.RIObject.GetDataBlock(self, strId)
Provide object to get data block.
Experimental API
Parameters
- strId[IN] DataBlock Id - string
Returns
data block - RLPy. RDataBlock
1 # No example
RLPy.RIObject.GetID(self)
Get unique id of the object.
Returns
object id - int
1 # Get root bone node
2 avatar_list = RLPy.RScene.GetAvatars()
3 avatar = avatar_list[0]
4 skeleton_component = avatar.GetSkeletonComponent()
5 bone_node = skeleton_component.GetRootBone()
6
7 # Get root bone ID
8 bone_id = bone_node.GetID()
9 print(bone_id)
RLPy.RIObject.GetLinkedObject(self, kTime)
Get linked object by time.
Experimental API
Parameters
- kTime[IN] Time to get the linked object - RLPy.RLTime
Returns
Linkedobject or Linked Node. If it's null, there are no linked object.
1 # No example
RLPy.RIObject.GetMeshes(self, bAll = True)
Get all meshed of the object.
Parameters
- bAllChild[IN] bAll=true will get all meshes including child nodes.
Returns
mesh object list - list
1 # No example
RLPy.RIObject.GetMeshNames(self, bAll = True)
Get all mesh names of the object.
Parameters
- bAllChild[IN] bAll=true will get all meshes including child nodes.
Returns
mesh name list - string
1 # No example
RLPy.RIObject.GetName(self)
Get name of the object.
Returns
object name - string
1 # Get root bone node
2 avatar_list = RLPy.RScene.GetAvatars()
3 avatar = avatar_list[0]
4 skeleton_component = avatar.GetSkeletonComponent()
5 bone_node = skeleton_component.GetRootBone()
6
7 # Get root bone name
8 bone_name = bone_node.GetName()
9 print(bone_name)
RLPy.RIObject.GetPivot(self, kPosition, kOrientation)
Get this object's pivot.
Experimental API
Parameters
kPosition[OUT] current pivot position - RLPy.RVector3f kOrientation[OUT] current pivot orientation - RLPy.RVector3f
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # No example
RLPy.RIObject.GetType(self)
Get object type of the object.
Returns
object type - RLPy.EObjectType
- RLPy.EObjectType_Object
- RLPy.EObjectType_Avatar
- RLPy.EObjectType_Hair
- RLPy.EObjectType_Cloth
- RLPy.EObjectType_Accessory
- RLPy.EObjectType_Prop
- RLPy.EObjectType_Camera
- RLPy.EObjectType_Particle
- RLPy.EObjectType_Light
- RLPy.EObjectType_SpotLight
- RLPy.EObjectType_PointLight
- RLPy.EObjectType_DirectionalLight
- RLPy.EObjectType_PopcornFX
- RLPy.EObjectType_Path
- RLPy.EObjectType_Sky
1 # No example
RLPy.RIObject.IsSelected(self)
A Boolean value indicating whether the object is in the selected state.
Experimental API
Returns
selectedor not
1 # No example
RLPy.RIObject.IsStatic(self)
Get animation status of the object.
Experimental API
Returns
trueStatic object without any animation falseKinetic object with animation
1 # No example
RLPy.RIObject.LinkTo(self, spTargetObject, eAlignType, kTime)
Simultaneously move or rotate link target object and this object.
Experimental API
Parameters
- spTargetObject[IN] Link target object - RLPy.RIObject
- eAlignType[IN] Link object align type - RLPy.ELinkObjectAlignType
- RLPy.ELinkObjectAlignType_None
- RLPy.ELinkObjectAlignType_Position
- RLPy.ELinkObjectAlignType_Position_And_Rotation
- kTime[IN] Time of link - RLPy.RLTime
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # No example
RLPy.RIObject.LocalTransform(self)
Get local transform of the object.
Experimental API
Returns
object transform - RLPy.RTransformf
1 # Get root bone node
2 avatar_list = RLPy.RScene.GetAvatars()
3 avatar = avatar_list[0]
4 skeleton_component = avatar.GetSkeletonComponent()
5 bone_node = skeleton_component.GetRootBone()
6
7 # Get root bone local transform
8 local_transform = bone_node.LocalTransform()
9 print(local_transform)
RLPy.RIObject.ReleasePath(self, kTime)
Release path key from object.
Experimental API
Parameters
- kTime[IN] Time of release path - RLPy.RLTime
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # No example
RLPy.RIObject.RemoveDataBlock(self, strId)
Remove data block from object.
Experimental API
Parameters
- strId[IN] DataBlock Id - string
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # No example
RLPy.RIObject.RemoveLinkKey(self, kTime)
Remove link key from object.
Experimental API
Parameters
- kTime[IN] Time of remove link key - RLPy.RLTime
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # No example
RLPy.RIObject.SetDataBlock(self, strId, spDataBlock)
Provide object to store data through data block.
Experimental API
Parameters
- strId[IN] DataBlock Id - string
- spDataBlock[IN] Store data - RLPy.RDataBlock
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # No example
RLPy.RIObject.SetName(self, strName)
Set object's name.
Experimental API
Parameters
- strName[IN] object name - string
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # No example
RLPy.RIObject.SetParent(self, args)
Experimental API
Parameters
- spParent[IN] If parent is null, this object will restore default parent - RLPy.RINode
Returns
RStatus - RLPy.RStatus
1 # No example
RLPy.RIObject.SetStatic(self, bStatic)
Set animation status of the object.
Experimental API
Returns
- bStatic[IN]Make the object stationary
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # No example
RLPy.RIObject.UnLink(self, kTime)
Unlink object of time.
Experimental API
Parameters
- kTime[IN] Time of unlink - RLPy.RLTime
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # No example
RLPy.RIObject.Update(self)
In iClone's 3D animation world, it works based on adding keys, so when you add a key, you need to call Update function when you need to update the key value to the object.
Experimental API
1 # Get root bone node
2 avatar_list = RLPy.RScene.GetAvatars()
3 avatar = avatar_list[0]
4 skeleton_component = avatar.GetSkeletonComponent()
5 bone_node = skeleton_component.GetRootBone()
6
7 # Get root bone child node world transform rotation x-axis value
8 motion_bones = skeleton_component.GetMotionBones()
9 child = motion_bones[1]
10 child_world = child.WorldTransform()
11 child_rot_x = child_world.R().x
12
13 # Set float control rotation x-axis value
14 RLPy.RGlobal.SetTime(RLPy.RTime(0))
15 animation_clip = skeleton_component.GetClip(0)
16 root_control = animation_clip.GetControl("Layer", root)
17 data_block = root_control.GetDataBlock()
18 float_control_rotate_x = data_block.GetControl("Rotation/RotationX")
19 float_control_rotate_x.SetValue(RLPy.RGlobal.GetTime(), math.radians(60))
20
21 # Update root bone with float control
22 bone_node.Update()
23
24 # Get root bone child node world transform rotation x-axis value after updated
25 new_child_world = child.WorldTransform()
26 after_update_child_rot_x = new_child_world.R().x
RLPy.RIObject.WorldTransform(self)
Get world transform of the object.
Experimental API
Returns
object transform - RLPy.RTransformf
1 # Get root bone node
2 avatar_list = RLPy.RScene.GetAvatars()
3 avatar = avatar_list[0]
4 skeleton_component = avatar.GetSkeletonComponent()
5 bone_node = skeleton_component.GetRootBone()
6
7 # Get root bone world transform
8 world_transform = bone_node.WorldTransform()
9 print(world_transform)
Description
This class is used to access the bone node parameters in a character skeleton or object. Retrievable parameters include name, ID, parent node, list of child nodes, and more. Use Update to get the world-transform values of the bone node for the current point in time.
Constructor & Destructor
__init__ (self, *args, **kwargs)
Initializes a new ri object instance.
Parameters
- args
- kwargs
Member Functions
AlignTo (self, spTargetObject, eAlignAxis, bAlignToPivot)
Attach object to another object with align axis. And allow to decide align object pivot or align object world bound center. This function works on RIAvatar, RIProp, RIParticle, RIPopcornFX, RIPointLight, RISpotLight.
Parameters
- spTargetObject
- eAlignAxis
- bAlignToPivot
Clone (self)
Clones the object original and returns the clone.
DeleteMesh (self, spMesh)
Deletes the mesh of the object.
Parameters
- spMesh
FollowPath (self, spPath, kAppTime)
Sets the object move along the path.
Parameters
- spPath
- kAppTime
GetBounds (self, kMaxPoint, kCenterPoint, kMinPoint)
Returns the bounds.
Parameters
- kMaxPoint
- kCenterPoint
- kMinPoint
GetControl (self, strKey)
Gets control of the object.
Parameters
- strKey
GetDataBlock (self, strId)
Provide object to get data block.
Parameters
- strId
GetID (self)
Get the ID of the bone node in a character skeleton or scene object.
GetLinkedObject (self, kTime)
Gets linked object by time.
Parameters
- kTime
GetMeshNames (self, bAll=True)
Gets all mesh names of the object.
Parameters
- bAll (default: True)
GetMeshes (self, bAll=True)
Returns the meshes.
Parameters
- bAll (default: True)
GetName (self)
Get the name of the bone node in a character skeleton or scene object.
GetParent (self)
Get the parent bone of the bone node in a character skeleton or scene object. If a parent does not exist, then return None. See Also: GetChildren
GetParentNode (self)
Gets the parent node of the object.
GetPivot (self, kPosition, kOrientation)
Gets this object's pivot.
Parameters
- kPosition
- kOrientation
GetType (self)
Gets object type of the object.
IsSelected (self)
A Boolean value indicating whether the object is in the selected state.
IsStatic (self)
Reports whether this scene object is static.
LinkTo (self, *args)
Simultaneously move or rotate link target object and this object. And allowed to link your object to another one at a specific point of time. The Link never changes the Hierarchy Structure of the current object.
Parameters
- args
LocalTransform (self)
Get the local-transform for a bone node in a character skeleton or scene object. See Also: WorldTransform
ReleasePath (self, kTime)
Release path key from object. If object does not set path, it will return RO_FAILURE.
Parameters
- kTime
RemoveDataBlock (self, strId)
Removes data block from object. If object does not have data block, it will return RO_FAILURE.
Parameters
- strId
RemoveLinkKey (self, kTime)
Removes link key from object. If object does not link object, it will return RO_FAILURE.
Parameters
- kTime
SetDataBlock (self, strId, spDataBlock)
Provide object to store data through data block. If data block is null, it will return RO_FAILURE.
Parameters
- strId
- spDataBlock
SetName (self, strName)
Sets object's name.
Parameters
- strName
SetParent (self, *args)
Sets the parent of this object.
Parameters
- args
SetStatic (self, bStatic)
Sets the static.
Parameters
- bStatic
UnLink (self, kTime)
Unlink object of time..
Parameters
- kTime
Update (self, *args)
Update the Transform Control for a bone node in a character skelecton or scene object and update the scene. After the Update, the Transform Control's key values will reflect the world-transform values of the bone node for the current point in time.
Parameters
- args
WorldTransform (self)
Get the world-transform for a bone node in a character skeleton or scene object. See Also: LocalTransform
__eq__ (self, kRhs)
Reports whether this value equals another value.
Parameters
- kRhs
Properties
thisown
Indicates whether this SWIG proxy owns the underlying C++ object.