Check it out on the Asset Store
Download the Standalone Demo
Motion Matching for Unity (MxM) is an alternative animation system to mecanim for characters. With motion matching you can achieve advanced, organic and fluid animation without the need for an animation state machine. You don’t have to define transitions or set up conditions. Provided you have decent animations with enough coverage you can create a fully working character in about 15 minutes with starts, stops, plants and turns. With a little more effort and coding ability, its not hard to make very complex animation such as parkour, fighting and sports.
How Does It Work?
Motion matching is a relatively new animation technique that is not constrained by the concept of animation clips, states, pre-defined blends or transitions. Motion Matching allows animation to flow freely through your entire animation set, jumping to any pose at any time. Animation poses are chosen based on both the current pose and the desired gameplay input*. Whatever matches the pose and your desired input the best gets chosen and is rapidly blended in. By balancing the pose and the desired input, motion maching is able to achieve high fidelity animation while still achieving good input response**.
Industry Use:
Motion matching as a technique was originally developed about 2 years ago by Ubisoft for the game ‘For Honor’. It has since been used in several EA and Ubisoft games and is even being used in ‘The Last of Us Part 2’ by Naughty dog. As you can see, the technique of motion matching is not novel and has significant AAA application. (I am not affiliated with any of the above mentioned companies or games)
Trailer
Introduction & Overview
Introduction & Overview
Motion Matching with Raw Mocap (alpha footage)
Note: This is raw mocap placed on a generic rig. The weird hands and arms are a retargetting issue and has nothing to do with MxM.
Performance:
Motion matching for Unity uses the cutting edge of Unity development to achieve solid performance while still being stable. It uses Unity’s Job system, SIMD mathematics library and burst compiler, to achieve lightning fast, multi-threaded performance.
This video, which is already out of date, shows a performance benchmark on an i5 4 core system running motion matched characters above 60fps without LOD or infrequent updates.
Features:
Motion matching for Unity is not just a locomotion machine. It supports a number of features that allow the user to create almost any kind of animation. Features include:
- No animation state machine
- Fluid and responsive animation output**
- Support for cut clips as well as un-cut mocap
- Powerful event system for dynamic actions (e.g. vaults, sword attacks, pacour)
- Powerful tagging system to allow control over animations (e.g. stances etc.)
- Motion timing editor (change animation timing to match gameplay)
- Animation warping for event (precise environment contacts
- Layer system
- Use alongside mecanim (switch at any time)
- Compatible with custom animation playable graphs
- Compatible with IK systems
Useful Links
- Asset Store Page
- Unity Connect
- Project Roadmap
- Discord (for support)
- User Manual
- Quick Start Guide
- FAQ
- Tutorial Videos
*MxM needs gameplay code to tell it what to do. You have to write the gameplay code to do that. MxM is an animation system, not a gameplay system.
**responsiveness and fidelity of the resultant animation is dependent on the quality, responsiveness and coverage of your source animations. Watch this video for more detail.