https://wiki.reallusion.com/index.php?title=IC_Python_API:RLPy_RIFacialDevice&feed=atom&action=history
IC Python API:RLPy RIFacialDevice - Revision history
2024-03-29T00:29:56Z
Revision history for this page on the wiki
MediaWiki 1.26.2
https://wiki.reallusion.com/index.php?title=IC_Python_API:RLPy_RIFacialDevice&diff=2981&oldid=prev
Chuck (RL): Created page with "{{TOC}} {{Parent|IC_Python_API:RL_Python_Modules|Modules}} ==Inheritance== This class inherits public member functions from: *IC_Python_API:RLPy_RIDeviceBase|RLPy.RIDeviceBa..."
2019-04-01T08:14:44Z
<p>Created page with "{{TOC}} {{Parent|IC_Python_API:RL_Python_Modules|Modules}} ==Inheritance== This class inherits public member functions from: *IC_Python_API:RLPy_RIDeviceBase|RLPy.RIDeviceBa..."</p>
<p><b>New page</b></p><div>{{TOC}}<br />
{{Parent|IC_Python_API:RL_Python_Modules|Modules}}<br />
==Inheritance==<br />
This class inherits public member functions from:<br />
*[[IC_Python_API:RLPy_RIDeviceBase|RLPy.RIDeviceBase]]<br />
==Detailed Description==<br />
This class is used to represent the facial mocap device.<br />
Provide methods to control facial animation, including eye movement, head rotation and facial expression. <syntaxhighlight lang="Python"><br />
mocap_manager = RLPy.RGlobal.GetMocapManager()<br />
<br />
avatar_list = RLPy.RScene.GetAvatars()<br />
avatar = avatar_list[0]<br />
<br />
facial_device_ID = "FacialDevice"<br />
facial_device = mocap_manager.AddFacialDevice(facial_device_ID)<br />
<br />
facial_setting = RLPy.RFacialSetting()<br />
facial_setting.SetBlend(False)<br />
facial_device.AddAvatar(avatar)<br />
facial_device.SetFacialSetting(avatar, facial_setting)<br />
<br />
facial_device.Initialize()<br />
<br />
head_data1 = [0.3, 0.4, 0.5]<br />
left_eye_data1 = [0.4, 0.5]<br />
right_eye_data1 = [0.4, 0.5]<br />
bone_data1 = [0.3, 0.4, 0.5, 0.3, 0.4, 0.4, 0.3, 0.4, 0.5, 0.3, 0.4, 0.4]<br />
morph_data1 = [0]*60<br />
custom_data1 = [0]*24<br />
<br />
head_data2 = [0.3, 0.4, 0.5]<br />
left_eye_data2 = [0.4, 0.5]<br />
right_eye_data2 = [0.4, 0.5]<br />
bone_data2 = [2.3, 2.4, 2.5, 2.3, 2.4, 2.4, 2.3, 2.4, 2.5, 2.3, 2.4, 2.4]<br />
morph_data2 = [0.5]*60<br />
custom_data2 = [0]*24<br />
<br />
head_data3 = [0.3, 0.4, 0.5]<br />
left_eye_data3 = [0.4, 0.5]<br />
right_eye_data3 = [0.4, 0.5]<br />
bone_data3 = [0.3, 0.4, 0.5, 0.3, 0.4, 0.4, 0.3, 0.4, 0.5, 0.3, 0.4, 0.4]<br />
morph_data3 = [0.7]*60<br />
custom_data3 = [0]*24<br />
<br />
<br />
mocap_manager.Start(RLPy.EMocapState_MOCAP_RECORD)<br />
facial_device.ProcessData(avatar, head_data1, left_eye_data1, right_eye_data1, morph_data1, custom_data1, bone_data1, frame1_time)<br />
facial_device.ProcessData(avatar, head_data2, left_eye_data2, right_eye_data2, morph_data2, custom_data2, bone_data2, frame2_time)<br />
facial_device.ProcessData(avatar, head_data3, left_eye_data3, right_eye_data3, morph_data3, custom_data3, bone_data3, frame3_time)<br />
mocap_manager.Stop()<br />
</syntaxhighlight><br />
==Member Functions==<br />
===GetFacialSetting===<br />
<syntaxhighlight lang="Python"><br />
RLPy.RIFacialDevice.GetFacialSetting ( self, spAvatar )<br />
</syntaxhighlight><br />
Get facial setting.<br />
====Parameters====<br />
<div style="margin-left: 2em;"><br />
<br />
'''spAvatar''' [IN] avatar - RLPy.RIAvatar<br />
</div><br />
====Returns====<br />
<div style="margin-left: 2em;">Facial setting - RLPy.RFacialSetting<br />
</div><br />
-----<br />
===Initialize===<br />
<syntaxhighlight lang="Python"><br />
RLPy.RIFacialDevice.Initialize ( self )<br />
</syntaxhighlight><br />
Initialize facial device.<br />
====Return Values====<br />
<div style="margin-left: 2em;"><br />
<br />
'''RLPy.RStatus.Success''' Success<br />
<br />
'''RLPy.RStatus.Failure''' Fail<br />
</div><br />
-----<br />
===ProcessData===<br />
<syntaxhighlight lang="Python"><br />
RLPy.RIFacialDevice.ProcessData ( self, spAvatar, kHead, kLeftEye, kRightEye, kMorph, kCustom, kBone, nDeviceTime = -1 )<br />
</syntaxhighlight><br />
Process data to IC avatar.<br />
====Parameters====<br />
<div style="margin-left: 2em;"><br />
<br />
'''spAvatar''' [IN] avatar - RLPy.RIAvatar<br />
<br />
'''kHead''' [IN] head weight - float<br />
<br />
'''kLeftEye''' [IN] left eye weight - float<br />
<br />
'''kRightEye''' [IN] right eye weight - float<br />
<br />
'''kMorph''' [IN] morph weight - float<br />
<br />
'''kCustom''' [IN] custom weight - float<br />
<br />
'''kBone''' [IN] bone weight - float<br />
<br />
'''nDeviceTime''' [IN] device time in millisecond - int<br />
</div><br />
====Return Values====<br />
<div style="margin-left: 2em;"><br />
<br />
'''RLPy.RStatus.Success''' Success<br />
<br />
'''RLPy.RStatus.Failure''' Fail<br />
</div><br />
-----<br />
===SetFacialSetting===<br />
<syntaxhighlight lang="Python"><br />
RLPy.RIFacialDevice.SetFacialSetting ( self, args )<br />
</syntaxhighlight><br />
Set facial setting.<br />
====Parameters====<br />
<div style="margin-left: 2em;"><br />
<br />
'''kAvatarList''' [IN] avatar list - RLPy.RIAvatar<br />
<br />
'''spSetting''' [IN] facial setting - RLPy.RFacialSetting<br />
</div><br />
====Return Values====<br />
<div style="margin-left: 2em;"><br />
<br />
'''RLPy.RStatus.Success''' Success<br />
<br />
'''RLPy.RStatus.Failure''' Fail<br />
</div></div>
Chuck (RL)