IC8 Python API:RLPy RIHikEffectorComponent

From Reallusion Wiki!
Jump to: navigation, search

Contents

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.