本主题讨论了属性列表、动画曲线及其关键帧,添加和修改关键帧以及旋转插值类型。
在 动画片段可用于动画角色或简单动画的动画数据。它是运动的一个简单的“单元”部分,例如(一个特定的实例)“闲置”、“行走”或“奔跑”。更多信息
参见 术语表 中,如果一个可动画属性具有 动画曲线,这意味着该属性的值随时间变化。在 动画视图(左侧)的属性列表区域,列出了所有当前动画的属性。在动画视图处于“动画编辑”模式时,每个属性的动画值仅显示为线性轨道,但在“曲线”模式下,您可以看到属性的更改值以曲线形式显示在图形上。曲线始终存在,无论您使用哪种模式:动画编辑模式通过仅指示关键帧发生的时间来提供简化的数据视图。
在 曲线 模式下,动画曲线允许您向导入的片段添加数据,以便您可以根据动画器的状态来动画其他项目的时序。例如,对于在冰冻条件下进行的游戏,您可以使用额外的动画曲线来控制粒子系统的发射率,以显示玩家在冷空气中凝结的呼吸。更多信息
参见 术语表 具有彩色曲线指示器。每种颜色代表属性列表中选定的属性之一。有关如何将曲线添加到动画属性的信息,请参阅关于 使用动画视图 的部分。
一个 动画曲线 具有多个 关键帧,它们是曲线经过的控制点。这些在 曲线编辑器 中可视化为曲线上的小菱形。曲线显示一个或多个 关键帧 的帧被称为 关键帧标记动画中过渡开始或结束点的帧。关键帧之间的帧称为中间帧。
参见 术语表.
曲线编辑器 仅显示选定属性的曲线。如果您在属性列表中选择了多个属性,则曲线将一起显示。如果属性在当前预览的帧处具有 关键帧,则曲线指示器将变为菱形。
您可以在当前预览的帧处通过单击 关键帧按钮 添加 关键帧。
可以通过单击 关键帧按钮 在当前预览的帧处添加 关键帧。这将向所有当前选定的曲线添加关键帧。或者,您可以在任何给定帧处通过双击曲线来向单个曲线添加关键帧,新 关键帧 应位于该位置。也可以通过右键单击 关键帧线 并从上下文菜单中选择 添加关键帧 来添加 关键帧。放置后,关键帧 可以使用鼠标拖动。也可以选择多个 关键帧 以同时拖动。可以通过选择 关键帧 并按 Delete 键,或通过右键单击它们并从上下文菜单中选择 删除关键帧 来删除 关键帧。
动画视图 可用于动画化比 游戏对象 的位置、旋转和缩放更多的东西。任何 组件游戏对象的一个功能部分。一个游戏对象可以包含任意数量的组件。Unity 具有许多内置组件,您还可以通过编写从 MonoBehaviour 继承的脚本创建自己的组件。更多信息
参见 术语表 和 材质定义表面渲染方式的资源。更多信息
参见 术语表 的属性都可以动画化 - 甚至是您自己的 脚本一段代码,允许您创建自己的组件,触发游戏事件,随着时间的推移修改组件属性并以任何您喜欢的方式响应用户输入。更多信息
参见 术语表 组件的公共变量。制作具有复杂视觉效果和行为的动画只是为相关属性添加 动画曲线 的问题。
动画系统支持以下类型的属性
不支持数组,也不支持结构体或除上面列出的之外的其他对象。
对于布尔值属性,0 值等于 False,而任何其他值都等于 True。
以下是一些 动画视图 可以用于的众多事物的示例
使用 动画曲线 控制游戏逻辑时,请注意动画在 Unity 中的 播放和采样 方式。
在 Unity 中,旋转在内部表示为 四元数Unity 表示旋转数据的标准方法。在编写处理旋转的代码时,您通常应该使用 Quaternion 类及其方法。更多信息
参见 术语表。四元数由 .x、.y、.z 和 .w 值组成,这些值通常不应手动修改,除非知道他们在做什么。相反,旋转通常使用 欧拉角 进行操作,欧拉角 具有 .x、.y 和 .z 值,分别代表绕这三个轴的旋转。
在对两个旋转进行插值时,插值可以在 四元数 值或 欧拉角 值上执行。动画视图 允许您在动画 变换 旋转时选择要使用的插值形式。但是,无论使用哪种插值形式,旋转始终以 欧拉角 值的形式显示。
四元数插值始终沿两个旋转之间的最短路径生成平滑的旋转变化。这避免了旋转插值伪影,例如万向节锁。但是,由于四元数插值始终查找最短路径,因此它不能表示大于 180 度的旋转。(您可以通过在球体表面上选择两个点来想象这一点 - 它们之间的最短线永远不会超过球体的一半。)
如果您使用四元数插值并将数值旋转值设置得大于 180 度,则在动画窗口中绘制的曲线仍然看起来覆盖了超过 180 度的范围,但是对象的实际旋转将采取最短路径。
在使用四元数插值进行旋转时,更改 x、y 或 z 曲线的关键帧或切线也可能会更改另外两个曲线的数值,因为所有三个曲线都是从内部四元数表示生成的。在使用四元数插值时,关键帧始终是链接的,因此,在特定时间为三个曲线(x、y 或 z)中的一个创建关键帧也会在该时间为另外两个曲线创建关键帧。
欧拉角插值是大多数人习惯使用的。欧拉角可以表示任意大的旋转,并且 .x、.y 和 .z 曲线彼此独立。欧拉角插值在同时围绕多个轴旋转时可能会出现伪影,例如万向节锁,但在一次围绕一个轴进行简单旋转时直观易用。当使用欧拉角插值时,Unity 在内部将曲线烘焙到内部使用的四元数表示中。这类似于从外部软件将动画导入 Unity 时发生的情况。请注意,这种曲线烘焙可能会在此过程中添加额外的关键帧,并且具有 常数 切线类型的切线可能无法在子帧级别完全精确。