在制作demo过程中 经常遇到所有动作在一长段Anim里面 需要自己根据帧数来进行复制文件然后打开进行切割
步骤繁琐 挺费时间
既然引擎本身有这样的功能存在 那么我们也能做到一键操作 so~~~~干就完了
先来一个编辑器扩展工具蓝图
继承自AssetActionUtility
重载方法
让其支持资源类型位动画资源
打开蓝图 创建一个Clip方法 添加传入参数
这个参数是一个数据表 就是用来配置我们切割的动画分片及所在动画帧了
新建一个结构体 作为分片数据
每个动画进行切割的时候创建一个对应的数据表 传给clip方法就可以了
接下来就是Clip方法的实现了
动画文件拷贝部分
先做拷贝部分(本来应该线性连下去的 这里为了方便截图所以使用序列)
到上面这一步 已经实现了根据数据表格来拷贝出多个动画片段文件了
现在我们需要在拷贝后进行动画裁切就可以了
动画裁切部分
首先新建一个C++类 继承自BlueprintFunctionLibrary
新建一个供蓝图调用的裁剪方法
实现裁切方法(这里注意取frametime的时候我们进行了-1操作 因为key帧为2的时候 其实动画时间只有1到2的过渡时间 所以这里需要-1,另外这里我们先调用了裁剪动画后段 ,再裁剪前段,因为先裁剪前段的话后面的动画会进行前移,第二步裁剪就需要重新计算起始时间了)
编译后 在拷贝动画片段文件后面进行裁剪的调用
到这里整个动画批量裁剪就完成了