IC8 Python API:RLPy RIHikEffectorComponent
Contents
- 1 Description
- 2 Class Methods
- 2.1 RLPy.RIHikEffectorComponent.AddReachKey(self, eEffector, kKey)
- 2.2 RLPy.RIHikEffectorComponent.GetActive(self, eEffector, eType)
- 2.3 RLPy.RIHikEffectorComponent.GetLock(self, eEffector, eType)
- 2.4 RLPy.RIHikEffectorComponent.GetReachKeys(self, eEffector)
- 2.5 RLPy.RIHikEffectorComponent.RemoveReachKey(self, eEffector, kKey)
- 2.6 RLPy.RIHikEffectorComponent.SetActive(self, eEffector, eType, bActive)
- 2.7 RLPy.RIHikEffectorComponent.SetBodyWeight(self, fWeight)
- 2.8 RLPy.RIHikEffectorComponent.SetLock(self, eEffector, eType, bLock)
- 2.9 RLPy.RIHikEffectorComponent.SetPosition(self, args)
- 2.10 RLPy.RIHikEffectorComponent.Solve(self, eEffector, kMatrix)
- 3 Description
- 4 Constructor & Destructor
- 5 Member Functions
- 5.1 AddReachKey (self, eEffector, kKey)
- 5.2 GetActive (self, eEffector, eType)
- 5.3 GetBone (self, strEffectorText)
- 5.4 GetLock (self, eEffector, eType)
- 5.5 GetReachKeys (self, eEffector)
- 5.6 RemoveReachKey (self, eEffector, kKey)
- 5.7 SetActive (self, eEffector, eType, bActive)
- 5.8 SetBodyWeight (self, fWeight)
- 5.9 SetLock (self, eEffector, eType, bLock)
- 5.10 SetPosition (self, *args)
- 5.11 SetReachOffsetKey (self, strEffectorText, kTime, mOffset)
- 5.12 Solve (self, eEffector, kMatrix)
- 6 Properties
- Main article: iC8 Modules.
- Last modified: 10/21/2026
Description
This class is the interface to the human IK effector in the avatar.
Class Methods
RLPy.RIHikEffectorComponent.AddReachKey(self, eEffector, kKey)
Add new reach key of the effector.
Experimental API
Parameters
- eEffector[IN] Human IK effector - RLPy.EHikEffector
- RLPy.EHikEffector_Invalid
- RLPy.EHikEffector_Hip
- RLPy.EHikEffector_LeftFoot
- RLPy.EHikEffector_RightFoot
- RLPy.EHikEffector_LeftHand
- RLPy.EHikEffector_RightHand
- RLPy.EHikEffector_LeftKnee
- RLPy.EHikEffector_RightKnee
- RLPy.EHikEffector_LeftElbow
- RLPy.EHikEffector_RightElbow
- RLPy.EHikEffector_ChestOrigin
- RLPy.EHikEffector_Neck
- RLPy.EHikEffector_LeftToe
- RLPy.EHikEffector_RightToe
- RLPy.EHikEffector_LeftShoulder
- RLPy.EHikEffector_RightShoulder
- RLPy.EHikEffector_Head
- RLPy.EHikEffector_LeftHip
- RLPy.EHikEffector_RightHip
- RLPy.EHikEffector_Quantity
- kKey[IN] The key to be added - RLPy.RReachKey
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # Get human IK component
2 avatar_list = RLPy.RScene.GetAvatars()
3 avatar = avatar_list[0]
4 hik_effector_component = avatar.GetHikEffectorComponent()
5
6 # Add reach key
7 key = RLPy.RReachKey()
8 result = hik_effector_component.AddReachKey(RLPy.EHikEffector_RightHand, key)
9 print(result)
RLPy.RIHikEffectorComponent.GetActive(self, eEffector, eType)
Get human IK effector active status with translate/rotate type.
Experimental API
Parameters
- eEffector[IN] Human IK effector - RLPy.EHikEffector
- RLPy.EHikEffector_Invalid
- RLPy.EHikEffector_Hip
- RLPy.EHikEffector_LeftFoot
- RLPy.EHikEffector_RightFoot
- RLPy.EHikEffector_LeftHand
- RLPy.EHikEffector_RightHand
- RLPy.EHikEffector_LeftKnee
- RLPy.EHikEffector_RightKnee
- RLPy.EHikEffector_LeftElbow
- RLPy.EHikEffector_RightElbow
- RLPy.EHikEffector_ChestOrigin
- RLPy.EHikEffector_Neck
- RLPy.EHikEffector_LeftToe
- RLPy.EHikEffector_RightToe
- RLPy.EHikEffector_LeftShoulder
- RLPy.EHikEffector_RightShoulder
- RLPy.EHikEffector_Head
- RLPy.EHikEffector_LeftHip
- RLPy.EHikEffector_RightHip
- RLPy.EHikEffector_Quantity
- eType[IN] Human IK effector type - RLPy.EHikEffectorType
- RLPy.EHikEffectorType_Translate
- RLPy.EHikEffectorType_Rotate
Returns
True if human IK effector is active, False if human IK effector is not active - bool
1 # Get human IK component
2 avatar_list = RLPy.RScene.GetAvatars()
3 avatar = avatar_list[0]
4 hik_effector_component = avatar.GetHikEffectorComponent()
5
6 # Get active effector
7 print(hik_effector_component.GetActive(RLPy.EHikEffector_LeftHand, RLPy.EHikEffectorType_Translate))
RLPy.RIHikEffectorComponent.GetLock(self, eEffector, eType)
Get human IK effector lock status with translate/rotate type.
Experimental API
Parameters
- eEffector[IN] Human IK effector - RLPy.EHikEffector
- RLPy.EHikEffector_Invalid
- RLPy.EHikEffector_Hip
- RLPy.EHikEffector_LeftFoot
- RLPy.EHikEffector_RightFoot
- RLPy.EHikEffector_LeftHand
- RLPy.EHikEffector_RightHand
- RLPy.EHikEffector_LeftKnee
- RLPy.EHikEffector_RightKnee
- RLPy.EHikEffector_LeftElbow
- RLPy.EHikEffector_RightElbow
- RLPy.EHikEffector_ChestOrigin
- RLPy.EHikEffector_Neck
- RLPy.EHikEffector_LeftToe
- RLPy.EHikEffector_RightToe
- RLPy.EHikEffector_LeftShoulder
- RLPy.EHikEffector_RightShoulder
- RLPy.EHikEffector_Head
- RLPy.EHikEffector_LeftHip
- RLPy.EHikEffector_RightHip
- RLPy.EHikEffector_Quantity
- eType[IN] Human IK effector type - RLPy.EHikEffectorType
- RLPy.EHikEffectorType_Translate
- RLPy.EHikEffectorType_Rotate
Returns
True if human IK effector status is locked, False if human IK effector is unlocked - bool
1 # Get human IK component
2 avatar_list = RLPy.RScene.GetAvatars()
3 avatar = avatar_list[0]
4 hik_effector_component = avatar.GetHikEffectorComponent()
5
6 # Get effector translate lock
7 is_lock = hik_effector_component.GetLock(RLPy.EHikEffector_Head, RLPy.EHikEffectorType_Translate);
8 print(is_lock)
RLPy.RIHikEffectorComponent.GetReachKeys(self, eEffector)
Get all reach key of the effector.
Experimental API
Parameters
- eEffector[IN] Human IK effector - RLPy.EHikEffector
- RLPy.EHikEffector_Invalid
- RLPy.EHikEffector_Hip
- RLPy.EHikEffector_LeftFoot
- RLPy.EHikEffector_RightFoot
- RLPy.EHikEffector_LeftHand
- RLPy.EHikEffector_RightHand
- RLPy.EHikEffector_LeftKnee
- RLPy.EHikEffector_RightKnee
- RLPy.EHikEffector_LeftElbow
- RLPy.EHikEffector_RightElbow
- RLPy.EHikEffector_ChestOrigin
- RLPy.EHikEffector_Neck
- RLPy.EHikEffector_LeftToe
- RLPy.EHikEffector_RightToe
- RLPy.EHikEffector_LeftShoulder
- RLPy.EHikEffector_RightShoulder
- RLPy.EHikEffector_Head
- RLPy.EHikEffector_LeftHip
- RLPy.EHikEffector_RightHip
- RLPy.EHikEffector_Quantity
Returns
Vectorof reach keys.
1 # Get human IK component
2 avatar_list = RLPy.RScene.GetAvatars()
3 avatar = avatar_list[0]
4 hik_effector_component = avatar.GetHikEffectorComponent()
5
6 # Get reach keys
7 keys = hik_effector_component.GetReachKeys(RLPy.EHikEffector_RightHand)
8 print(len(keys))
RLPy.RIHikEffectorComponent.RemoveReachKey(self, eEffector, kKey)
Remove reach key of the effector.
Experimental API
Parameters
- eEffector[IN] Human IK effector - RLPy.EHikEffector
- RLPy.EHikEffector_Invalid
- RLPy.EHikEffector_Hip
- RLPy.EHikEffector_LeftFoot
- RLPy.EHikEffector_RightFoot
- RLPy.EHikEffector_LeftHand
- RLPy.EHikEffector_RightHand
- RLPy.EHikEffector_LeftKnee
- RLPy.EHikEffector_RightKnee
- RLPy.EHikEffector_LeftElbow
- RLPy.EHikEffector_RightElbow
- RLPy.EHikEffector_ChestOrigin
- RLPy.EHikEffector_Neck
- RLPy.EHikEffector_LeftToe
- RLPy.EHikEffector_RightToe
- RLPy.EHikEffector_LeftShoulder
- RLPy.EHikEffector_RightShoulder
- RLPy.EHikEffector_Head
- RLPy.EHikEffector_LeftHip
- RLPy.EHikEffector_RightHip
- RLPy.EHikEffector_Quantity
- kKey[IN] The key to be removed - RLPy.RReachKey
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # Get human IK component
2 avatar_list = RLPy.RScene.GetAvatars()
3 avatar = avatar_list[0]
4 hik_effector_component = avatar.GetHikEffectorComponent()
5
6 # Add reach key
7 key = RLPy.RReachKey()
8 result = hik_effector_component.AddReachKey(RLPy.EHikEffector_RightHand, key)
9 print(result)
10
11 # Remove reach key
12 result = hik_effector_component.RemoveReachKey(RLPy.EHikEffector_RightHand, key)
13 print(result)
RLPy.RIHikEffectorComponent.SetActive(self, eEffector, eType, bActive)
Set human IK effector active status with translate/rotate type.
Experimental API
Parameters
- eEffector[IN] Human IK effector - RLPy.EHikEffector
- RLPy.EHikEffector_Invalid
- RLPy.EHikEffector_Hip
- RLPy.EHikEffector_LeftFoot
- RLPy.EHikEffector_RightFoot
- RLPy.EHikEffector_LeftHand
- RLPy.EHikEffector_RightHand
- RLPy.EHikEffector_LeftKnee
- RLPy.EHikEffector_RightKnee
- RLPy.EHikEffector_LeftElbow
- RLPy.EHikEffector_RightElbow
- RLPy.EHikEffector_ChestOrigin
- RLPy.EHikEffector_Neck
- RLPy.EHikEffector_LeftToe
- RLPy.EHikEffector_RightToe
- RLPy.EHikEffector_LeftShoulder
- RLPy.EHikEffector_RightShoulder
- RLPy.EHikEffector_Head
- RLPy.EHikEffector_LeftHip
- RLPy.EHikEffector_RightHip
- RLPy.EHikEffector_Quantity
- eType[IN] Human IK effector type - RLPy.EHikEffectorType
- RLPy.EHikEffectorType_Translate
- RLPy.EHikEffectorType_Rotate
- bActive[IN] Active status - bool
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # Get human IK component
2 avatar_list = RLPy.RScene.GetAvatars()
3 avatar = avatar_list[0]
4 hik_effector_component = avatar.GetHikEffectorComponent()
5
6 # Activate left hand effector
7 hik_effector_component.SetActive(RLPy.EHikEffector_LeftHand, RLPy.EHikEffectorType_Translate, True)
RLPy.RIHikEffectorComponent.SetBodyWeight(self, fWeight)
Set IK effector weight.
Experimental API
Parameters
- fWeight[IN] weight data, the range is from 0.0 to 1.0 - float
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # Get human IK component
2 avatar_list = RLPy.RScene.GetAvatars()
3 avatar = avatar_list[0]
4 hik_effector_component = avatar.GetHikEffectorComponent()
5
6 # Set effector body weight
7 hik_effector_component.SetBodyWeight(1); # 0.0~1.0
RLPy.RIHikEffectorComponent.SetLock(self, eEffector, eType, bLock)
Set human IK effector lock status with translate/rotate type.
Experimental API
Parameters
- eEffector[IN] Human IK effector - RLPy.EHikEffector
- RLPy.EHikEffector_Invalid
- RLPy.EHikEffector_Hip
- RLPy.EHikEffector_LeftFoot
- RLPy.EHikEffector_RightFoot
- RLPy.EHikEffector_LeftHand
- RLPy.EHikEffector_RightHand
- RLPy.EHikEffector_LeftKnee
- RLPy.EHikEffector_RightKnee
- RLPy.EHikEffector_LeftElbow
- RLPy.EHikEffector_RightElbow
- RLPy.EHikEffector_ChestOrigin
- RLPy.EHikEffector_Neck
- RLPy.EHikEffector_LeftToe
- RLPy.EHikEffector_RightToe
- RLPy.EHikEffector_LeftShoulder
- RLPy.EHikEffector_RightShoulder
- RLPy.EHikEffector_Head
- RLPy.EHikEffector_LeftHip
- RLPy.EHikEffector_RightHip
- RLPy.EHikEffector_Quantity
- eType[IN] Human IK effector type - RLPy.EHikEffectorType
- RLPy.EHikEffectorType_Translate
- RLPy.EHikEffectorType_Rotate
- bLock[IN] Lock status - bool
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # Get human IK component
2 avatar_list = RLPy.RScene.GetAvatars()
3 avatar = avatar_list[0]
4 hik_effector_component = avatar.GetHikEffectorComponent()
5
6 # Set effector translate lock
7 result = hik_effector_component.SetLock(RLPy.EHikEffector_Head, RLPy.EHikEffectorType_Translate, True);
8 print(result)
RLPy.RIHikEffectorComponent.SetPosition(self, args)
Process world matrix to human IK effector.
Experimental API
Parameters
- kWorldMatrix[IN] World matrix.
Returns
- RLPy.RStatus.Success - Succeed
- RLPy.RStatus.Failure - Fail
1 # Get human IK component
2 avatar_list = RLPy.RScene.GetAvatars()
3 avatar = avatar_list[0]
4 hik_effector_component = avatar.GetHikEffectorComponent()
5
6 # Process left hand data to effector
7 pos = RLPy.RVector3.ZERO
8 result = hik_effector_component.SetPosition(RLPy.EHikEffector_LeftHand, pos)
9 print(result)
RLPy.RIHikEffectorComponent.Solve(self, eEffector, kMatrix)
Solve human IK effector.
Experimental API
Parameters
- kEffectorWorldMatrix[IN] Human IK effector with world matrix.
Returns
Motionbone world matrix
1 # No example
Description
This class primarily manages IK skeleton controls. This component can adjust EHikEffector for various body parts i.e. RLPy.EHikEffector_LeftHand. ProcessEffector can be used move different parts of the body IK. See Also: EHikEffector, ProcessEffector
Constructor & Destructor
__init__ (self, *args, **kwargs)
Initializes a new ri hik effector component instance.
Parameters
- args
- kwargs
Member Functions
AddReachKey (self, eEffector, kKey)
Adds new reach key of the effector.
Parameters
- eEffector
- kKey
GetActive (self, eEffector, eType)
Get the translational or rotational active state of a given IK effector. See Also: SetActive
Parameters
- eEffector
- eType
GetBone (self, strEffectorText)
Gets bone node by HIK effector.
Parameters
- strEffectorText
GetLock (self, eEffector, eType)
Get the lock status of a given IK effector and transformation type (rotation or translation). See Also: SetLock
Parameters
- eEffector
- eType
GetReachKeys (self, eEffector)
Gets all reach key of the effector.
Parameters
- eEffector
RemoveReachKey (self, eEffector, kKey)
Removes reach key of the effector.
Parameters
- eEffector
- kKey
SetActive (self, eEffector, eType, bActive)
Set the translational or rotational active state for a given IK effector. See Also: GetActive
Parameters
- eEffector
- eType
- bActive
SetBodyWeight (self, fWeight)
Sets the amount of influence IK effectors have on the entire body IK, from 0 to 1. A value of 0 means the IK system is driven by body parts, while 1 sets the IK effectors to full body influence.
Parameters
- fWeight
SetLock (self, eEffector, eType, bLock)
Set the lock state of a given IK effector and transformation type (rotation or translation). See Also: GetLock
Parameters
- eEffector
- eType
- bLock
SetPosition (self, *args)
Sets the movement (translation) of an IK effector for a body part, given an EHikEffector and a Vector3 for the X, Y, Z positions.
Parameters
- args
SetReachOffsetKey (self, strEffectorText, kTime, mOffset)
Sets Reachoff key by HIK effector.
Parameters
- strEffectorText
- kTime
- mOffset
Solve (self, eEffector, kMatrix)
Given an IK effector body part ( EHikEffector ) and a transformation 4x4 matrix, return the IK effector matrix data for the entire body after having transformed the given body part.
Parameters
- eEffector
- kMatrix
Properties
thisown
Indicates whether this SWIG proxy owns the underlying C++ object.