Timeline是Unity2017版本中新加入的功能,可以非常方便的对场景资源进行修改、整合,包括物体、声音、粒子、动画、特效、自定义Playable以及子Timeline。该功能非常适合玩法推演,过场动画,游戏中的影视化语言和预告片的制作。
Timeline目前已经能够与Cinemachine、Post Processing Stack完美的结合,来满足更高级的画面、运镜需求。
1.创建自己的第一个Timeline文件
1.1 在project窗口,右键->Create->Timeline 创建Timeline文件。Timeline文件以.playable为后缀。
1.2 需要将Timeline拖动到场景中的节点上,才可以对Timeline文件进行播放、编辑等操作。将Timeline拖动到某个节点上,则该节点会自动添加Playable Director组件,该组件的Playable保存了对Timeline文件的引用。
2.认识Timeline视窗
【Timeline视窗】是主要的编辑Timeline的地方,基于时间轴的多轨道式编辑方式。Timeline由多段平行的轨道组成,每个轨道都是创作内容的基础。每个轨道上都有各种片段,不同片段之间可以进行混合。
3.编辑器自带的轨道类型
点击【Timeline视窗】上的Add按钮可以添加新的轨道,编辑器自带了以下6中轨道(Unity2018.4.0)
Activation Track(控制物体的显示和隐藏)
Animation Track(为物体加入动画,可以在场景中方便地录制动画,也可以是已经制作好的Animation Clip)
Audio Track(为动画添加音效,并可对音效进行简单的裁剪和操作)
Control Track(在该轨道上可以添加粒子效果,同时也可以添加子Timeline进行嵌套)
Playable Track(在该轨道中用户可以添加自定义的播放功能)
Track Group(将不同的轨道进行分类,相当于文件夹功能)
4.官方提供Playable模板
Assets Store上资源包Default Playables集合了官方提供的一些Playable模板,程序同学可以以这些详细的案例为参考,自定义自身项目需要的Playable。
5.自定义Playable(轨道)
将Default Playables资源包导入我们工程后,可看到TextSwitcherTrack的实现代码主要由以下5个文件组成(文件名后缀非固定,建议按照以下规则)。
xxxTrack(轨道类,主要指定了轨道片段类、轨道关联对象类型、指定并创建轨道逻辑类)
xxxMixerBehaviour(轨道逻辑类,可同时对轨道中的所有片段进行操作)
xxxClip(片段类,指定并创建片段逻辑类,指定片段的覆盖方式)
xxxBehaviour(片段逻辑类,定义各片段的参数与逻辑)
Editor/xxxDrawer(片段的视窗绘制类)
程序若想在轨道逻辑类或者片段逻辑类中对Timeline进行播放、暂停、设置时间等操作,可通过轨道类将PlayableDirector对象传递到逻辑类中。可参考VideoScript模板。
public class VideoScriptPlayableTrack : TrackAsset
{
public override Playable CreateTrackMixer(PlayableGraph graph, GameObject go, int
inputCount)
{
PlayableDirector playableDirector = go.GetComponent<PlayableDirector>();
ScriptPlayable<VideoSchedulerPlayableBehaviour> playable =
ScriptPlayable<VideoSchedulerPlayableBehaviour>.Create(graph, inputCount);
VideoSchedulerPlayableBehaviour videoSchedulerPlayableBehaviour =
playable.GetBehaviour();
if (videoSchedulerPlayableBehaviour != null)
{
videoSchedulerPlayableBehaviour.director = playableDirector;
videoSchedulerPlayableBehaviour.clips = GetClips();
}
return playable;
}
}