用于 HIKCharacterState 数据的数据集函数

可以使用一个数据集同时为多个节点设置和检索数据,如设置和检索数据的工作流中所述。

执行此操作的确切步骤(包括必须为数据集使用的数据描述结构)会有所不同,具体取决于您要使用单个数值数组还是使用变换矩阵来设置和检索每个节点的平移、方向和缩放数据。请参见使用单独 TQS 值设置和检索节点数据使用矩阵设置和检索节点数据

全局空间与局部空间

HIKCharacterState 中为节点设置和检索数据时,必须在数据描述中指定数据集中的数据反映的是节点在全局空间还是局部空间(相对于父节点)中的平移、旋转和缩放。在内部,HumanIK 使用规格化全局空间中的值来表示每个节点的状态;如果在设置或检索数据集中的数据时指定局部空间,HumanIK 将透明地进行坐标转化。

但是,如果您的角色包含 HumanIK 未知的关节,并在局部空间中设置或检索节点数据,该未知关节的平移、旋转和缩放将影响 HumanIK 对其子节点的值的转化方式。在这种情况下,您还必须为每个节点设置一个父偏移,以指示未知父项或父关节的影响。请参见支持其他关节

如果选择使用局部空间,则必须通过一个过程在 HIKCharacterState 中设置所有节点的平移、旋转和缩放。不能通过两个或多个过程在局部空间中为不同的节点设置值,也不能在局部空间中设置一些值而在全局空间中设置其他值。