AlayaElla

主要写写游戏制作方面的文章

【TimeLine】Unity使用Timeline制作过场动画效果

1 前言:

Timeline是unity2017的新功能,可以在一个时间线上控制场景中各个物体的状态。
用来制作过场动画会都非常方便。
在出Timeline之前制作复杂的过场动画可能很麻烦,需要动画、程序相互配合才能调出好的效果。
并且做好了之后要调整可能也很费时间。
而用TimeLine的过基本可以脱离程序配合,直接策划来摆就行了。自由度和方便性都大大提高了。

1.1 Timeline示例:

下面是在《超能小特工糖糖》使用Timeline做的过场动画,因为TimeLine的方便性,在《超能小特工糖糖》游戏中,每个游戏结束都只做了过场动画。
让游戏的表现提高了很多~

2.Timeline界面说明:

2.1 创建Timeline:

创建一个空物体,然后选择Windows->Timeline即可调出Timeline面板。

然后,可以看到下图这样。点击Create来创建Timeline。(会在指定位置生成playable文件。)

可以下看到下图Timeline操作界面了。

2.2 创建轨道:


PS:也可以点击Add来创建轨道,不过Add创建轨道之后,需要在选择一次需要轨道控制的游戏物体。

2.3 各种轨道的功能介绍:

2.3.1 Activation Track(控制物体显示隐藏)


创建Activation Clip之后可以在轨道中看见,也可以拖动改变Clip的长度。
Activation Clip可以控制物体的显示与隐藏,当在Timeline播放过程中,如果处于片段内部,则该物体显示,否则该物体隐藏。

当我们点击该轨道时,会在Inspector面板中看到可以设置的属性,如下所示:

* Active(当Timeline播放结束时,将该物体设置为显示状态)
* Inactive(当Timeline播放结束时,将该物体设置为隐藏状态)
* Revert(当Timeline播放结束时,将该物体还原Timeline在第1帧时的状态)
* Leave As Is(当Timeline播放结束时,将该物体保持在Timeline最后一帧的状态)

效果:

2.3.2 Animation Track(录制物体的动画)



Aniamation Track可以制作物体的动画,来控制物体移动、旋转、缩放。或者是图片的透明的等等。
动画制作方式和animator动画的功能几乎是一样的,只是不能控制物体的显示。要控制显示的话只能使用Activation Track来控制
也可以在轨道中添加制作好的animation来播放。(不过添加的animation一定要是这个轨道所控制的物体的动画才行,不然播放是没有效果的。。)
PS:下面这个添加动画的方法,不建议用,因为可能会和场景中的animator冲突,所以最好直接在Timeline中录制动画。

添加好的样子。

效果:

2.3.3 AudioTrack(控制声音播放)


创建好是这个样子,可以在轨道中拖动创建好的clip来,来调整播放声音的时间。

点击创建好的Clip可以在inspector面板中调整是否循环播放、淡入淡出之类的效果。

音效的多语言适配:
不过一个Audio Clip只能控制固定的一个音效播放,在遇到多语言时就没办法适配了。
因此在我们项目组中分做了一个专用的音效播放的组件——LB Audio Event Track。(还是感谢川川兄)
LB Audio Event Track是根据音效配置表的key来选择播放对应的音效的,因此解决了音效多语言的问题。
LB Audio Event Track使用如下:


点击创建好的Clip,在inspector面板的Audio Key中写入音效的key值即可。
在Timeline轨道中拖动这个Clip同样可以调整音效的播放时间。

2.3.3 Spine Animation State Track(控制spine动画播放)



点击创建好的Clip,在inspector面板设置spine动画文件,和spine动画文件中的动画名。
如果要动画循环的话,则把“loop”勾上。

spine动画文件一定是刚刚拖进timeline中的那个,如果选择其他的动画文件的话,动画是不会播放的。
如果要控制多个spine的话,需要创建多个Spine Animation State Track。
效果:

2.4 Timeline操作的一些小技巧:

2.4.1 复制轨道中的Clip

2.4.2 分组

如果创建的轨道多了,可能看起来会很乱,这时可以使用Track Group来把轨道分组。
Track GroupAdd中创建。
Track Group可以单独命名。

2.4.3 Clip命名

轨道中Clip的名字改可以随意更改,如下图。

要改名字的话,只需要点击Clip,在inspector面板中修改即可。

点赞
  1. 老李说道:

    博主,想了解下LB Audio Event Track的用法,能发一份给我么?我现在想扩展AudioTrack的需求,不想重写AudioTrack的功能

    1. AlayaElla说道:

      可以的,因为包含的文件有点多所以我打包给你吧。
      其实主要就EventTrackClip和LBAudioEvent这两个。
      http://www.alaya.moe/wp-content/uploads/2019/04/TimeLineAudio.zip

      1. 老李说道:

        博主,我看了你发给我的源文件,我有两个问题一直困扰着我,博主是否可以帮我解答:
        1.unity自带的AudioTrack,在audioSource没被赋值的时候,也可以播放音频,运行时也是可以播放音频的.
        2.是否可以获取TimeLine中的时间指针的方法,比如指针是否移动,是否按下.或者说有没有在TimeLine窗口中获取鼠标按下松开的方法,我想模拟原生的AudioTrack中的功能,点击TimeLine播放,拖拽时间指针,可以设置音频播放进度.

  2. ookumioo说道:

    多谢博主分享,请问spine 各类Track是Unity Timeline自带的吗?可以介绍下Spine其他Track的功能和用法吗?还有如果Spine的Clip之间过渡不平滑怎么办呢。

    1. AlayaElla说道:

      你好,我们spine的track是unity spine插件包中timeline插件提供的。
      如果你们也是用unity的spine插件的话应该也找到的。

      另外一个问题,你可以在unity导出的spine文件中调节混合参数。
      像下面这样。

      而且timeline的track中也可以调节,像下面这样。

      1. ookumioo说道:

        :rolleyes: 多谢解答~

  3. loose说道:

    :razz: :rolleyes: 厉害。

发表评论

电子邮件地址不会被公开。 必填项已用*标注