内容是看B站看到的一个极客学院的教学视频,想写下来帮助自己记忆和方便查阅,如果想了解更多请进入B站搜索:【极客学院】Unity3D工程师 初级+中级+高级+资深工程师
Animation
我们使用动画主要是给物体添加一些简单的动画,一般并不用来编辑比如人物的跑动啊等一些复杂的动画,那些动画在导入的模型文件里面应该是有的。
Animation窗口可以在Windows菜单栏里面打卡,然后选择要添加动画的物体,添加一些需要改变的资源,编辑在每一帧里面的变化,当然这个要编辑的物体要先添加Animator组件,有一个动画控制器,之后才可以添加动画。
一般一个物体可以被动画窗口操作的属性非常多,包括本身的组件的属性。如下:
如图按Add Property可以添加动画控制的属性变化。那些复杂的动画比如人物的动作可以包含诸如肢体和眼神的动作,非常复杂。
Apply Root Motion 使动画随着自身坐标系来运动,不勾选动画会以世界坐标运动。
动画事件系统
点击红框中按钮可以给动画添加事件系统。其要求如下:
与UI事件系统的函数很类似。点击后效果如下:
会在时间轴上添加一个小长方体可以水平拖动改变其位置,可以在右侧的Inspector中给这个事件系统添加监听函数。可以给物体添加一个脚本里面写一些符合要求的函数,然后就可以添加监听。
除了我们可以在Animation窗口添加以外,还可以在FBX文件本身动画的Inspector窗口添加事件,如下:
这里需要输入我们定义好的函数名称,它将利用反射的方式来调用相应的函数,并传递一个参数进去。注意这些函数都要写在一个脚本里然后挂在物体上。
我们可以利用这些功能实现,例如着陆时播放音效等效果。
Animator
动画控制器,是一个文件,对应组件Animator。
这个组件使用的时候要添加Controller和对应的Avatar。
Apply Root Motion 前面已经介绍过是控制物体播放动画的相对坐标的,但是如果我们的脚本中有OnAnimatorMove回调函数的时候,那么这个属性就不会出现选择框,而是显示被脚本控制。
Update Mode 更改更新模式。
Culling Mode 与动画播放的资源配置有关。
Animator Override Controller
该组件可以继承一个Animator组件然后去复写其中的动画。方便实现Animator的复用。
Animator窗口的使用
进入就会有Any State、Entry、Exit三个按钮,进入会从Entry切换进入一个待机的动画。
在空白处点击右键可以创建
State是单个动画,显示为一个长方形,也可以直接将Animation文件拖入这个窗口创建。
Sub State Machine 动画组,显示为一个两头尖的图形,双击会进入里面如下,它里面也有和其父类一样的按钮,同时父类也显示在里面,可以在其中添加动画和外面一样,双击父类回到之前的界面,注意添加过渡状态的时候指向组的过度状态可以指向组本身,也可以指向组内的某一个动画。若指向组本身实时上是播放组内Entry指向的动画。场景已经存在的动画可以拖入创建的动画组中。
Blend Tree 动画融合组,利用它可以把不同的动画融合播放,比如跑步时腿和手的动作一起。双击后进入如下,在里面点击按钮身上右键可以添加Motion和新的Blend Tree,用参数控制动画该播放哪些。双击空白处退出。
控制跳转的参数类型
Trigger也是Bool类型,但是其被触发后会自动转为False。
创建类型可以如下操作
单击加号创建参数,选择好类型,更改好名称,这个参数可以用来控制动画的跳转,在组件上点击右键,选择Make Transition然后点击到要过度的组件上就会生成一个箭头,单击箭头在Inspector窗口
点击加号选择一个参数,设置触发条件,这里设置的是大于0.1。
然后在脚本中获取Animator组件,设置相应的参数值就可以触发动画的跳转。
如图,设置了speed这个Float类型的参数的数值。这个是来自B站视频。一个极客学院的教学视频。
https://www.bilibili.com/video/BV1TJ411h7cZ