HumanIK 提供两项主要功能:全身反向运动学 (IK) 和重定目标。
可以对比正向运动学 (FK) 来最为贴切地阐述反向运动学 (IK):为层次骨架预设一系列移动的传统动画策略。这些正向运动学动画有时在 3D 艺术应用程序中创建,有时由运动捕捉(即记录装备了运动感应器的真实人物的运动)创建。关键帧标识了某些关节在不同时间的位置和旋转,并且会沿动画曲线对关键帧之间的动画进行插值。骨架中的关节移动和旋转时,其子对象也相应地移动和旋转。
尽管正向运动学是一种使角色逼真移动的直接方法,但当角色需要在运行时与其环境交互(尤其是该环境在动态演变)时,该方法会出现问题。角色使用正向运动学动画时,它会始终按照一个特定顺序执行一组特定的运动。
相比之下,反向运动学则允许您在 3D 空间中为角色的关节指定一组目标点,并自动更新角色的位置以到达这些目标点。因此,通过上述示例,您可以将目标点置于游戏中门把手的实际位置,并使角色从任何起点位置都能伸手握到门把手。将关节移动到目标位置这一操作还可以移动骨架层次的关节链中的其他关节:在手移向门把手时,可以与其一起拖动肘部和手臂关节。
HumanIK 执行全身反向运动学:不仅目标点(称为效应器)可以使单个关节链移动,而且整个身体可以帮助将关节放置在其效应器的位置上。整个身体有组织地移动,以最好地满足角色当前活动的所有效应器。此外,HumanIK 效应器不仅可以指定应用于关节的平移(即移动的距离和方向),而且可以指定应用于关节的旋转(即关节到达效应器位置时的方向)。
实际上,HumanIK 反向运动学解算器通常用于改变正向运动学动画,以使其与角色和游戏的当前状态更好地同步。但在原则上,HumanIK 提供了无限的可能,使您仅通过平移和旋转效应器以及更改其自定义参数就可以为角色即时创建完整复杂的动画。
重定目标就是使用为给定源角色录制的正向运动学动画来控制一个或多个不同目标角色的移动的过程,该过程可能具有非常不同的比例、缩放、骨架结构、运动限制、细节层次等。
例如,在下图中,已为左侧的人类角色录制正向运动学动画。在运行时,HumanIK 将该动画重定目标为较小的精怪角色和较大的人类角色,使它们执行相同的运动,稍作改变以匹配其身体比例。
此过程本质上创建了源角色骨架结构与目标角色骨架结构之间的映射。它分析了源角色执行的运动,确定目标角色应如何反映这些移动,并使用反向运动学解算器查找最能反映原始动画的目标角色的最终位置。
请务必注意,反向运动学仍是重定目标过程的关键。可用于控制反向运动学解算器的许多约束也可以在重定目标中使用。此外,重定目标解算器还接受多种特定的可自定义参数,以增强已重定目标的动画的逼真度和性能。