When we create curves on additive animations, we are creating a curve based on whether the curve exists in either the base or additive pose. This wouldn't be the expected behaviour for a user when creating an additive that uses another animation as a base. In that case, if the base animation contains a curve that the additive doesn't, the expectation would be that the additive also won't have the curve. The current behavior can leave additive animations with curves that have unexpected negative values (ie. 0 - base curve value). The code responsible in 5.3 is:
UE::Anim::FNamedValueArrayUtils::Union(*this, BaseCurve, [](ElementType& InOutThisElement, const OtherElementType& InBaseCurveElement, UE::Anim::ENamedValueUnionFlags InFlags) { InOutThisElement.Value -= InBaseCurveElement.Value; InOutThisElement.Flags |= InBaseCurveElement.Flags; });
This isn't a result of the curve refactor, we have the same behaviour in 5.2 where we create a curve when either the base or the additive have the curve
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-187273 in the post.
1 |
Component | UE - Anim - Runtime |
---|---|
Target Fix | 5.3 |
Created | May 29, 2023 |
---|---|
Resolved | Aug 1, 2023 |
Updated | Aug 7, 2023 |