使用AnimationRecorder
安装了outline后,在creator资源面板中将会出现一个outline-components目录。该目录下有两个个文件,如下图:
-
要为某个节点录制动画时,首先用creator自带的Animation组件将动画剪辑编辑好,接着将AnimationRecorder直接拖至这个节点的面板中,拖放结果如下图:
AnimationRecorder组件在属性面板上基本与Animation组件一致,并且理论上可以替代后者。不过可能是cocos creator的bug,动画编辑器必须要在选中的节点上添加Animation组件才能启动。因此最好先用Animation组件将动画剪辑编辑好,然后再用AnimationRecorder导出。
- 上图中的Clips属性用来设置需要导出的动画剪辑,将剪辑引用到Clips的0索引即可,注意AnimationRecorder每次运行只能导出一个动画剪辑,所以多设剪辑是不会导出的
- 上图中的Namespace属性用来设置导出动画对象所挂载全局表的表名,它的概念与ExportRule中的Namespace属性一致
- 上图中的needRecord属性用来标记运行时这个AnimationRecorder实例需不需要导出动画,当需要导出时,将它设为true
- 上图中的dstPath属性用来标记导出文件的路径和文件名
创作动画
创作动画的过程和正常在creator上创作动画并无二样,需要注意的是,目前只支持针对节点基本属性的动画,如坐标、缩放、颜色、精灵帧等,虽然creator还支持很多控件属性,但是后者并不实用
坐标曲线动画以及时间曲线都是支持的
导出动画
动画编辑并保存好,设置好AnimationRecorder组件,将creator项目在浏览器中运行,即可导出动画文件。
使用动画
-
导入依赖
可以参考《outline-导出节点》一文中的导出有依赖文件部分 -
导入动画文件
把out目录中的导出的动画lua文件复制到项目的合适位置,需要用到的时候require即可。例如:
require("creator.clips.clip_jump")
-
播放动画
假如AnimationRecorder中Namespace设为Anims,要播放的动画剪辑名为clip_jump,那么可以通过如下代码创建一个动画实例:
local anim=Anims.Clip_jump:create()
假如需要播放动画的节点为sheep,那么如下代码将会开始播放动画:
anim:play(sheep)
动画接口
下文中,Anim表示某个动画实例。
-
Anim:play(Node node,bool loop,function callback,string key)
开始播放动画。参数node为执行动画的节点,需要注意的是,当node的子节点也参与动画时,方法内部将会通过创建动画时在creator编辑器中的节点层级关系和节点名来寻找相关的子节点。loop为是否会循环播放动画。callback为一次动画播放完后的回调。key为动画标志,如果设置了,将会作为参数传给回调函数。 -
Anim:pause()
暂停动画 -
Anim:resume()
被暂停后恢复播放 -
Anim:stop()
停止动画并释放动画实例