/MotionMatchingByDreaw

Animation system for Unity engine based on motion matching

Primary LanguageC#MIT LicenseMIT

MotionMatchingByDreaw

Animation system for Unity engine based on motion matching

New Assets (by class names):

Editor assets:

Data Creator or DataCreator_New - stores data and animations to calculate "Motion Matching Data" asset
Data Creator Trajectory Settings - stores past and future times of trajectory points needed to create trajectory
Motion Matching Bone Profile - stores information about bones witch will be used to match animations
Motion Matching Data - stores calculated data (trajectory and pose) for specific animations, this assets are created by editors which use Data Creator or DataCreator_New. This asset can be edited in Motion matching data editor

Runtime assets:

Motion Matching Animator_SO - asset which represent animation state machine controller (like mecanim animation controller)
Native Motion Group - asset which represent one or more animations. This asset need to be placed in states of Motion Matching Animator_SO.
Section Dependencies - stores information about sections (time intervals) of animation

Components:

Motion Matching Component - component equivalent to unity Animator component.

Trajectory Maker - component responsible for creating trajectory which is passed to Motion Matching Component. This is my own implementation and of course it can be replaced.

Editors:

Motion matching state machine graph editor

image

Editor for creating animation state machine.

Motion matching data editor:

image

In this editor we can add a lot of data to Motion Matching Data asset, such as:

  • Sections - time intervals in animation, wchich can be used as:
    • time intervals during which the transition conditions should be checked
    • time intervals where motion matching finding should find next animation
  • Conatct points - points which are used in contact state of Motion Matching Animator_SO to move character betweem points specified in game world (they can be used to implement parkour)
  • Curves - works like curves in normal animation, but theirs values are evaluated in LateUpdate.
  • Animation Events - worls like events in normal animations but are fired in LateUpdate
  • Bone Tracks - experimental
  • Animation Speed Curve - it is curve which represent animation speed multiplier