首页 理论教育 Unity3D游戏开发项目教程:实现1D混合树

Unity3D游戏开发项目教程:实现1D混合树

时间:2023-11-16 理论教育 版权反馈
【摘要】:下面举例讲解利用1D 混合树来设置角色的走路和跑步的混合,以及在走路和跑步的时候向左或向右倾斜转弯。图7-28设置Walk 混合树的参数图7-29设置Run 混合树参数图7-30创建Walk 和Run 混合树给混合树添加动画,右击“Walk”→“AddMotion”,添加三个动画。图7-31给Walk 添加动作图7-32给Run 添加动作图7-33动画预览图7-34混合树结构创建脚本“ChanAniTree”,挂载给unitychan 游戏对象,并将unitychan对象赋值给ani 变量。

Unity3D游戏开发项目教程:实现1D混合树

下面举例讲解利用1D 混合树来设置角色的走路和跑步的混合,以及在走路和跑步的时候向左或向右倾斜转弯。

(1)打开工程AnimationDemo,新建一个场景AniTree,在场景中新建一个Plan,并将unitychan模型拖拽到场景中,如图7-25所示。

图7-25 搭建场景

图7-26 设置Animator 组件属性

(2)在Project视图中点击“Create”→“Animator Controller”命令,更名为“ChanTree”。在Hierarchy 视图中选择unitychan 游戏对象,将动画状态机ChanTree 赋值给该游戏对象的Animator 组件的Controller 属性,如图7-26 所示。

(3)双击ChanTree 动画状态机,在Animator 窗口中,拖拽入WAIT01 等待动画作为默认动作,再拖入WALK00_B后退动作。添加Float类型的参数MoveSpeed和RotateSpeed,并设置WAIT01到WALK00_B的过渡条件为MoveSpeed<-0.1,WALK00_B到WAIT01的过渡条件为MoveSpeed>-0.1,并都取消勾选Has Exit Time。

(4)右击“WAIT01”→“Create new BlendTree in State”,新建一个Blend Tree,重命名“Locomotion”,并设置WAIT01到Locomotion的过渡条件为MoveSpeed>0.1,Locomotion到WAIT01的过渡条件为MoveSpeed<0.1,并都取消勾选Has Exit Time,如图7-27所示。

图7-27 创建动画状态机

(5)双击Locomotion 进入混合树,右击“Blend Tree”→“Add Blend Tree”,新建两个混合树,分别取名Walk和Run,参数选择RotateSpeed,如图7-28和图7-29所示,最后结果如图7-30 所示。

图7-28 设置Walk 混合树的参数

(www.xing528.com)

图7-29 设置Run 混合树参数

图7-30 创建Walk 和Run 混合树

(6)给混合树添加动画,右击“Walk”→“AddMotion”,添加三个动画。点击“Walk”,在属性面板中,将向左走、向前走、向右走三个动作(即WALK00_L、WALK00_F 和WALK00_R动作)拖拽给Motion 属性,如图7-31 所示。同理添加Run 的三个动作,如图7-32 所示。鼠标拖动Locomotion 面板中的MoveSpeed 和RotateSpeed参数,会发现各个动作之间的明暗变化,也可以观察右下角模型的动画变化,如图7-33 所示。混合树结构如图7-34 所示。

图7-31 给Walk 添加动作

图7-32 给Run 添加动作

图7-33 动画预览

图7-34 混合树结构

(7)创建脚本“ChanAniTree”,挂载给unitychan 游戏对象,并将unitychan对象赋值给ani 变量。运行游戏实现通过键盘W、A、S、D 键控制角色的走路、奔跑前进和后退,以及左右旋转动作,具体代码如下:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈