Anim Curve not active in some sequences?

Hello,


I’ve taken the Paragon assets and started reconstructing the root motion using an AnimModifier, I got the curves on the sequences - all looks good.



However, when trying to then read those curves in a blueprint as a test it only provides a value on one AnimSequence Jog Fwd, I think this is the 1st one I ran the modifier on.


When displaying which curves are active my new curves are only active on one sequence.
What’s stranger still is the existing Paragon curves are active.



Anyone have any ideas? It doesn’t seem to be related to the values, I tried with the 180 which has positive and negative values, the values are ~300 so it’s not like they got compressed to 0 or anything.
I think it must be something to do with the adding of the curve.

Jog_Fwd - RootVelocity_Z Curve active when playing


Jog_Fwd_Pivot_180 - RootVelocity_Z Curve not Active when playing


Adding the curve


Side notes, I'll use a Vector curve when doing this in code, but they aren't visualised on the anim editor and there's not a get when querying in blueprint. - I actually write to a vector curve, then read it and write as 3 float curves.

I added a blueprint call to FinalizeBoneAnimation and that seems to have fixed everything.

Having a look at the code, it kind of makes sense, but I’m not quite sure why my curves came through on a couple of the animations.

UAnimationBlueprintLibrary::AddCurveKeysInternal
Calls
AnimationSequence->BakeTrackCurvesToRawAnimation();

This fails
if (!DoesContainTransformCurves())
{
if (SourceRawAnimationData.Num() > 0)
on the SourceRawAnimationData.Num() condition
So PostProcessSequence never gets called

I think this means the curve data never makes it in to the animation used when playing.
FinalizeBoneAnimation just calls AnimationSequence::PostProcessSequence