可以使用以下函数设置或检索 HIKEffectorSetState 中单个效应器的数据。对于每个效应器,不仅可以沿每个轴设置其平移、方向和缩放值,而且还可以设置其 Reach、Pull 和 Resist IK 约束。
下面列出的函数遵循数据表示和函数变体下概述的命名约定。有关其他详细信息,请参见 API 参考中对每个函数的描述。
设置 IK 约束(Reach、Pull、Resist)的函数:
以下代码使用 HIKSetEffectorStateTQSfv() 和 HIKGetEffectorStateTQSfv() 函数来设置右手节点的平移、四元数旋转和缩放,以及检索左手节点对应的相同数据:
HIKSetEffectorStateTQSfv(MyEffState, RightHandEffectorId, myTargetPoint.GetTranslation() myTargetPoint.GetRotation() myTargetPoint.GetScale()); HIKSetTranslationActive(MyEffState, RightHandEffectorId, 1.0f); HIKSetRotationActive(MyEffState, RightHandEffectorId, 1.0f); HIKSetPull(MyEffState, RightHandEffectorId, 0.5f); ... const float trans[4]; const float rota[4]; const float scale[4]; const float reachT; const float reachR; const float pull; HIKGetEffectorStateTQSfv(MyEffState, LeftHandEffectorId, trans, rota, scale); HIKGetTranslationActive(MyEffState, LeftHandEffectorId, reachT); HIKGetRotationActive(MyEffState, LeftHandEffectorId, reachR); HIKGetPull(MyEffState, LeftHandEffectorId, pull);