可以使用 Unity 来动画化游戏对象的旋转。可采用不同的方法应用这些旋转功能,使其最适合您的项目。
有关旋转表示的更多信息,请参阅 Unity 中的旋转和方向。
可以使用动画 (Animation) 窗口选择 Unity 将旋转应用于游戏对象的方式。Unity 使用插值来计算游戏对象如何在动画中看起来从一个方向移动到另一个方向。
不同的插值方法在运动中视觉效果不同,但具有相同的结果。Unity 为动画提供三种类型的插值:
欧拉角插值会将全部运动范围应用于输入的角度指定的游戏对象;如果旋转大于 360 度,游戏对象将旋转一圈,然后以正确方向停止。
欧拉角(四元数)插值使用上述插值方法,但会将信息转换为四元数曲线。此方法占用更多内存,但会让运行时稍快一些。
四元数插值将游戏对象以最短的距离旋转到特定的方向。例如,无论旋转值为 5 度还是 365 度,游戏对象都会旋转 5 度。
来自外部源的动画通常包含欧拉格式的旋转__关键帧__动画。Unity 对这些动画进行重新采样,并为动画中的每个帧生成新的关键帧,以避免旋转超过四元数的有效范围。
例如,如果有两个关键帧相距六帧,且 x 值从 0 到 270 度,则游戏对象会朝相反方向旋转 90 度,因为这是获得相同结果的距离最短的方法。相反,Unity 会在每一帧上重新采样并添加一个关键帧,因此关键帧之间的旋转仅为 45 度,并且旋转是正确的。
如果导入的动画的四元数重新采样与原始动画的匹配不够紧密,不能满足要求,可以关闭动画重新采样并在运行时使用原始欧拉动画关键帧。有关更多信息,请参阅欧拉曲线重新采样。