版本:Unity 6 (6000.0)
语言:英语
动画选项卡
提取动画片段

欧拉曲线重采样

3D 应用程序中的旋转通常表示为 四元数Unity 用于表示旋转数据的标准方法。在编写处理旋转的代码时,通常应使用 Quaternion 类及其方法。 更多信息
参见 词汇表
或欧拉角。在大多数情况下,Unity 在内部将旋转表示为四元数;但是,了解 Unity 中的旋转和方向 非常重要。

当您导入包含来自外部来源的动画的文件时,导入的文件通常包含以欧拉格式的 关键帧标记动画中过渡的开始或结束点的帧。关键帧之间的帧称为中间帧。
参见 词汇表
动画。Unity 的默认行为是将这些动画重新采样为四元数值,并为动画中的每一帧生成一个新的四元数关键帧。这将最大限度地减少源动画与它在 Unity 中显示方式之间的差异。

即使重新采样,在某些情况下,导入动画的四元数表示仍然可能无法与原始动画完全匹配。为此,Unity 提供了关闭动画重新采样的选项。这意味着您可以在运行时使用原始欧拉动画关键帧。

注意: 仅在默认的四元数帧间插值产生糟糕的结果并导致问题时,才应将欧拉曲线保留为最后的手段。

保留导入动画上的原始欧拉曲线

要在动画文件中使用原始欧拉曲线值,请取消选中 动画选项卡 中的 重新采样曲线 选项。

The Resample Curves option in the Animations tab
动画选项卡中的重新采样曲线选项

禁用此选项后,Unity 会将旋转曲线保留为其原始关键帧,以欧拉或四元数模式,具体取决于曲线类型。

注意: FBX SDK 会自动重新采样任何具有预旋转或后旋转的 关节物理组件,允许在刚体组件之间建立动态连接,通常允许一定程度的运动,例如铰链。 更多信息
参见 词汇表
上的旋转曲线。这意味着 Unity 会自动将它们导入为四元数曲线。

Unity 支持各种各样的导入文件,并试图使导入的曲线尽可能接近原始曲线。为了实现这一点,Unity 支持所有正常的(非重复的)欧拉旋转顺序,并以其原始旋转顺序导入曲线。

欧拉值和 Unity 引擎

当使用原始欧拉(未重新采样)旋转时,您可以在动画播放中看到非常小的视觉差异。在幕后,Unity 即使在运行时也会以欧拉表示存储这些曲线。但是,Unity 最终必须将旋转值转换为四元数,因为引擎仅使用四元数。

当您禁用 重新采样曲线 选项时,Unity 会将旋转值保留为欧拉值,直到它们应用于 游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、摄像机、路点等。游戏对象的功能由附加到它的组件定义。 更多信息
参见 词汇表
。这意味着最终结果应该与原始结果一样好,但在内存方面有所改进,因为在创作软件中未烘焙的旋转曲线占用更少的内存。

变换检查器中的非默认欧拉顺序

默认情况下,Unity 会按 Z、X、Y 的顺序应用出现在变换 检查器Unity 窗口,显示有关当前选定游戏对象、资源或项目设置的信息,允许您检查和编辑这些值。 更多信息
参见 词汇表
中的欧拉角。

当回放或编辑具有与 Unity 默认值不同的旋转顺序的欧拉曲线的导入动画时,Unity 会在旋转字段旁边显示一个指示差异的指示符。

The inspector showing that a non-default rotation order is being used for the rotation animation on this object
检查器显示该对象的旋转动画正在使用非默认旋转顺序

当编辑具有不同旋转顺序的多个变换时,Unity 会显示一条警告消息,说明应用相同的欧拉旋转将在具有不同旋转顺序的曲线上产生不同的结果。

The inspector showing that a mixture of rotation orders are being used for the rotation animation on the selected group of objects
检查器显示所选对象组的旋转动画正在使用混合的旋转顺序
动画选项卡
提取动画片段