[UE4] 通过c++给AnimSequence添加FloatCurve
标签(空格分隔): UE4 unrealengine 虚幻引擎
因为项目需要,要在动画中记录很多跟动画相关的数据,UE4只能在动画编辑器界面手动给动画添加曲线,手动添加即不准确也太累了
所以写了个插件在Editor模式下提取动画数据进行计算(比如动画每一帧某个骨骼节点速度,如果在运行时处理的话太浪费性能了)然后把结果存在动画的曲线中,这样运行时直接去当前动画的曲线中取就行了,节省性能又方便
UE4支持FloatCurve 和 VectorCurve 下面写的是如何添加 FloatCurve 添加VectorCurve的流程基本一样
相关的API:
FloatCurve存在 AnimSequenceBase中的RawCurveData (类型:FRawCurveTracks)
struct FRawCurveTracks
{
...
TArray<FFloatCurve> FloatCurves //动画中带有的FloatCurve
/**
* 根据提供的UID创建新的曲线,如果创建成功则返回true
* 如果bVectorInterpCurve == true, 则创建FVectorCuve, 否则创建的曲线是FFloatCurve
*/
ENGINE_API bool AddCurveData(USkeleton::Anim