A getting started guide for Motion Matching. We cover Character blueprint setup, Motion Matching assets, and how procedural fixup can be used to compensate for low animation coverage. We also discuss debugging a Motion Matching setup along with a number of other tips and tricks.
https://dev.epicgames.com/community/learning/tutorials/lwlG/unreal-engine-your-first-60-minutes-with-motion-matching
Hey, thanks for the awesome tutorial on Motion Matching! The stuff on character blueprints, assets, and procedural fixup was super helpful.
Just wanted to give you a heads up that some of the images in the link aren’t showing up. It’d be great if you could get those fixed, as I’m sure they’d make the tutorial even better.
Thanks again for sharing your knowledge!
Thanks for mentioning this. It should be fixed now.
Thank you very much for the valuable motion matching tutorial. I am a beginner in Blueprint, and I didn’t understand the following part:
- Getting the acceleration of CharacterMovement: How can I call “Character Movement GetCurrentAcceleration” from the image? Please teach me.
Hi,
Thank you for this tutorial, it is incredibly insightful.
I noticed a small wording mistake in the The Motion Matching node step. You wrote: “On the Database input pin, specify PSD_IdleAndStarts as the database.” I believe this is a mistake because the database was called PSD_IdleAndStops.
Additionally, could you explain how you got the node Character Movement.GetCurrentAcceleration
as a single node? I can only get it as two separate nodes: Character Movement
→ Get Current Acceleration
- same question for the later node: Character Movement.Velocity
Hello mate, to get the node look for “Property Access” after right-clicking on the graph.
Once you do this, you’ll have an option to bind this access to any variable (or getter method) in your context, so in this case you look for CharacterMovement variable, which you created earlier, and then its GetCurrentAcceleration method.
Hello People, I have a question about the Character Trajectory Line Debug.
Previously the character Trajectory Data was obtained directly from the character trajectory component in the BP_TP_Character.
With this amazing solution the trajectory are get inside the GeneraTrajectory Function in our animation blueprint class.
But when i Trying used the character Trajectory debugger (Example in the image) the debugging line are not displayed.
This is because the trajectory calculation is inside into the animation blueprint and not in the BP_TP_Character
If you use a.AnimNode.PoseHistory.DebugDrawTrajectory 1 that should give you debug draw for the trajectory data in the pose history node rather than the trajectory component
Thanks. I’ve fixed the typo. To access GetCurrentAcceleration, you just need to add a Property Access node to the graph. From that node, you should be able to get the movement component and call GetCurrentAcceleration.
Thank you for your prompt response. It worked!
Using a.AnimNode.PoseHistory.DebugDrawTrajectory 1
Thanks
Thank you! I was struggling with the exact same part, and your post saved me.
In the area “We’ll need a variable to drive the Stride Scale input” we created variables, but I never saw where they should be connected. So, I “assumed” that displacement speed would be the input to “Locomotion Speed” in the Stride Warping node. This seems to be correct but not sure.
Hello, i Have a Noob Question about Motion Matching. I Found information about implementations methods of motion matching, but i really have confused about the best way to impllement this.
I got that motion matching can be implemented by All Motion in One DB, using state machine to good handle of some additional behaviors and the last thing is using Chooser that it’s the method used in this tutorial.
I know that all of this is according my project requirements, but what is the best implementations for x case?
Somebody can talk back a advice or tips for me.
I’m following the tutorial, but I’m a bit confused about how the UpdateVariables
function should look in the end. Could you please provide more details or a final overview of this function?
As a follow-up question to that:
Is the “Set Speed” part removed, as it looks like it is in the image, or do we add that in before the “Set Interrupt Mode” part?
You need to set Stride Warping’s Speed Locomotion input with “Displacement Speed” variable.
Hi, thanks for this great tutorial.
- I was wondering how jumping and landing should be handled with motion matching. Should we simply cache the motion matching pose and use standard anim states and transitions for land, jump etc. like usual or is there something better we can do?
- Do you recommend enabling Start From Matching Pose in the Sequence Players? My current graph is a mix of motion matching and standard states. Can you explain what it does?
Thanks!