简介: 工作中需要对已经有的animationclip进行一些优化操作
unity版本: 2022.3.14
管线:URP
AnimationClip 类
包含了动画数据,和一些基础的设置信息,能对动画做的修改基本就是两个方法,一个是 SetCurve 和 ClearCurve,离我实际需要的修改还差不少
AnimationUtility 类
动画工具类。它可以通过 AnimationUtility.GetCurveBindings(), 方法来获取一个clip中每一行的 binding,可以简单理解为一个索引。
binding 有一个 path 属性,是可以修改的,这个 path 就是这个binding 对应的一个动画路径,修改这个值然后重新设置曲线便可以生成新的一行动画数据
binding 还有一个 propertyName 属性,对应具体的动画属性,例如 postiong.x 对应位移的x数据
所以一般会存在多个 binding 拥有相同的 path 毕竟一个物体会有多个动画属性,例如 旋转、缩放、位移,每个属性又可能包含多个分量,例如 x y z
然后通过 AnimationUtility.GetEditorCurve(clip, binding) 便可以获得每一个binding对应的 动画曲线,然后便可以对曲线进行编辑
编辑完成后,可以使用 AnimationUtility.SetEditorCurve(clip, binding, curve); 将修改结果保存到传入的 binding 对应的那一行
AnimationUtility.SetEditorCurve(clip, binding,null); 可以清除掉binding对应的那一行数据
AnimationUtility.SetEditorCurve(clip, binding, curve); 如果curve不是null,且 clip 中没有 对应的 binding 路径,则会新增
网友评论