It is important to realize that motion matching is not ideal for all situation. You must consider both the type of game that you are making and your animation bandwidth before choosing to utilize motion matching.
Responsiveness vs. Quality
Quality and responsiveness are two opposing concepts when it comes to animation. For a humanoid character to realistically turn around it takes time to do so. If this time is reduced then it becomes less realistic. However, this extra time makes it less responsive to the player. You cannot have both 100% quality and 100% responsiveness at the same time, there is a tradeoff that must be made depending on your game design. This is a cursed problem as both concepts directly oppose each other.
While Motion Symphony has options to help balance responsiveness and quality as best possible it is probably not best suited for twitch style movement where characters can turn, stop and change direction instantly without some form of acceleration and deceleration.
Ultimately, the best way to achieve better responsiveness with motion matching is to modify your source animations to be fast and responsive. Often raw mocap can appear very slow and sluggish in a game setting.
Note: As a part of ongoing development, Animation Uprising is continuously seeking new avenues to narrow the gap between responsiveness and quality in motion matching. This takes the form of utilizing animation warping (e.g. Stride Warping) and Distance Matching to get the best of both worlds where possible. However, this is still in development.
Not all animation sets will work with motion matching and there are some animation requirements that need to be met in order to get good results. In general, Motion Capture designed specifically for motion matching gets the best results. It is possible to get decent results with traditional cut clips in Motion Symphony provided they have enough transitions. However, please be aware that you will never achieve the same level of fidelity as mocap when using cut clips and depending on the coverage, responsiveness may be affected as well.
The below sections explain some common concepts that need to be understood when rationalizing animation requirements for motion matching.
Trash In - Trash Out
Motion matching has only ever been shown working very well with high quality animations. While motion matching can have some awesome results it cannot output quality animation if the input animations are poor.
It’s important to understand that motion matching does not modify the input animations in any way. The animations you input into the system are the animations you will get out of the system. Motion Matching simply facilitates which clips should play at what time and when.
One of the primary factors for achieving quality animation with motion matching is coverage. Coverage basically means, how many possible movements does your animation cover? How many angled turns are there? How many starts, stops, shuffles, banks etc. ? Are there left and right foot variations of each? How many speed variations are there?
As a rule of thumb, the more the better. However, there is a reasonable limit to what is feasible and past a certain point there are diminishing returns. All that matters is that there is enough to make it believable.
Continuity is another vital concept to understand. For motion matching to work, the system needs to know what the future trajectory of that animation is. Typically the future trajectory is measured 1 second into the future and up to 1 second in the past. This means that both before and after any action, there needs to be 1 second of continuous motion or idle.
As a rule of thumb for mocap, every time the actor stops, they should stop for a minimum 1 second and every time they move they should continue that movement for a minimum 1 second before slowing again or taking a specific action like a stop or a plant. This 1 second rule could be broken if the goal is to capture multiple successive plants or shuffles to capture rapid direction changes that simulate player ‘input chaos’.
Continuity for Cut Clips
‘Motion Symphony’ has systems and tooling in place to deal with cut clip trajectory continuity issues by allowing the user to either extrapolate animation trajectories or to extract them from other clips. However, there is another problem that requires attention, particularly for ‘start’ type animations which come to an abrupt end. Usually these animations are set up to flow immediately into a moving animation (e.g. RunFwdStart -> RunFwd). However, since there are no explicit transitions in motion matching this doesn’t always work well and can result in some jitter.
Motion Matching thrives on continuous animation because it generates a database of sequential poses. If the next pose being played is the best pose, calculated by the motion matching algorithm, it simply keeps playing it. However, with clips, this continuity is disrupted frequently, and the system is forced to pick a different pose when a clip comes to an end. This can cause some abrupt jitter.
‘Motion Symphony’ solves this by supporting UE4’s native animation composites. Animations can be spliced together in composites and used directly in ‘Motion Symphony’ and be treated as if it were a single clip. This effectively eliminating the abrupt end to start type animations providing smoother continuity and eliminating jitter. (e.g. for RunFwdStart, make a composite that combines RunFwdStart->RunFwdLoop)
Note: Looping animations (e.g. runs) and ‘stop’ type animations (e.g. run-stop) don’t have this issue. When a looping clip is used, ‘Motion Symphony automatically loops its iteration over a section of the database when determining the current pose.