Hi,
I am trying to use a blendspace with motion matching and when trying to add my blendspace to my pose search database, it mentioned that “Should Match Sync Phases” should be enabled in my blendspace. I did so and also made sure that marker order and count matches in my blendspace samples. Motion matching works but the blendspace plays in-place.
I investigated this issue a bit myself and I noticed that even if I play the blendspace without motion matching, it plays in-place if “Should Match Sync Phases” is set to true, but it plays fine if I disable it. I looked in the code a bit and noticed that there’s a bit in UBlendSpace::TickAssetPlayer that calls UBlendSpace::ResetBlendSamples:
Inside UBlendSpace::ResetBlendSamples, both LeaderSampleData.Time and LeaderSampleData.PreviousTime are set to the same value and it stays the same when you exit ResetBlendSamples:
After that bHasDeltaTime is set to true because NormalizedCurrentTime and NormalizedPreviousTime have different values, but CurrentSampleDataTime and PrevSampleDataTime end up having the same value because SampleEntry.Time and SampleEntry.PreviousTime share the same value after aforementioned ResetBlendSamples call:
This causes DeltaTimePosition to be set to 0, and even though bHasDeltaTime is true, ExtractRootMotion is called with 0 DeltaTime, so it doesn’t update RootMotionParams and the blendspace plays in-place:
One final thing to mention is that this issue happens even if I add a single sample to my blendspace. Do you know what might be going on here?
Thanks,
Maryam








