JSRUN 用代码说话

角色动画在游戏中的应用

编辑教程

角色动画在游戏中的应用

我们对人形动画有了一定的了解,接下来我们将介绍一下在游戏开发中人形角色动画的具体应用步骤。

Animator 组件

Animator 组件是关联角色及其行为的纽带,每一个含有 Avatar 的角色动画模型都需要一个 Animator 组件。Animator 组件引用了 Animator Controller 用于为角色设置行为,具体参数如下表所示。

参 数 含 义 功 能
Controller 控制器 关联到角色的 Animator 控制器
Avatar 骨架结构的映射 定义 Mecanim 动画系统的简化人形骨架结构到该角 色的骨架结构的映射
Apply Root Motion 应用 Root Motion 选项 设置使用动画本身还是使用脚本来控制角色的位置
Animate Physics 动画的物理选项 设置动画是否与物理属性交互
Culling Mode 动画的裁剪模式 设置动画是否裁剪以及裁剪模式

Animator Controller

Animator Controller 可以从 Project 视图创建一个动画控制器(执行 Create→Animator Controller 命令),同时会在 Assets 文件夹内生成一个后缀名为 .Controller 的文件。

当设置好运动状态机后,就可以在 Hierarchy 视图中将该 Animator Controller 拖入含有 Avatar 的角色模型 Animator 组件中。

通过动画控制器视图(执行 Window→Animator Controller 命令)可以查看和设置角色行为,值得注意的是,Animator Controller 窗口总是显示最近被选中的后缀为 .Controller 的资源的状态机,与当前载入的场景无关。

最后在 Inspector 属性编辑器 Conditions 列表中单击“+”创建参数,并选择所需的参数即可,如下图所示。

实践案例:模型动画

案例构思

模型动画是常见的游戏动画类型,玩家通过特定的操作对模型进行动作指定,从而完成交互功能。

本案例旨在通过模型动画的制作,让读者了解骨骼绑定后的 fbx 模型动画在 Unity 3D 软件中的使用方法。

案例设计

本案例在 Unity 3D 内导入一个绑定好骨骼动画的第三人称人物模型,人物身上绑定了若干个动作,通过代码实现键盘与模型动画的交互功能,如下图所示。

案例实施

步骤 1

创建项目并保存场景。

步骤 2

执行 Assets→Import Package→Characters 命令载入人物资源。

步骤 3

将模型添加到 Scene 视图中,按 F2 键将其重新命名为 Constructor,调整好位置,如下图所示。

步骤 4

在右侧的 Inspector 面板中设置动画动作,如下图所示。

其中有关的参数功能如下:

Animation:默认动画。
Size:动画数量。
Play Automatically:是否自动播放动画。
Animate Physics:是否接收物理碰撞。
Culling Type:动画裁剪模式。

步骤 5

创建 JavaScript 脚本,并将其连接到摄像机上。

var obj:GameObject=null;
function  Start(){
 obj=GameObject.Find("Constructor");
 obj.animation.wrapMode=WrapMode.Loop;
}  //设置动画播放类型为循环
function  Update(){
 if(Input.GetKeyDown(KeyCode.A))  //按键后播放不同动画
 {obj.animation.Play("idle");}
 if(Input.GetKeyDown(KeyCode.B))
 {obj.animation.Play("run");}
 if(Input.GetKeyDown(KeyCode.C))
 {obj.animation.Play("walk");}
 if(Input.GetKeyDown(KeyCode.D))
 {obj.animation.Play("jump pose");}
}
function  OnGUI(){  //显示提示信息
 GUILayout.Label("按字母键A、B、C、D切换播放模型骨骼动画");
}

步骤 6

单击 Play 按钮测试,可以通过键盘 A、B、C、D 键控制人物动作。

JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟