将动画轨迹重定目标

某些动画引擎会跟踪角色动画的轨迹信息,以连续动画帧之间的平移和旋转增量来表示。通过该信息,无论动画的起始位置在哪,引擎都可以混合多个不同的动画。将每一帧中动画的平移、旋转和缩放增量混合在一起,可以确保得到相对于上一帧进行了适当平移、旋转和缩放的混合结果。

但是,将动画重定目标为比例不同的角色时(例如,将行走中的动画从较大角色重定目标为小很多的角色),则该轨迹混合可能会有问题:

要解决此问题,HumanIK 可以将为源角色动画指定的平移和旋转增量转换为目标角色的角色空间。这些经过调整的增量值为动画引擎提供了目标角色跟随的实际轨迹,从而允许您在重定目标动画顶部混合其他动画。

设置轨迹重定目标

以下说明基于对设置和执行重定目标的基本说明,在使用 HumanIK中会对其做介绍。

  1. 设置目标角色的 HIKPropertySetState 时:

    • HIKHipsTranslationModeId 特性的值设置为 2。在执行重定目标时,该值将指导重定目标解算器调整 HipsTranslationId 节点中包含的增量。
    • HIKForceActorSpaceId 的模式设置为 0(默认模式)。

  2. 在每一帧上,在设置源角色的 HIKCharacterState 时,将自动画前一帧起的增量平移、旋转和缩放值存储到由源角色的 HipsTranslationId 节点保持的值中。
  3. 在每一帧上,从目标角色的 HIKCharacterState 检索重定目标的结果时,从目标角色的 HipsTranslationId 节点检索经过调整的增量平移和增量旋转。值以全局空间表示。

    如果源角色没有 HipsTranslationId 节点,则目标角色的 HipsTranslationId 节点将包含从源角色的 HipsNodeId 节点重定目标的值。