Unity 使用Animation编辑器编辑动画

2015年01月12日 16:48 0 点赞 0 评论 更新于 2025-11-21 14:08

Unity提供了Animation编辑器,可用于编辑物理动画。下面将详细介绍如何使用该编辑器进行动画编辑,以及相关的注意事项。

适用场景

以场景中来回摇动的秋千为例,若该秋千仅起到衬托作用,不与其他游戏对象进行交互,使用代码控制其来回摇动会显得过于复杂。此时,使用Animation编辑器来完成动画制作是一个不错的选择。不过,目前该编辑器还不能编辑FK和IK动画,其可编辑的动画种类存在一定限制。若未来能在Unity中编辑FK和IK动画,那将极大提升其功能。

动画编辑步骤

1. 创建游戏对象并呼出动画编辑窗口

首先,在Hierarchy视图中创建一个游戏对象,这里以创建一个立方体Cube对象为例。保持该对象处于选中状态,然后在Unity导航菜单栏中选择Window -> Animation,即可呼出动画编辑窗口。

2. 创建动画文件

动画编辑窗口弹出后,点击左上角的“小红点”按钮。由于默认新建的Cube对象没有动画,此时会弹出创建动画窗口。在窗口中点击Save,一个名为New Animation的动画文件将被保存在Project视图中。

3. 编辑动画帧

此时动画进入编辑模式,在右上方空白处点击鼠标右键,即可添加一个Frame。点击Frame会出现一道竖向的红线,红线上方对应着Frame的时间。这时,可在左侧Transform中修改每一帧模型的位置,在编辑器中修改数值,同样会被保存在每一帧的Transform中。

4. 播放和设置动画

帧编辑完成后,点击窗口左上角的运行按钮,在游戏视图中可以看到立方体对象按照设定的每帧位置播放动画。在窗口左下角Show: all右侧可以设置动画的播放类型,为了更清晰地观察,可选择PING PONG让动画来回一直播放。动画编辑完成后,再次点击左上角“小红点”按钮退出动画编辑模式。

5. 应用动画剪辑

退出动画编辑模式后,将刚刚编辑完的动画剪辑拖拽至立方体对象的Animation组件中,勾选Play Automatically使其自动播放。运行游戏,立方体对象将按照之前编辑的方式播放动画。

动态监听动画播放事件

若想动态监听一些播放事件,例如在播放几秒时执行特定代码,可以使用动画的事件来实现。具体步骤如下:

1. 创建脚本

创建一条普通的脚本,并将其绑定在Cube对象身上。以下是示例脚本代码:

using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour
{
void Event0()
{
Debug.Log("Event0");
}

void Event1()
{
Debug.Log("Event1");
}
}

2. 添加动画事件

呼出Animation编辑窗口,在时间轴的空白处单机鼠标右键添加一个动画事件,会弹出Edit Animation Event窗口。窗口中间有一个Function的选项,例如选择Event0(),它将对应到脚本中Event0的方法。还可以在脚本中继续添加方法,这些方法都会显示在Function的下拉菜单中。在时间轴的0:10处添加一个动画事件,对应Event0方法,那么当动画播放到0.10s时,程序将进入Event0方法。

局限性及子节点动画编辑

不支持FK和IK动画

虽然Unity的Animation编辑器功能强大,但目前它不支持FK和IK动画,骨骼连带动画仍需在3DMAX或Maya等专业软件中完成。在Unity中打开美术在3DMAX或Maya中制作的动画时,会显示Read-only,表示该动画为只读,无法继续修改。

子节点动画编辑

Animation编辑器只能修改当前节点的动画,若想编辑子节点的动画,需先在父节点中找到该子节点对象,然后通过Window -> Animation呼出编辑器窗口,即可开始编辑。

综上所述,Unity的Animation编辑器为开发者提供了便捷的动画编辑方式,即使不编写代码也能完成基本的动画制作。同时,通过动画事件可以实现动态监听播放事件。但在处理复杂的骨骼连带动画时,还需借助其他专业软件。

作者信息

feifeila

feifeila

共发布了 3994 篇文章