Version: 6000.3
语言: 中文
对游戏对象进行动画处理
编辑动画曲线

使用动画曲线

本主题讨论属性列表、动画曲线及其关键帧、添加和修改关键帧以及旋转插值类型。

属性列表

动画剪辑(Animation Clip可用于动画角色或简单动画的动画数据。它是一个简单的“单位”运动片段,例如(一个特定实例)“空闲”、“步行”或“运行”。更多信息
请参阅术语表
,如果可动画属性具有动画曲线,则意味着该属性的值会随时间变化。在动画视图的属性列表区域(左侧)中,列出了所有当前动画的属性。在“摄影表”模式下,每个属性的动画值仅显示为线性轨道,但在“曲线”模式下,你可以看到属性的变化值在图表上以线条的形式可视化。无论使用哪种模式,曲线仍然存在:“摄影表”模式仅指示关键帧何时出现,从而提供了简化的数据视图。

曲线模式下,动画曲线允许您向导入的剪辑添加数据,以便您可以根据动画师的状态为其他项目的计时设置动画。例如,对于设置在冰冷条件下的游戏,您可以使用额外的动画曲线来控制粒子系统的发射速率,以显示玩家在冷空气中凝结的呼吸。更多信息
请参阅术语表
具有彩色曲线指示器。每种颜色表示属性列表中的选定属性之一。有关如何将曲线添加到动画属性的信息,请参阅使用动画视图部分。

动画曲线,颜色指示器可见。在此示例中,绿色指示器与弹跳立方体动画的 Y 位置曲线匹配。
动画曲线,颜色指示器可见。在此示例中,绿色指示器与弹跳立方体动画的 Y 位置曲线匹配。

曲线、关键帧和关键帧

动画曲线有多个关键帧,这些关键帧是曲线通过的控制点。这些在曲线编辑器中可视化为曲线上的小菱形形状。显示的一条或多条曲线具有关键帧的帧称为关键帧标记动画中过渡的起点或终点的帧。关键帧之间的帧称为中间帧。
请参阅术语表
.

曲线编辑器仅显示所选属性的曲线。如果在属性列表中选择了多个属性,则曲线将一起显示。如果属性在当前预览的帧处具有关键帧,则曲线指示器将更改为菱形。

多个选定属性的曲线可以在曲线编辑器中相互叠加。Position.y 和 Scale.y 属性在当前预览的帧处有一个关键帧。
多个选定属性的曲线可以在曲线编辑器中相互叠加。Position.yScale.y 属性在当前预览的帧处有一个关键帧。

添加和修改关键帧

您可以通过单击“关键帧”按钮在当前预览的帧上添加关键帧

关键帧按钮。
关键帧按钮。

可以通过单击 关键帧(Keyframe) 按钮在当前预览的帧处添加关键帧。这将向所有当前选定的曲线添加一个关键帧。或者,您可以通过双击新关键帧所在的曲线将关键帧添加到任何给定帧的单个曲线。也可以通过右键单击 关键帧线(Keyframe Line) 并从上下文菜单中选择 添加关键帧(Add Keyframe) 来添加关键帧。放置后,可以用鼠标拖动关键帧。也可以选择多个关键帧进行一次拖动。可以通过选择关键帧并按 Delete 键,或右键单击关键帧并从上下文菜单中选择 删除关键帧(Delete Keyframe) 来删除关键帧。

可动画属性

动画视图可用于制作动画,而不仅仅是游戏对象的位置、旋转和缩放。任何组件游戏对象的功能部分。游戏对象可以包含任意数量的组件。Unity 有许多内置组件,您可以通过编写继承自 MonoBehaviour 的脚本来创建自己的组件。更多信息
请参阅术语表
材质(Material)定义表面应如何渲染的资产。更多信息
请参阅术语表
可以动画化 - 甚至是您自己的公共变量脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表
组件。制作具有复杂视觉效果和行为的动画只需为相关属性添加动画曲线即可。

动画系统支持以下类型的属性:

  • 颜色
  • 矢量2
  • 矢量3
  • 矢量4
  • 四元数
  • 布尔

不支持数组,除上面列出的结构体或对象之外,也不支持数组。

对于布尔属性,值 0 等于 False,而任何其他值等于 True

以下是动画视图可用于的许多用途的几个示例:

  • 设置灯光颜色强度的动画,使其闪烁、闪烁或脉动。
  • 为循环的音高音量设置动画音频源(Audio Source) 将场景中的音频剪辑播放到音频监听器或通过混音器播放的组件。更多信息
    请参阅术语表
    为吹风、运转的发动机或流水赋予生命,同时将声音资产的大小保持在最小。
  • 材质纹理偏移设置动画,以模拟移动的皮带或轨道、流水或特殊效果。
  • “发射”状态进行动画处理,然后速度定义刚
    运动速度和方向的矢量,请参阅术语表
    多个椭球体粒子发射器,以创建壮观的烟花或喷泉表演。
  • 对您自己的脚本组件的变量进行动画处理,使事物随时间变化。

旋转插值类型(Rotation Interpolation Types)

在 Unity 中,旋转在内部表示为四元数Unity 将旋转表示为数据的标准方法。在编写处理旋转的代码时,通常应该使用 Quaternion 类及其方法。更多信息
请参阅术语表
.四元数由 .x.y.z.w 值组成,除非由确切知道自己在做什么的人,否则通常不应手动修改这些值。相反,通常使用欧拉角(Euler Angles)来纵旋转,欧拉角具有 .x.y.z 值,表示围绕这三个各自轴的旋转。

在两个旋转之间进行插值时,可以对四元数值或欧拉角值执行插值。动画视图允许你选择在为变换旋转设置动画时要使用的插值形式。但是,无论使用哪种插值形式,旋转始终以欧拉角值的形式显示。

变换旋转可以使用欧拉角插值或四元数插值。
变换旋转可以使用欧拉角插值或四元数插值。

四元数插值

四元数插值始终沿着两个旋转之间的最短路径生成平滑的旋转变化。这避免了旋转插值伪影,例如云台锁定。但是,四元数插值不能表示大于 180 度的旋转,因为它总是找到最短路径。(您可以通过选择球体表面上的两个点来想象这一点 - 它们之间的最短线永远不会超过球体的一半)。

如果使用四元数插值并将数值旋转值设置为相距超过 180 度,则在动画窗口中绘制的曲线仍将覆盖超过 180 度的范围,但对象的实际旋转将采用最短路径。

使用四元数插值时将两个键相距 270 度放置将导致插值反过来,即仅为 90 度。洋红色曲线是动画窗口中实际显示的内容。在此屏幕截图中,对象的真实插值由黄色虚线表示,但实际上并未显示在编辑器中。
使用四元数插值时将两个键相距 270 度放置将导致插值反过来,即仅为 90 度。洋红色曲线是动画窗口中实际显示的内容。在此屏幕截图中,对象的真实插值由黄色虚线表示,但实际上并未显示在编辑器中。

使用四元数插值进行旋转时,更改 x、y 或 z 曲线的关键帧或切线也可能更改其他两条曲线的值,因为所有三条曲线都是从内部四元数表示创建的。使用四元数插值时,关键帧始终是链接的,因此在特定时间为三条曲线(x、y 或 z)中的一条创建关键帧也会在该时间为其他两条曲线创建关键帧。

Euler Angles Interpolation

欧拉角插值是大多数人习惯使用的方法。欧拉角可以表示任意大旋转,并且 .x.y.z 曲线彼此独立。当同时绕多个轴旋转时,欧拉角插值可能会受到伪影的影响,例如万向节锁定,但对于一次绕一个轴进行简单旋转,使用起来很直观。当使用欧拉角插值时,Unity 会在内部将曲线烘焙到内部使用的四元数表示中。这类似于从外部软件将动画导入 Unity 时发生的情况。请注意,此曲线烘焙可能会在此过程中添加额外的关键帧,并且具有 常量(Constant) 切线类型的切线在子帧级别可能不完全精确。

其他资源

对游戏对象进行动画处理
编辑动画曲线