文章目录
一.什么是Timeline
1.资源整合工具。
2.可以给不同的对象建立不同类型的轨道。
3.每个轨道可以单独编辑,轨道内的不同资源可以有序排列,并且可以融合。
二.Timeline基本介绍
四元素
The Track,THE Clip,Behavior/The Data,The Mixer

1.The Track 轨道
2.The Clip 片段
3.Behavior/The Data 行为代码
4.Mixer 通道混合器
轨道:
基础轨道:
激活轨道,动画轨道,音乐轨道,轨道分组.
高级使用:
signal轨道,Playable轨道.

相应的快捷建:
1.Ctrl+鼠标中键:timline轨道高度缩放放大。
2.鼠标中键:timeline轨道长度进行缩放。
3.对应片段+F:将整个TimeLine放大,将焦点聚焦到Clip这个焦点上。
4.选中对应轨道+L:将当前轨道锁定。
Timeline安装和Debug:
搜索Timeline更新升级成最新版:
Unity—>Package Manager—>Unity Registry—>TimeLine
当你拖拽时间轴出现报错,Timeline处在Preview模式下,他会运行Timeline中很多程序,但是你很多东西都还没有获得引用,只要在运行情况下没有问题就好。
0.轨道分组(TrackGroup)
将多个轨道划归到同一组内方便管理。
1.激活轨道(Activation Track)
Visibilty :一个Track只能控制一个对象的激活与否。
轨道属性:Post-Playbackstate:
Active:设置为激活的(active=true),当Timeline资源播放完后。
Inactive:播放Timeline完后,设置为非激活(active=false)。
Revert:在Timeline播放完后,GameObject.active=播放前的GameObject.active的去反值。
Leave As Is:设置active的状态是依赖Timeline资源播放完后active的值是什么就保持为什么。
2.声音轨道(Audio Track)
声音控制:控制声音.
轨道属性:需要绑定一个AudioSource(对应空间中带声音组件的GameObject)(可以不绑定也能播放声音)。
Inspector面板属性.
Volume:音量大小
Stereo Pan:左右声道
Spatial Blend: 3D声音。
3.动画轨道(Animation Track)
动画控制:控制对应对象的动画播放.
轨道属性:骨骼绑定??
动画导入方式:
1.事先做好的动画。 Animation Clip (有限动画)
2.轨道上直接K动画(KeyFrame Animation)帧动画。Infinite Clip(无限动画)
K动画小技巧:
1.快速添加关键帧.

2.取消当前位置关键帧。

3.双击轨道可以跳转到Animation窗口上进行精细动画控制。
4.可以将k动画右键变成(AnimationClip)有限的片段。
当前轨道—>Convert to Clip Track

4.信号轨道(Signal Track)
轨道作用:建立TimeLine窗口与外部系统的沟通渠道。

发射器和接收器解耦,重用使用.
这里使用信号的名称而不是事件的名称,是因为信号有广播的特点,也不和Animation中的Event混合。
使用三要素:
Signal Asset 信号资源:
Link Emitter和Receiver,作为他的桥梁。
信号资源是发射器和接收器之间的联系,可以在多个Timeline实例中复用。


Signal Emitter 信号发射器:
我需要在时间轴上的某一个点,哪一个点去进行脚本的处理回调,这个点就是信号发射器。
在时间轴上的某个点设置信号发射器选择对应的信号资源。

Signal Receiver 信号接收器:
我们希望去调用,回调的方法。
5.自定义轨道(Track Asset)
自定义轨道通过继承对应基类来实现,一共由四部分组成:
(1)轨道类继承TrackAsset
用于在timeline中创建一个自定义轨道,类名就是轨道名称。
(2)片段类(Clip)继承PlayableAsset
用于在自定义轨道内创建Clip,类名就是Clip名称。可通过Project->Create->Playables->Playable Asset C# Script创建
(3)当前片段生命周期继承PlayableBehaviour
自定义Clip的生命周期代码,包含进入,离开,每帧等等。可通过Project->Create->Playables->Playable Behaviour C# Script创建
(4)片段间混合处理继承PlayableBehaviour
自定义Clip间混合处理的代码


1.TrackAsset基类
创建一个自定义轨道
创建一个类,让这个类继承UnityEngine.Timeline.TrackAsset.
(1)常用的三个特性
TrackColor(r,g,b) 确定当前轨道颜色
TrackClipType(TypeOf(PlayableAsset)) 确定当前轨道显示颜色
TrackBindingType(Typeof(Component)) 确定当前轨道需要绑定的组件(轨道内需要改变哪个组件的参数)

写法较为固定
2.PlayableAsset基类
创建一个自定义Clip(片段)
创建一个类,让这个类继承UnityEngine.Timeline.PlayableAsset基类
通常还会继承ITimelineClipAsset,具体写法如下

会将系统自定义的属性添加到Inspector窗口

**写法较为固定**
3.PlayableBehaviour基类
自定义当前片段生命周期以及处理片段间混合时的情况。
可通过Project->Create->Playables->Playable Behaviour C# Script创建
看官方的Timeline插件都是将片段生命周期和片段间混合分成两个脚本来写。
具体常用的生命周期函数有:

PrepareFrame:类似mono中的Update方法:每一帧进行调用(Clip上的每一帧)
官方的文档台敷衍了。具体写法可以自行摸索
三.文档说明与官方插件
本文档所有内容皆是来自Unity官方Timeline教程,这里只是对视频内容进行整理方便自己查阅
https://www.bilibili.com/video/BV1gt4y1Y7LY?from=search&seid=2133946192700047914
TimeLine具有非常强大的扩展性(Flexible),其中官方就有对应的插件内容
Default Playables 常用的自定义轨道插件。
可以参考其代码


重要的参考资料 Unity内部制作timeline的工程师写的
https://mp.weixin.qq.com/s?__biz=MzU5MjQ1NTEwOA==&mid=2247493316&idx=1&sn=7e4fef834a8066faca3d2f1f1a090bb4&chksm=fe1dd26fc96a5b79856840f556cf65026facb83520ac1891605e42d5e777d30a0d5219060e21&mpshare=1&scene=1&srcid=0606YJLYnfprk9UjpPQCnre1#rd
四.快速创建自定义轨道编辑器
需要安装插件
https://docs.unity3d.com/es/2019.4/Manual/com.unity.playablegraph-visualizer.html


填好后会自动生成Timeline四元素对应的代码。
这篇博客详细介绍了Unity的Timeline功能,包括Timeline的基本概念,如轨道、片段、行为和混合器,以及各种类型的轨道如激活、声音、动画和信号轨道的使用。此外,还涉及了自定义轨道的创建,包括TrackAsset、PlayableAsset和PlayableBehaviour的继承使用,以及如何创建自定义轨道编辑器。最后,提供了官方文档和插件资源链接以供深入学习。
4949

被折叠的 条评论
为什么被折叠?



