We have pose history nodes used for different things. And I just noticed that for some contexts like bespoke UPoseSearchLibrary::MotionMatch calls, it is possible to specify which pose history node to use. However, for the regular Motion Matching anim node, it doesn’t seem possible and instead uses the GetMessage API to find one.
The problem is that the Pose History node that it finds is not the one I’d want to use for that search.
I’m considering exposing this FName on the node to use a specific one. Do you see issues with this? Also wondering why it was not exposed in the initial implementation.
Hi, we have a lot of people out for UE Fest at the moment. That includes the motion matching team so it’ll take a week or so for us to get back to you on this one.
Just giving an update here that it’s the first day back and some folks have taken an extra day or so. We’ll get you in touch with the right devs as soon as possible.
Apologies for the delays, with vacations and then Epic’s summer break we weren’t able to get you an answer right away.
Talking with the team, it’s “OK” to expose this as an engine fix on your side, but we rely on the Message stack to guarantee that the pose history node has been weighted and updated. If you were to call Motion Match on that Pose History node that you define by name, it may not be updated, leading to unexpected results.
Yea, The message stack is the representation of all of the nodes that have evaluated this frame. So by querying it, you know that you have the correct pose history info. In the case of motion matching this could be extremely important. So in terms of the best way to know if that is the node placed to the right, it would be the best way to go about it, because then you can catch it if it’s not in the stack and do something with that information as well.
In terms of using a tag, yes that would work well. That is the approach we took on a node in FN.
Hi Euan, just wanted to follow up on this. I did end up exposing the pose history node name on the MM node. It’s working, we do get some annoying errors because our locomotion ABP does not have the pose history node, we have it on another ABP (locomotion is a linked graph in it). Just thought I’d let you know in case such a set up can have a bit better support.
It’d still be good knowing what the team thinks about this change. Thanks!
If it’s not exposed, then nothing guarantees that the motion matching node will pick the correct pose history. Assuming you have multiple pose history nodes. Would there be a way to both use the message stack and filter by tag?
Could you elaborate more on how the message stack guarantees pose history is weighed and updated? Is it enough to know that the target pose history node is placed to the right of my motion matching node?