Unity-Timeline基础功能介绍
大智老师的课程笔记
使用插件版本:
- TimeLine:1.2.16
- Cinmachine :2.6.2
- Unity版本:2019.3.2.f1
TimeLine支持多个系统的协作,而Animation 仅支持动画,所以Timeline在制作一段过场动画有天然的优越性。
窗口介绍:
区域播放按钮,选中可以自由选择播放区域
based on clips: 根据动画的最后一帧设置TimeLine长度
Fixed Length: 手动设置长度
默认时间轴显示帧数(frames),也可以选择秒数(Seconds)查看
可调整动画帧数(Frame Rate),TimeLine总持续时间不变,但帧数改变
Actication Track
功能:控制场景中物体的激活
选中一段clip按A键可以直接显示所有完整的Clip
可以添加多个 Activation clip
Post-playback state:决定此TimeLine播放完后,物体的状态(激活或非激活)
同时单独的clip片段也可以在检视窗口做精确调整:
AnimationTrack
功能:对场景中的对象进行动画编辑
默认录制的Animation无法改变长度,可以直接右键—ConvertToClipTrack,转换为一个Clip,即可在 animation窗口中进行操作(支持在窗口中再此进行录制完成更改)
默认创建的Animation Track是无限时间长度
使用导入的动画
将物体直接拖入场景实例化,再拖入轨道,同类型的动画文件拖入即可,需要做位移可以单独再建一条轨道进行编辑。
clip的编辑模式
快捷键:非永久的选中某种模式,可以长按数字键:
- “1”—Mix Mode
- “2”—-Ripple (波纹)Mode :等距离移动,移动一个clip前后距离都会发生改变
- “3”—-Replace Mode:不发生混合,直接覆盖
动画导入的使用全流程
1:素材导入,带位移的动画如何处理
动画素材下载地址:www.mixamocom
材质文件嵌入在这里,需要单独导出
如何使带有位移的动画持续循环:
无论是对原动画选择loop模式,还是在timeline 中使用loop模式,都会遇到动画循环播放完,角色回归原点的问题。
解决这个问题需要去查阅动画系统中的Root Motion相关资料,这里不过多赘述,直接给出操作方法:
1:点击进入模型检视窗口,Animation Type改为Humanoid:
2:Avatar 选择Create From This Model
3:点击进入动画文件视窗,Animation Type同样选择Humanoid,但下方Avatar选择Create From Other Avatar,然后使用刚才模型中创建出来的Avatar
4:重新给场景中的模型的Animator组件赋上Avatar:
5:将动画调为循环状态
搞定!
如何让对象在TImeLIne中在自己想要的位置开始运动,同时两段带运动的动画无缝衔接
1:Track Offsets改为Apply Scene Offsets:
2:两段同样带位移的动画,后面一段记得选Match Offsets To Previous Clip
动画覆盖和Avatar Mask
功能:两段动画融合的问题
1:在一段预定要编辑的Animation Track 上右键 “Add Override Track”
2:选择一段动画放入Overide Track,在指定文件夹Create - Avatar Mask
3:此时我们只想人物上半身执行动画,所以将下半身屏蔽,直接点击绿色区域即可
3:将Avater 添加给Override即可,发现Override上出现了一个小人,点击一下即可禁用
Animation Track和Clip 的设置
- Clip In:决定动画本身素材的播放时间
- Speed Multiplier:动画播放速度
- Animation Extrapolation (动画推断):决定动画播放完后如何表现
- Blend Curves:动画混入混出的曲线
Remove Start Offset:整个动画根据第一帧作为起点
Foot IK:人物行走的时候应用反向动力学,自动调整行走的角度
Loop:是否选择循环(可以选择是否应用动画中的循环)
Aduio Track
- 直接拖动音频文件到轨道(无立体感)
- 拖动音频到轨道,选中一个物体拖到音频上即可
Sterep Pan :声道选项
Spatial Blend:绑定状态下激活,2D &3D 的时间
导入Timeline没声音,记得检查game视窗中是否”MUte Audio”,这样会禁用除了project文件夹中的所有的声音
Control Track
主要功能:控制嵌套的TimeLine和Particle system,也能控制场景内物体的激活(和activation Track)功能类似:
控制TimeLIne物体(Control Playable Directors),将TimeLine直接拖到轨道操作
Control Particle System:控制粒子系统,需要将粒子系统提前在Scene 中固定好位置
Control ITimeControl :接口,需要代码实现
Control Children:是否允许控制子物体
ITime Control实现自定义控制
功能:可轻松实现一些随Timeline播放时间进行
- 新建脚本继承ITimeControl接口,并在场景中实例化,同时拖拽到Control Track轨道中
Signal Track(2019.1后新加入的功能 )
功能:极大的扩展Timeline与场景中物体的交互
运行机制:
在TimeLine 中创建Signal轨道,选中一帧添加信号发射器(signal Emitter)
创建一个Signal Emitter 的资产:
之后将物体拖到轨道对应的signal 标记,之后操作和UI的操作类似,不过多赘述
signal是支持复用的!很方便!
可以通过Markers在全局的轨道上添加标记:
可以绑定物体的Track都可以添加Signal Emitter