在添加轨道或者Clip后切勿修改类名称,否则所有拥有该轨道或者Clip的资产失效!
https://www.bilibili.com/video/BV1LD421s7Dn/?spm_id_from=333.788
通过右键Create、AETimeline编辑器、AETimelineAssets创建资产。
通过菜单项Tools、AETimeline编辑器打开编辑器窗口。
如图中左边ObjectField是AETimelineAssets附加到的对象,右边选择AETimelineAssets资产。
通过右键创建轨道与Clip项,如图所示,右键轨道头部分空白处,弹出上下文菜单,选择对应轨道创建。
同理右键轨道头部,弹出上下文菜单,删除右键的轨道。
右键轨道体空白处,在对应轨道体中添加Clip项。
操作Clip的快捷键有下面几种:
Ctrl+C:复制对应Clip
Ctrl+V:粘贴复制的Clip到鼠标位置
Ctrl+X:剪切对应Clip
Delete:删除对应Clip
用鼠标拖动Clip可以改变Clip起始位置。
将鼠标放在Clip的尾部,鼠标显示为Resize样式的时候,可以拖动改变Clip大小。
鼠标中键在轨道右侧部分,可拖动轨道左右移动。
(AEAnimationTrack)
自定义轨道需要继承自标准轨道StandardTrack,自定义Clip需要继承自StandardClip,我们用特性AEBindClip将这两个类联系到一起。
继承自StandardTrack的类,会自动加入创建轨道上下文菜单中。
注意,在编写Clip类的时候,一定要将Clip类编写为单独文件,且文件名称与类名一致
下面这些特性是编写自定义轨道的时候必须要写的:
AETrackName:用来描述轨道名称的特性
AETrackColor:用来描述轨道颜色的特性
AEBindClip:用来描述轨道的对应Clip类型的特性
Serializable:用来标记为可序列化的特性
(AEAnimationTrack、CustomAnimationClip)
当用户需要自定义Clip的样式的时候可以使用AEClipStyleAttribute特性,这个特性用来描述编写了自定义Clip样式函数的类。
其中ClassName一定要写全(Type.fullName),OverrideUI决定是覆盖原来的UI,还是在原来的UI基础上继续绘制。
使用时,传入自定义样式函数的类名。例如:AEAnimationTrack在CustomAnimationClip类中编写了自定义Clip样式的函数。于是我们传入了AE_SkillEditor_Plus.Excample.BuiltTracks.CustomAnimationClip作为ClassName。
注意,用户编写的其他自定义Clip样式的函数,一定要是静态函数,并且参数和CustomAnimationClip.UpdateUI一模一样。
否则会报错,且自定义函数不生效。
自定义的样式类一定要放在Editor下。
(AEAnimationEditorBehaviour)
需要Track类继承 IEditorBehaviour, IRuntimeBehaviour,并且分别实现CreateEditorBehaviour和CreateRuntimeBehaviour方法,返回对应AEPlayableBehaviour。
AEPlayableBehaviour中有生命周期函数:OnEnter、Tick、OnExit,供用户自定义Clip的行为。
要注意的是,子类重写OnEnter、OnExit方法一定要调用基类的对应方法。
我们在构造函数中拿到对应的Clip并且保存下来,在生命周期函数中就可以得到对应的Clip了。
例如:在AEAnimationEditorBehaviour中我们在构造函数中拿到了AEAnimationClip,在当前Clip的运行时间内,每一帧都都会调用Tick,我们在Tick中使用SampleAnimation来播放每一帧。
要在Runtime下运行对应轨道,一定要实现IRuntimeBehaviour接口。具体的AEPlayableBehaviour实现在上面已经讲过了。
AETimelineTick是运行时的驱动器,我们要播放一个资产需要调用AETimelineTick.PlayAsset,传入对应的资产。
并且在Update函数中更新驱动器。
在动画轨道中,Clip超出原本动画范围后,有一个红色的分界线表示动画的结束位置。这些是使用自定义Clip样式实现的,也就是上面提到的AEClipStyleAttribute。当刚刚好的时候分界线是绿色的。
为了在编辑器模式下使得多段动画的位移正常,使用了StartPosition记录本段Clip开始的位置。
在播放到上一个动画末尾时,选中人物的Position,我们用Ctrl+C复制对应人物的Position,再回到Clip面板选中StartPositon,Ctrl+V,就可以粘贴对应位置。
特效轨道和声效轨道没有什么好讲的,正常使用即可。
注意,如果声效没有音量注意看Volume参数是否为0
特效轨道中注意Follow参数勾上后,特效会和gameObject保持Position的相对距离。