Motion Matching for Unity

The only production ready motion matching system publicly available.


**Most 3D models shown in trailers are not included in the package.**



Standalone Demos - Download the 'Standalone Gameplay Demo' to try out a character made with MxM (not included in package). Download the 'Standalone Stress Test' demo to see how MxM stacks up in performance.



Included Demo Scene - The Demo Scene included with MxM includes a player controlled Robot Kyle with the ability to run around and perform some parkour vaults. The vault system shown here is for demonstration of MxM event features ONLY and is not intended to be a production ready vault system.



What is Motion Matching


Motion Matching for Unity (MxM) is an alternative animation system to mecanim which enables fluid and responsive animation without the need of a state machine. There is no need to specify transitions, define conditions or keep track of complex animation logic. Motion Matching takes care of most of that for you resulting in unlimited starts, stops, plants and turns.



Motion Matching achieves this by comparing the pose of the character and desired future trajectory (from player input) to all animations in your library. The system will pick the most appropriate time and clip to jump to. This all happens with lightning speed as it is implemented with Unity's new job system and burst compiler.



Who is it for?


MxM is not a plug and play asset. You need to understand basic scripting in Unity as an absolute minimum. However, strong programmers will make the most out of this asset. Intermediate level experience with Unity and programming in C# is recommended.



MxM supports cut clips but mocap users and studios with high animation bandwidth will reap greater benefits from this asset.



Platforms - While MxM may work on mobile devices, mobile platforms are not yet actively supported



Dependencies - MxM requires a number of Unity packages from the package manager to work (e.g. Jobs). Some of these may be preview packages. However, these packages all behave in a stable manner with MxM. Please read the quick start guide for details.



Animation Requirements - MxM may not work with all animation sets. Transition animations are required for good coverage and continuity. Please read the documentation for more info.



Features: (v2.2.5)


- Un-structured interactive animation


- Fluid, natural and responsive animation output*


- No need for state machines and explicit transitions


- Powerful event system for character actions


- Built in animation warping for actions like parkour - Support for multiple world contacts during actions (e.g. placing the hand on a ledge when vaulting)


- Tagging system for control over movement types and stances


- Built in layer system - Fade between mecanim and MxM with a single function call - Lighting fast performance. MxM is multi-threaded and uses Unity's new Job system Burst Compiler and SIMD mathematics library


- Blend spaces to cover animation gaps - Custom editors and inspectors to help manipulate data


- Support for cut clips as well as uncut motion capture **


- Works with most IK systems straight out of the box ***


- Powerful debugging tools


- see the documentation for more



*Animation output quality and responsiveness is dependent on the quality and responsiveness of source animations.


** Not all animation sets will work. Please see animation requirements for more details.


*** Only partial support for 'Unity Animation Rigging' due to Unity bugs and limitations.



Support:


- Discord Channel


Documentation:


- Quick Start Guide


- User Manual


- Video Tutorials



Warning: Motion Matching is a generic animation system that outputs animation. It does not handle procedural animation / IK or game-play code. A good level of scripting competence is recommended to convey game-play information to the motion matching system.