Difference between revisions of "IC Python API:RLPy RIHikEffectorComponent"

From Reallusion Wiki!
Jump to: navigation, search
(Created page with "{{TOC}} {{Parent|IC_Python_API:RL_Python_Modules|Modules}} ==Inheritance== This class inherits public member functions from: *RLPy.RIBase ==Detai...")
 
m
Line 4: Line 4:
 
This class inherits public member functions from:
 
This class inherits public member functions from:
 
*[[IC_Python_API:RLPy_RIBase|RLPy.RIBase]]
 
*[[IC_Python_API:RLPy_RIBase|RLPy.RIBase]]
==Detailed Description==
+
== Detailed Description ==
This class is the interface to the face key in the avatar.
+
This class is the interface to the human IK effector in the avatar.
 
<span style="background:#ffcccc">( Experimental Class )</span> <syntaxhighlight lang="Python">
 
<span style="background:#ffcccc">( Experimental Class )</span> <syntaxhighlight lang="Python">
# Get face component
+
# Get human IK component
 
avatar_list = RLPy.RScene.GetAvatars()
 
avatar_list = RLPy.RScene.GetAvatars()
 
avatar = avatar_list[0]
 
avatar = avatar_list[0]
face_component = avatar.GetFaceComponent()
+
hik_effector_component = avatar.GetHikEffectorComponent()
  
# Add facial clip
+
# Activate left hand effector
time = RLPy.RGlobal.GetTime()
+
hik_effector_component.ActivateEffector(RLPy.EHikEffector_LeftHand)
clip_name = "New Clip"
+
print(hik_effector_component.GetEffectorActive(RLPy.EHikEffector_LeftHand))
clip_length = RLPy.RTime(50)
+
result = face_component.AddClip(time, clip_name, clip_length)
+
print(result)
+
 
+
# Get current facial key
+
head = RLPy.FloatVector()
+
left_eye = RLPy.FloatVector()
+
right_eye = RLPy.FloatVector()
+
morph = RLPy.FloatVector()
+
custom = RLPy.FloatVector()
+
bone = RLPy.FloatVector()
+
weight = 0.0
+
result = face_component.GetKey(time, head, left_eye, right_eye, morph, custom, bone, weight)
+
print(result[0]) # RStatus: result[0]
+
print(result[1]) # weight: result[1]
+
print(head) # head weight
+
print(left_eye) # left eye weight
+
print(right_eye) # right eye weight
+
print(morph) # morph weight
+
print(custom) # custom weight
+
print(bone) # bone weight
+
 
+
#Add expression key
+
morph = RLPy.FloatVector()
+
bone = RLPy.FloatVector()
+
custom = RLPy.FloatVector()
+
morph.resize(60)
+
bone.resize(12)
+
custom.resize(24)
+
result = face_component.AddExpressionKey( RLPy.RTime( 0 ), morph, bone, custom, 1 )
+
print(result)
+
 
+
#Add eye key
+
eye_l = [ 0.2, 0.2 ] #[ Horizontal, Vertical ]
+
eye_r = [ 0.2, 0.2 ] #[ Horizontal, Vertical ]
+
result = face_component.AddEyeKey( RLPy.RTime( 0 ), eye_l, eye_r )
+
print(result)
+
  
#Add head key
+
# Process left hand data to effector
result = face_component.AddHeadKey( RLPy.RTime( 0 ), [ 0.1, 0.4, 0.8 ] ) #[ Vertical, Horizontal, Tilt ]
+
pos_1 = RLPy.RVector3.UNIT_X
 +
pos_2 = RLPy.RVector3.UNIT_Y
 +
position_data = [pos_1, pos_2]
 +
result = hik_effector_component.ProcessEffector(position_data)
 
print(result)
 
print(result)
 
</syntaxhighlight>
 
</syntaxhighlight>
==Member Functions==
+
== Member Functions ==
===AddClip===
+
=== ActivateEffector ===
 
<syntaxhighlight lang="Python">
 
<syntaxhighlight lang="Python">
RLPy.RIFaceComponent.AddClip ( self, kTime, strName, kLength )
+
RLPy.RIHikEffectorComponent.ActivateEffector ( self, args )
 
</syntaxhighlight>
 
</syntaxhighlight>
Add facial clip.
+
Activate human IK effector with lock translate and rotate status.
 
<span style="background:#ffcccc">( Experimental API )</span>
 
<span style="background:#ffcccc">( Experimental API )</span>
====Parameters====
+
==== Parameters ====
 
<div style="margin-left: 2em;">
 
<div style="margin-left: 2em;">
 +
'''eEffector''' [IN] Human IK effector - RLPy.EHikEffector
 +
*'''RLPy.EHikEffector_Invalid'''
 +
*'''RLPy.EHikEffector_LeftHand'''
 +
*'''RLPy.EHikEffector_LeftElbow'''
 +
*'''RLPy.EHikEffector_LeftShoulder'''
 +
*'''RLPy.EHikEffector_RightHand'''
 +
*'''RLPy.EHikEffector_RightElbow'''
 +
*'''RLPy.EHikEffector_RightShoulder'''
 +
*'''RLPy.EHikEffector_LeftFoot'''
 +
*'''RLPy.EHikEffector_LeftKnee'''
 +
*'''RLPy.EHikEffector_LeftHip'''
 +
*'''RLPy.EHikEffector_RightFoot'''
 +
*'''RLPy.EHikEffector_RightKnee'''
 +
*'''RLPy.EHikEffector_RightHip'''
 +
*'''RLPy.EHikEffector_Hip'''
 +
*'''RLPy.EHikEffector_Head'''
 +
*'''RLPy.EHikEffector_Neck'''
 +
*'''RLPy.EHikEffector_ChestOrigin'''
 +
*'''RLPy.EHikEffector_LeftToe'''
 +
*'''RLPy.EHikEffector_RightToe'''
 +
*'''RLPy.EHikEffector_LeftFingerBase'''
 +
*'''RLPy.EHikEffector_RightFingerBase'''
 +
*'''RLPy.EHikEffector_Quantity'''
  
'''kTime''' [IN] The time at which to add the clip - RLPy.RTime
+
'''bLockTranslate''' [IN] Lock translate status - bool
  
'''strName''' [IN] Clip name - string
+
'''bLockRotate''' [IN] Lock rotate status - bool
 
+
'''kLength''' [IN] Clip length - RLPy.RTime
+
 
</div>
 
</div>
====Return Values====
+
==== Return Values ====
 
<div style="margin-left: 2em;">
 
<div style="margin-left: 2em;">
 
 
'''RLPy.RStatus.Success''' Success
 
'''RLPy.RStatus.Success''' Success
  
Line 81: Line 67:
 
</div>
 
</div>
 
-----
 
-----
===AddExpressionKey===
+
=== DeactivateEffector ===
 
<syntaxhighlight lang="Python">
 
<syntaxhighlight lang="Python">
RLPy.RIFaceComponent.AddExpressionKey ( self, kTime, kMorph, kBone, kCustom, fStrength )
+
RLPy.RIHikEffectorComponent.DeactivateEffector ( self, eEffector )
 
</syntaxhighlight>
 
</syntaxhighlight>
Add an head key in Facial Layer.
+
Deactivate human IK effector.
 
<span style="background:#ffcccc">( Experimental API )</span>
 
<span style="background:#ffcccc">( Experimental API )</span>
====Parameters====
+
==== Parameters ====
 
<div style="margin-left: 2em;">
 
<div style="margin-left: 2em;">
 
+
'''eEffector''' [IN] Human IK effector - RLPy.EHikEffector
'''kTime''' [IN] The time at which to add the key - RLPy.RTime
+
*'''RLPy.EHikEffector_Invalid'''
 
+
*'''RLPy.EHikEffector_LeftHand'''
'''kMorph''' [IN] Morph weight - float
+
*'''RLPy.EHikEffector_LeftElbow'''
 
+
*'''RLPy.EHikEffector_LeftShoulder'''
'''kCustom''' [IN] Custom weight - float
+
*'''RLPy.EHikEffector_RightHand'''
 
+
*'''RLPy.EHikEffector_RightElbow'''
'''kBone''' [IN] Bone weight - float
+
*'''RLPy.EHikEffector_RightShoulder'''
 
+
*'''RLPy.EHikEffector_LeftFoot'''
'''fStrength''' [IN] The strength of expression - float
+
*'''RLPy.EHikEffector_LeftKnee'''
 +
*'''RLPy.EHikEffector_LeftHip'''
 +
*'''RLPy.EHikEffector_RightFoot'''
 +
*'''RLPy.EHikEffector_RightKnee'''
 +
*'''RLPy.EHikEffector_RightHip'''
 +
*'''RLPy.EHikEffector_Hip'''
 +
*'''RLPy.EHikEffector_Head'''
 +
*'''RLPy.EHikEffector_Neck'''
 +
*'''RLPy.EHikEffector_ChestOrigin'''
 +
*'''RLPy.EHikEffector_LeftToe'''
 +
*'''RLPy.EHikEffector_RightToe'''
 +
*'''RLPy.EHikEffector_LeftFingerBase'''
 +
*'''RLPy.EHikEffector_RightFingerBase'''
 +
*'''RLPy.EHikEffector_Quantity'''
 
</div>
 
</div>
====Return Values====
+
==== Return Values ====
 
<div style="margin-left: 2em;">
 
<div style="margin-left: 2em;">
 
 
'''RLPy.RStatus.Success''' Success
 
'''RLPy.RStatus.Success''' Success
  
Line 108: Line 106:
 
</div>
 
</div>
 
-----
 
-----
===AddEyeKey===
+
=== GetActivatedEffector ===
 
<syntaxhighlight lang="Python">
 
<syntaxhighlight lang="Python">
RLPy.RIFaceComponent.AddEyeKey ( self, kTime, kLeftEye, kRightEye )
+
RLPy.RIHikEffectorComponent.GetActivatedEffector ( self )
 
</syntaxhighlight>
 
</syntaxhighlight>
Add an eye key in Facial Layer.
+
Get activated human IK effector.
 
<span style="background:#ffcccc">( Experimental API )</span>
 
<span style="background:#ffcccc">( Experimental API )</span>
====Parameters====
+
==== Returns ====
 
<div style="margin-left: 2em;">
 
<div style="margin-left: 2em;">
 
+
Activated human IK effector - int
'''kTime''' [IN] The time at which to add the key - RLPy.RTime
+
 
+
'''kLeftEye''' [IN] Left eye weight - float
+
 
+
'''kRightEye''' [IN] Right eye weight - float
+
 
</div>
 
</div>
====Return Values====
+
-----
 +
=== GetEffectorActive ===
 +
<syntaxhighlight lang="Python">
 +
RLPy.RIHikEffectorComponent.GetEffectorActive ( self, eEffector )
 +
</syntaxhighlight>
 +
Get human IK effector active status.
 +
<span style="background:#ffcccc">( Experimental API )</span>
 +
==== Parameters ====
 +
<div style="margin-left: 2em;">
 +
'''eEffector''' [IN] Human IK effector - RLPy.EHikEffector
 +
*'''RLPy.EHikEffector_Invalid'''
 +
*'''RLPy.EHikEffector_LeftHand'''
 +
*'''RLPy.EHikEffector_LeftElbow'''
 +
*'''RLPy.EHikEffector_LeftShoulder'''
 +
*'''RLPy.EHikEffector_RightHand'''
 +
*'''RLPy.EHikEffector_RightElbow'''
 +
*'''RLPy.EHikEffector_RightShoulder'''
 +
*'''RLPy.EHikEffector_LeftFoot'''
 +
*'''RLPy.EHikEffector_LeftKnee'''
 +
*'''RLPy.EHikEffector_LeftHip'''
 +
*'''RLPy.EHikEffector_RightFoot'''
 +
*'''RLPy.EHikEffector_RightKnee'''
 +
*'''RLPy.EHikEffector_RightHip'''
 +
*'''RLPy.EHikEffector_Hip'''
 +
*'''RLPy.EHikEffector_Head'''
 +
*'''RLPy.EHikEffector_Neck'''
 +
*'''RLPy.EHikEffector_ChestOrigin'''
 +
*'''RLPy.EHikEffector_LeftToe'''
 +
*'''RLPy.EHikEffector_RightToe'''
 +
*'''RLPy.EHikEffector_LeftFingerBase'''
 +
*'''RLPy.EHikEffector_RightFingerBase'''
 +
*'''RLPy.EHikEffector_Quantity'''
 +
</div>
 +
==== Returns ====
 +
<div style="margin-left: 2em;">
 +
True if human IK effector is active, False if human IK effector is not active - bool
 +
</div>
 +
-----
 +
=== GetEffectorLockRotate ===
 +
<syntaxhighlight lang="Python">
 +
RLPy.RIHikEffectorComponent.GetEffectorLockRotate ( self, eEffector )
 +
</syntaxhighlight>
 +
Get human IK effector lock rotate status.
 +
<span style="background:#ffcccc">( Experimental API )</span>
 +
==== Parameters ====
 +
<div style="margin-left: 2em;">
 +
'''eEffector''' [IN] Human IK effector - RLPy.EHikEffector
 +
*'''RLPy.EHikEffector_Invalid'''
 +
*'''RLPy.EHikEffector_LeftHand'''
 +
*'''RLPy.EHikEffector_LeftElbow'''
 +
*'''RLPy.EHikEffector_LeftShoulder'''
 +
*'''RLPy.EHikEffector_RightHand'''
 +
*'''RLPy.EHikEffector_RightElbow'''
 +
*'''RLPy.EHikEffector_RightShoulder'''
 +
*'''RLPy.EHikEffector_LeftFoot'''
 +
*'''RLPy.EHikEffector_LeftKnee'''
 +
*'''RLPy.EHikEffector_LeftHip'''
 +
*'''RLPy.EHikEffector_RightFoot'''
 +
*'''RLPy.EHikEffector_RightKnee'''
 +
*'''RLPy.EHikEffector_RightHip'''
 +
*'''RLPy.EHikEffector_Hip'''
 +
*'''RLPy.EHikEffector_Head'''
 +
*'''RLPy.EHikEffector_Neck'''
 +
*'''RLPy.EHikEffector_ChestOrigin'''
 +
*'''RLPy.EHikEffector_LeftToe'''
 +
*'''RLPy.EHikEffector_RightToe'''
 +
*'''RLPy.EHikEffector_LeftFingerBase'''
 +
*'''RLPy.EHikEffector_RightFingerBase'''
 +
*'''RLPy.EHikEffector_Quantity'''
 +
</div>
 +
==== Returns ====
 +
<div style="margin-left: 2em;">
 +
True if human IK effector rotate status is locked, False if human IK effector rotate is unlocked - bool
 +
</div>
 +
-----
 +
=== GetEffectorLockTranslate ===
 +
<syntaxhighlight lang="Python">
 +
RLPy.RIHikEffectorComponent.GetEffectorLockTranslate ( self, eEffector )
 +
</syntaxhighlight>
 +
Get human IK effector lock translate status.
 +
<span style="background:#ffcccc">( Experimental API )</span>
 +
==== Parameters ====
 +
<div style="margin-left: 2em;">
 +
'''eEffector''' [IN] Human IK effector - RLPy.EHikEffector
 +
*'''RLPy.EHikEffector_Invalid'''
 +
*'''RLPy.EHikEffector_LeftHand'''
 +
*'''RLPy.EHikEffector_LeftElbow'''
 +
*'''RLPy.EHikEffector_LeftShoulder'''
 +
*'''RLPy.EHikEffector_RightHand'''
 +
*'''RLPy.EHikEffector_RightElbow'''
 +
*'''RLPy.EHikEffector_RightShoulder'''
 +
*'''RLPy.EHikEffector_LeftFoot'''
 +
*'''RLPy.EHikEffector_LeftKnee'''
 +
*'''RLPy.EHikEffector_LeftHip'''
 +
*'''RLPy.EHikEffector_RightFoot'''
 +
*'''RLPy.EHikEffector_RightKnee'''
 +
*'''RLPy.EHikEffector_RightHip'''
 +
*'''RLPy.EHikEffector_Hip'''
 +
*'''RLPy.EHikEffector_Head'''
 +
*'''RLPy.EHikEffector_Neck'''
 +
*'''RLPy.EHikEffector_ChestOrigin'''
 +
*'''RLPy.EHikEffector_LeftToe'''
 +
*'''RLPy.EHikEffector_RightToe'''
 +
*'''RLPy.EHikEffector_LeftFingerBase'''
 +
*'''RLPy.EHikEffector_RightFingerBase'''
 +
*'''RLPy.EHikEffector_Quantity'''
 +
</div>
 +
==== Returns ====
 +
<div style="margin-left: 2em;">
 +
True if human IK effector translate status is locked, False if human IK effector translate is unlocked - bool
 +
</div>
 +
-----
 +
=== ProcessEffector ===
 +
<syntaxhighlight lang="Python">
 +
RLPy.RIHikEffectorComponent.ProcessEffector ( self, args )
 +
</syntaxhighlight>
 +
Process world matrix to human IK effector.
 +
<span style="background:#ffcccc">( Experimental API )</span>
 +
==== Parameters ====
 +
<div style="margin-left: 2em;">
 +
'''kWorldMatrix''' [IN] World matrix - RLPy.RMatrix4f
 +
</div>
 +
==== Return Values ====
 
<div style="margin-left: 2em;">
 
<div style="margin-left: 2em;">
 
 
'''RLPy.RStatus.Success''' Success
 
'''RLPy.RStatus.Success''' Success
  
Line 131: Line 245:
 
</div>
 
</div>
 
-----
 
-----
===AddHeadKey===
+
=== SetEffectorLockRotate ===
 
<syntaxhighlight lang="Python">
 
<syntaxhighlight lang="Python">
RLPy.RIFaceComponent.AddHeadKey ( self, kTime, kHead )
+
RLPy.RIHikEffectorComponent.SetEffectorLockRotate ( self, eEffector, bLock )
 
</syntaxhighlight>
 
</syntaxhighlight>
Add an head key in Facial Layer.
+
Set human IK effector lock rotate status.
 
<span style="background:#ffcccc">( Experimental API )</span>
 
<span style="background:#ffcccc">( Experimental API )</span>
====Parameters====
+
==== Parameters ====
 
<div style="margin-left: 2em;">
 
<div style="margin-left: 2em;">
 +
'''eEffector''' [IN] Human IK effector - RLPy.EHikEffector
 +
*'''RLPy.EHikEffector_Invalid'''
 +
*'''RLPy.EHikEffector_LeftHand'''
 +
*'''RLPy.EHikEffector_LeftElbow'''
 +
*'''RLPy.EHikEffector_LeftShoulder'''
 +
*'''RLPy.EHikEffector_RightHand'''
 +
*'''RLPy.EHikEffector_RightElbow'''
 +
*'''RLPy.EHikEffector_RightShoulder'''
 +
*'''RLPy.EHikEffector_LeftFoot'''
 +
*'''RLPy.EHikEffector_LeftKnee'''
 +
*'''RLPy.EHikEffector_LeftHip'''
 +
*'''RLPy.EHikEffector_RightFoot'''
 +
*'''RLPy.EHikEffector_RightKnee'''
 +
*'''RLPy.EHikEffector_RightHip'''
 +
*'''RLPy.EHikEffector_Hip'''
 +
*'''RLPy.EHikEffector_Head'''
 +
*'''RLPy.EHikEffector_Neck'''
 +
*'''RLPy.EHikEffector_ChestOrigin'''
 +
*'''RLPy.EHikEffector_LeftToe'''
 +
*'''RLPy.EHikEffector_RightToe'''
 +
*'''RLPy.EHikEffector_LeftFingerBase'''
 +
*'''RLPy.EHikEffector_RightFingerBase'''
 +
*'''RLPy.EHikEffector_Quantity'''
  
'''kTime''' [IN] The time at which to add the key - RLPy.RTime
+
'''bLock''' [IN] Lock rotate status - bool
 
+
'''kHead''' [IN] Head rotate weight - float
+
 
</div>
 
</div>
====Return Values====
+
==== Return Values ====
 
<div style="margin-left: 2em;">
 
<div style="margin-left: 2em;">
 
 
'''RLPy.RStatus.Success''' Success
 
'''RLPy.RStatus.Success''' Success
  
Line 152: Line 286:
 
</div>
 
</div>
 
-----
 
-----
===GetKey===
+
=== SetEffectorLockTranslate ===
 
<syntaxhighlight lang="Python">
 
<syntaxhighlight lang="Python">
RLPy.RIFaceComponent.GetKey ( self, kTime, kHead, kLeftEye, kRightEye, kMorph, kBone, kCustom, fStrength )
+
RLPy.RIHikEffectorComponent.SetEffectorLockTranslate ( self, eEffector, bLock )
 
</syntaxhighlight>
 
</syntaxhighlight>
Get facial key with expressiveness.
+
Set human IK effector lock translate status.
 
<span style="background:#ffcccc">( Experimental API )</span>
 
<span style="background:#ffcccc">( Experimental API )</span>
====Parameters====
+
==== Parameters ====
 
<div style="margin-left: 2em;">
 
<div style="margin-left: 2em;">
 +
'''eEffector''' [IN] Human IK effector - RLPy.EHikEffector
 +
*'''RLPy.EHikEffector_Invalid'''
 +
*'''RLPy.EHikEffector_LeftHand'''
 +
*'''RLPy.EHikEffector_LeftElbow'''
 +
*'''RLPy.EHikEffector_LeftShoulder'''
 +
*'''RLPy.EHikEffector_RightHand'''
 +
*'''RLPy.EHikEffector_RightElbow'''
 +
*'''RLPy.EHikEffector_RightShoulder'''
 +
*'''RLPy.EHikEffector_LeftFoot'''
 +
*'''RLPy.EHikEffector_LeftKnee'''
 +
*'''RLPy.EHikEffector_LeftHip'''
 +
*'''RLPy.EHikEffector_RightFoot'''
 +
*'''RLPy.EHikEffector_RightKnee'''
 +
*'''RLPy.EHikEffector_RightHip'''
 +
*'''RLPy.EHikEffector_Hip'''
 +
*'''RLPy.EHikEffector_Head'''
 +
*'''RLPy.EHikEffector_Neck'''
 +
*'''RLPy.EHikEffector_ChestOrigin'''
 +
*'''RLPy.EHikEffector_LeftToe'''
 +
*'''RLPy.EHikEffector_RightToe'''
 +
*'''RLPy.EHikEffector_LeftFingerBase'''
 +
*'''RLPy.EHikEffector_RightFingerBase'''
 +
*'''RLPy.EHikEffector_Quantity'''
  
'''kTime''' [IN] The time at which to get the key - RLPy.RTime
+
'''bLock''' [IN] Lock translate status - bool
 
+
'''kHead''' [OUT] Head weight - float
+
 
+
'''kLeftEye''' [OUT] Left eye weight - float
+
 
+
'''kRightEye''' [OUT] Right eye weight - float
+
 
+
'''kMorph''' [INOUT Morph weight - float
+
 
+
'''kBone''' [OUT] Bone weight - float
+
 
+
'''kCustom''' [OUT] Custom weight - float
+
 
+
'''fStrength''' [OUT] The strength of expression - float
+
 
</div>
 
</div>
====Return Values====
+
==== Return Values ====
 
<div style="margin-left: 2em;">
 
<div style="margin-left: 2em;">
 
 
'''RLPy.RStatus.Success''' Success
 
'''RLPy.RStatus.Success''' Success
  
 
'''RLPy.RStatus.Failure''' Fail
 
'''RLPy.RStatus.Failure''' Fail
 
</div>
 
</div>

Revision as of 18:04, 11 March 2020

Main article: Modules.

Inheritance

This class inherits public member functions from:

Detailed Description

This class is the interface to the human IK effector in the avatar.

( Experimental Class )
# Get human IK component
avatar_list = RLPy.RScene.GetAvatars()
avatar = avatar_list[0]
hik_effector_component = avatar.GetHikEffectorComponent()

# Activate left hand effector
hik_effector_component.ActivateEffector(RLPy.EHikEffector_LeftHand)
print(hik_effector_component.GetEffectorActive(RLPy.EHikEffector_LeftHand))

# Process left hand data to effector
pos_1 = RLPy.RVector3.UNIT_X
pos_2 = RLPy.RVector3.UNIT_Y
position_data = [pos_1, pos_2]
result = hik_effector_component.ProcessEffector(position_data)
print(result)

Member Functions

ActivateEffector

RLPy.RIHikEffectorComponent.ActivateEffector ( self, args )

Activate human IK effector with lock translate and rotate status. ( Experimental API )

Parameters

eEffector [IN] Human IK effector - RLPy.EHikEffector

  • RLPy.EHikEffector_Invalid
  • RLPy.EHikEffector_LeftHand
  • RLPy.EHikEffector_LeftElbow
  • RLPy.EHikEffector_LeftShoulder
  • RLPy.EHikEffector_RightHand
  • RLPy.EHikEffector_RightElbow
  • RLPy.EHikEffector_RightShoulder
  • RLPy.EHikEffector_LeftFoot
  • RLPy.EHikEffector_LeftKnee
  • RLPy.EHikEffector_LeftHip
  • RLPy.EHikEffector_RightFoot
  • RLPy.EHikEffector_RightKnee
  • RLPy.EHikEffector_RightHip
  • RLPy.EHikEffector_Hip
  • RLPy.EHikEffector_Head
  • RLPy.EHikEffector_Neck
  • RLPy.EHikEffector_ChestOrigin
  • RLPy.EHikEffector_LeftToe
  • RLPy.EHikEffector_RightToe
  • RLPy.EHikEffector_LeftFingerBase
  • RLPy.EHikEffector_RightFingerBase
  • RLPy.EHikEffector_Quantity

bLockTranslate [IN] Lock translate status - bool

bLockRotate [IN] Lock rotate status - bool

Return Values

RLPy.RStatus.Success Success

RLPy.RStatus.Failure Fail


DeactivateEffector

RLPy.RIHikEffectorComponent.DeactivateEffector ( self, eEffector )

Deactivate human IK effector. ( Experimental API )

Parameters

eEffector [IN] Human IK effector - RLPy.EHikEffector

  • RLPy.EHikEffector_Invalid
  • RLPy.EHikEffector_LeftHand
  • RLPy.EHikEffector_LeftElbow
  • RLPy.EHikEffector_LeftShoulder
  • RLPy.EHikEffector_RightHand
  • RLPy.EHikEffector_RightElbow
  • RLPy.EHikEffector_RightShoulder
  • RLPy.EHikEffector_LeftFoot
  • RLPy.EHikEffector_LeftKnee
  • RLPy.EHikEffector_LeftHip
  • RLPy.EHikEffector_RightFoot
  • RLPy.EHikEffector_RightKnee
  • RLPy.EHikEffector_RightHip
  • RLPy.EHikEffector_Hip
  • RLPy.EHikEffector_Head
  • RLPy.EHikEffector_Neck
  • RLPy.EHikEffector_ChestOrigin
  • RLPy.EHikEffector_LeftToe
  • RLPy.EHikEffector_RightToe
  • RLPy.EHikEffector_LeftFingerBase
  • RLPy.EHikEffector_RightFingerBase
  • RLPy.EHikEffector_Quantity

Return Values

RLPy.RStatus.Success Success

RLPy.RStatus.Failure Fail


GetActivatedEffector

RLPy.RIHikEffectorComponent.GetActivatedEffector ( self )

Get activated human IK effector. ( Experimental API )

Returns

Activated human IK effector - int


GetEffectorActive

RLPy.RIHikEffectorComponent.GetEffectorActive ( self, eEffector )

Get human IK effector active status. ( Experimental API )

Parameters

eEffector [IN] Human IK effector - RLPy.EHikEffector

  • RLPy.EHikEffector_Invalid
  • RLPy.EHikEffector_LeftHand
  • RLPy.EHikEffector_LeftElbow
  • RLPy.EHikEffector_LeftShoulder
  • RLPy.EHikEffector_RightHand
  • RLPy.EHikEffector_RightElbow
  • RLPy.EHikEffector_RightShoulder
  • RLPy.EHikEffector_LeftFoot
  • RLPy.EHikEffector_LeftKnee
  • RLPy.EHikEffector_LeftHip
  • RLPy.EHikEffector_RightFoot
  • RLPy.EHikEffector_RightKnee
  • RLPy.EHikEffector_RightHip
  • RLPy.EHikEffector_Hip
  • RLPy.EHikEffector_Head
  • RLPy.EHikEffector_Neck
  • RLPy.EHikEffector_ChestOrigin
  • RLPy.EHikEffector_LeftToe
  • RLPy.EHikEffector_RightToe
  • RLPy.EHikEffector_LeftFingerBase
  • RLPy.EHikEffector_RightFingerBase
  • RLPy.EHikEffector_Quantity

Returns

True if human IK effector is active, False if human IK effector is not active - bool


GetEffectorLockRotate

RLPy.RIHikEffectorComponent.GetEffectorLockRotate ( self, eEffector )

Get human IK effector lock rotate status. ( Experimental API )

Parameters

eEffector [IN] Human IK effector - RLPy.EHikEffector

  • RLPy.EHikEffector_Invalid
  • RLPy.EHikEffector_LeftHand
  • RLPy.EHikEffector_LeftElbow
  • RLPy.EHikEffector_LeftShoulder
  • RLPy.EHikEffector_RightHand
  • RLPy.EHikEffector_RightElbow
  • RLPy.EHikEffector_RightShoulder
  • RLPy.EHikEffector_LeftFoot
  • RLPy.EHikEffector_LeftKnee
  • RLPy.EHikEffector_LeftHip
  • RLPy.EHikEffector_RightFoot
  • RLPy.EHikEffector_RightKnee
  • RLPy.EHikEffector_RightHip
  • RLPy.EHikEffector_Hip
  • RLPy.EHikEffector_Head
  • RLPy.EHikEffector_Neck
  • RLPy.EHikEffector_ChestOrigin
  • RLPy.EHikEffector_LeftToe
  • RLPy.EHikEffector_RightToe
  • RLPy.EHikEffector_LeftFingerBase
  • RLPy.EHikEffector_RightFingerBase
  • RLPy.EHikEffector_Quantity

Returns

True if human IK effector rotate status is locked, False if human IK effector rotate is unlocked - bool


GetEffectorLockTranslate

RLPy.RIHikEffectorComponent.GetEffectorLockTranslate ( self, eEffector )

Get human IK effector lock translate status. ( Experimental API )

Parameters

eEffector [IN] Human IK effector - RLPy.EHikEffector

  • RLPy.EHikEffector_Invalid
  • RLPy.EHikEffector_LeftHand
  • RLPy.EHikEffector_LeftElbow
  • RLPy.EHikEffector_LeftShoulder
  • RLPy.EHikEffector_RightHand
  • RLPy.EHikEffector_RightElbow
  • RLPy.EHikEffector_RightShoulder
  • RLPy.EHikEffector_LeftFoot
  • RLPy.EHikEffector_LeftKnee
  • RLPy.EHikEffector_LeftHip
  • RLPy.EHikEffector_RightFoot
  • RLPy.EHikEffector_RightKnee
  • RLPy.EHikEffector_RightHip
  • RLPy.EHikEffector_Hip
  • RLPy.EHikEffector_Head
  • RLPy.EHikEffector_Neck
  • RLPy.EHikEffector_ChestOrigin
  • RLPy.EHikEffector_LeftToe
  • RLPy.EHikEffector_RightToe
  • RLPy.EHikEffector_LeftFingerBase
  • RLPy.EHikEffector_RightFingerBase
  • RLPy.EHikEffector_Quantity

Returns

True if human IK effector translate status is locked, False if human IK effector translate is unlocked - bool


ProcessEffector

RLPy.RIHikEffectorComponent.ProcessEffector ( self, args )

Process world matrix to human IK effector. ( Experimental API )

Parameters

kWorldMatrix [IN] World matrix - RLPy.RMatrix4f

Return Values

RLPy.RStatus.Success Success

RLPy.RStatus.Failure Fail


SetEffectorLockRotate

RLPy.RIHikEffectorComponent.SetEffectorLockRotate ( self, eEffector, bLock )

Set human IK effector lock rotate status. ( Experimental API )

Parameters

eEffector [IN] Human IK effector - RLPy.EHikEffector

  • RLPy.EHikEffector_Invalid
  • RLPy.EHikEffector_LeftHand
  • RLPy.EHikEffector_LeftElbow
  • RLPy.EHikEffector_LeftShoulder
  • RLPy.EHikEffector_RightHand
  • RLPy.EHikEffector_RightElbow
  • RLPy.EHikEffector_RightShoulder
  • RLPy.EHikEffector_LeftFoot
  • RLPy.EHikEffector_LeftKnee
  • RLPy.EHikEffector_LeftHip
  • RLPy.EHikEffector_RightFoot
  • RLPy.EHikEffector_RightKnee
  • RLPy.EHikEffector_RightHip
  • RLPy.EHikEffector_Hip
  • RLPy.EHikEffector_Head
  • RLPy.EHikEffector_Neck
  • RLPy.EHikEffector_ChestOrigin
  • RLPy.EHikEffector_LeftToe
  • RLPy.EHikEffector_RightToe
  • RLPy.EHikEffector_LeftFingerBase
  • RLPy.EHikEffector_RightFingerBase
  • RLPy.EHikEffector_Quantity

bLock [IN] Lock rotate status - bool

Return Values

RLPy.RStatus.Success Success

RLPy.RStatus.Failure Fail


SetEffectorLockTranslate

RLPy.RIHikEffectorComponent.SetEffectorLockTranslate ( self, eEffector, bLock )

Set human IK effector lock translate status. ( Experimental API )

Parameters

eEffector [IN] Human IK effector - RLPy.EHikEffector

  • RLPy.EHikEffector_Invalid
  • RLPy.EHikEffector_LeftHand
  • RLPy.EHikEffector_LeftElbow
  • RLPy.EHikEffector_LeftShoulder
  • RLPy.EHikEffector_RightHand
  • RLPy.EHikEffector_RightElbow
  • RLPy.EHikEffector_RightShoulder
  • RLPy.EHikEffector_LeftFoot
  • RLPy.EHikEffector_LeftKnee
  • RLPy.EHikEffector_LeftHip
  • RLPy.EHikEffector_RightFoot
  • RLPy.EHikEffector_RightKnee
  • RLPy.EHikEffector_RightHip
  • RLPy.EHikEffector_Hip
  • RLPy.EHikEffector_Head
  • RLPy.EHikEffector_Neck
  • RLPy.EHikEffector_ChestOrigin
  • RLPy.EHikEffector_LeftToe
  • RLPy.EHikEffector_RightToe
  • RLPy.EHikEffector_LeftFingerBase
  • RLPy.EHikEffector_RightFingerBase
  • RLPy.EHikEffector_Quantity

bLock [IN] Lock translate status - bool

Return Values

RLPy.RStatus.Success Success

RLPy.RStatus.Failure Fail