Download

make animGraph "preprocessing" (custom motion matching system)

Hey all, now I’m working on a animations synchronization system (like motion matching from Ubisoft).
https://www.youtube.com/watch?v=pSIqyG7jMkA&feature=youtu.be
The main thing of my system it’s getting weights of all animations from animation curves (all anims has unic “constant” curve, value = 1). Animation who has maximum curve value - is a leader anim, and for it all others anims are synchronized by foots bone position of leader animation.
But i have a problem: for optimization purposes i dont calculate goal time for fallower anims if his weights = 0. but if in next frame this curve value be > 0, skeleton has little bit shaking for one frame (because the “true” weight of anim in animGraph is > 0, but anim curve value of same anim still = 0, and this fallower animation has wrong goal time. (because anim curves calculated after animGraph evaluation)).
I need to “predict” animCurves values before animGraph is completely updated.
Similar situation in foot slide compensation system, this works with 1 frame lag, because i cant predict bone transforms and correct positions instantly…
Any ideas? How possible get new curves, transforms before animGraph is updated, and use this data to make “correctives” in final animGraph condition? I think I will need to create custom AnimInstance in c++, but I’m not a programmer:(. All logic i created in blueprints.

i found the great info about anim system Mapping Out The UE4 Animation Architecture Flow · GitHub

Sorry for my English.

I’m quite interested in motion matching. If you need help with implementation, contact with me via PM.

As I learned from YuriNK, curves only calculated in animGraph, and i cant do anything with curves. So far, I left this case for later, and I continue to develop the logic of animGraph.
https://www.youtube.com/watch?v=EYLX3RCU-S4

but another problem does not give me rest, my foot slide compensation system works with 1 frame lag. (i get foot bone location in animBP in world space, and accumulate the difference between newest and prevlous frame, when leg stay on floor. But as with curves, i cant get bone location from future animGraph condition. I tried use AniminstanceProxy Evaluate tick event, but it also called after animGraph evaluation. Aslo i tried use Sub animInstance, but it didnt help. Anybody knows how get future bone transforms in animBP? without this feature character foots are shaking :frowning: