Skip to content

Roadmap

Note

As these assets are still pre-1.0, breaking changes to API's, interfaces, and design patterns should be expected. Anywhere possible, the Config Wizard will be modified to automate these changes to prevent impact to users, but in all cases, the changes will be clearly communicated with a step-by-step text or video tutorial provided for upgrading.

Definitions and Notes

  • MMLC - Motion-Matching Locomotion Controller (This asset)
  • MxM - Motion-Matching for Unity (Animation Uprising) asset
  • MAP - Movement Animset Pro (Kubold) asset

Asset Release Order

  1. Next: MMLC v0.3.0
  2. MMC Game Creator Integration (GC1 support) - New Asset Release
  3. MMLC v0.3.1
  4. Parkour Controller plugin for MMLC - New Asset Release

Click to expand each roadmap version

Roadmap versions are collapsed for readability, click the header (or the right arrow on mobile) to expand them.

Motion-Matching Locomotion Controller (MMLC)

PAST - v0.2.0 - Initial Asset Store Release
  • Full InputSystem-based Input (new input system) support

  • Full InputManager-based Input (old input system)

  • crouch-walk, walk, run, sprint

  • Procedural jumping and automatic fall/landing detection

  • soft, hard, and rolling landing variants

  • Environment-aware Trajectory Generator

    • Stops player from running into walls or executing movement (running, etc) animations when they're not actually moving
  • NavMeshAgent support (support for NPC character locomotion): Both simple NavMeshAgent and CharacterController-based NavMeshAgents are supported via a toggle in the Configuration Wizard: CharacterController-based is highly recommended, as it allows seamless switching between input-schemes (e.g. switching a character between NavMesh- and Input-based control at runtime ).

  • Configuration Wizard for dependency checking and quick addition of characters to your scenes

  • Improved Footstep System

    • Really this update is to take full advantage of MxM's awesome footstep event system, which supports label types of step, scuff, twist, slide, stomp, which, combined with our MaterialType logic, will allow footstep sound generation specific to ground and movement type.

Known Limitations and Issues

  • [Issue] Tight leaning arcs when running need to be tweaked, they're not currently smooth

  • [Feature Needed] Need to add pelvic offset code to lower the player's CG when descending ramps/stairs to avoid knee hyperextension.

  • [Known Limitation]: Cinemachine Camera Controller doesn't fully work when changing character between InputManager and InputSystem schemes, because why would someone do that? In this situation, the Config Wizard could be rerun with your destination Input Scheme and the Cinemachine controller will be adjusted accordingly.

Updates on Past Issues

Regarding:

  • [Solved via different approach]: Footstep notifications aren't fully working: A bug report has been filed for MxM, but there's also a workaround that could be implemented that would just add some processing to NGCharacterBase::Update (that would ideally be avoided), but would resolve the issue at the expense of some extra compute. Update: MxM developer is working the issue now (fantastic!), so we'll hopefully have a resolution soon.

We got the footstep firing pretty much working, but in the process, realized that this would require asset users (developers) to trigger their footstep event systems with multiple different mechanisms (MxM and whichever other gamekit or controller systems are in use) to get consistent footstep and audio events across MxM and any other gamekits/controllers (e.g. Game Creator, Invector, Animal Controller, etc) and animator controllers in use. See Audio Events for more info about the implemented solution.

PAST - v0.2.1 - Available on discord server
  • Fixed errors when Input System not present in project: Made Input System optional.

  • Fixed "wobbly legs" and encapsulated locomotion-mode-specific settings {speed, posBias, dirBias, angularWarpRate} into a class for easier expansion in the future.

  • Added automated angularWarpRate ramp to adjust turn sensitivity as a function of speed, regardless of the current locomotion mode (so e.g. walking will behave like walking whether you're maxing out the input with canRun == false or barely moving the analog stick with canRun == true)

  • Add MMCIntegrationBase for Automatic discovery of new integrations. This allows Threepeat and third parties to provide new Config-Wizard integrations (with automatic dependency checking and resolution) without any modifications needed to the core MMLC asset.

  • Added ContextualAction paradigm for registering available contextual actions by case-insensitive string action name.

  • Completely Revamped the input handling to use ContextualAction, ContextualActionTrigger, and ContextualActionProcessor. This allows for remapping of key functionality and processing stacks in editor or at runtime. This will be particularly useful for mode-specific controls and for enabling/disabling capabilities (e.g. parkour, sprint, crouch, etc) without having to modify any code.

  • Added OnInputSchemeChanged, to be called whenever NGCharacter.InputScheme is changed. This will be fired on initial start-time assignment. Boolean parameter will be true for initial assignment and false for change.

  • Fixed Camera Jitter

  • Fixed Jump Hover issue where Player would hover at top of jump during some standing big jumps

  • Fixed Jump catapult issue

  • Replaced Jump Force with Jump Height to make it more predictably configurable

  • Add NavMeshAgent from Config Wizard for characters with NavMesh Input Schemes

  • Put Config Wizard Dependency Checks Tab into a Scroll View

  • Corrected running blend spaces to improve leaning and animation fluidity when running in circles

PAST - v0.2.1-patch
  • Added AnimData's for Pure-MxM-Mocap (no crouch support) and several Hybrid MxM-Mocap/MovementAnimsetPro animation sets for use with MMLC.
PAST - v0.3.0 - First Major Feature Update - Strafe and TIP - March 2023
  • Strafe mode (Beta) (Left Alt toggle by default):

    • Pure-MxM-Mocap strafe (standing only)
    • MAP strafe: standing and crouch
    • Config Wizard: Automatically modify Movement Animset Pro animations for Strafe and TIP support
    • Modify logic to enable/disable Face Camera Direction On Idle as appropriate (this will always be enabled in strafe, but user choice in all other locomotion modes via NGCharacterBaseConfig.faceAwayFromCameraOnIdleInNonStrafeModes)
    • Added ContextualAction for Strafe toggle to InputManager and InputSystems (Left Alt by default)
  • Turn-in-Place (TIP) support (Beta)

    • Standing and crouching
    • Added multiple new custom gap-filler animations for crouching 180 degree left and right turns-in-place, as well as MAP standing TIP animations
    • Added faceAwayFromCameraOnIdleInNonStrafeModes to NGCharacterBaseConfig
  • General Locomotion Behavior

    • Improved sprint behavior in non-strider-integrations. Added optional mode-specific longitudinal error warping selectivity by locomotion mode to NGCharacterBaseConfig.
    • Disabled longitudinal error warping for all non-sprint modes by default (unless strider is present)
  • Generic Plugin and Ability Integration Support

    • Makes no-additional-code integration/addition of plugins and components seamless.
    • Critical for clean/reusable/modularity for anyone to extend and customize MMLC
    • With Config Wizard automation
  • Config Wizard:

    • Provided better "which dependency failed" feedback in Dependency Checks tab: A warning will now be logged to the console for any missing package dependencies (Warning will be: "Package is missing", e.g. "Package com.unity.jobs is missing")
    • Dependency-checking and automatic support for modifying Movement Animset Pro
  • Reorganized scripts into top-level Scripts/Runtime and Scripts/Editor folders

  • Added ContextualActionProcessor.enabled to make holistic enable/disable of any given ContextualAction key/button easier.

KNOWN ISSUES

  • TIP

    • MxM Turn-In-Place / face direction on idle is spotty: Will either fix or replace MxM TIP Extension in future update
  • Strafe mode is still in early development:

    • Turn-In-Place being spotty impacts quality of strafe mode, so player will not always turn to face away from camera while idle. I've made sure that the player will turn to face the camera whenever movement is applied though, so it still honors the spirit of strafe mode. Will fix this with custom logic in future update.
  • Not related to MMLC, but impacts it: Editor Play-mode Framerate drops when character root object selected and inspector tab is open. This has nothing to do with MMLC, as profiler shows time being spent in OnGUI for the inspector (and there are no custom inspectors for any of the components in this object) Workaround is to select any other object in the hierarchy (including model/animator object for the character OR switch to a different tab in the same tab group as Inspector so that Inspector is not visible.).

PAST - v0.3.1 - Ready-for-GC1 update - May 2023 - Released on Asset Store
  • Config Wizard:

    • Dependency Checks: Added Top-level Sections
    • Dependency Checks: Added optional automatic rechecking dependencies after import/delete assets
    • Setup Character: Update Existing Characters added to setup
    • Setup Character: Added Top-level Sections
    • Final IK: Made addition of Final IK Grounder optional (so Final IK FBBIK can still be used when other foot placement systems are used)
    • Added Helper button/dropdown to change AnimData (animation dataset) for all active/enabled MMLC Characters in the open scene.
  • iStep FootIK Integration added with Config Wizard support

  • Added register/unregister API calls for Custom LateUpdate methods

  • Added all base-MMLC support necessary for Game Creator 1 (GC1) plugin

  • Animation Set Support

    • Added initial support for Mobility Pro (MOB) from Mocap Online. TIP not yet supported. Footstep events added/supported.
    • Added initial support for Female Movement Animset Pro (FMAP) from Kubold. TIP not yet supported. Footstep events added/supported.
PAST - v0.3.2 - Quality of Life Update for GC1 - May 2023
  • Fixed spurious logging/errors when Animation Sets not present in Game Creator 1 projects

  • Added logic to only show certain Items in the Dependency Checks tab if other criteria have been met. This cleans up the dependency checks for game creator projects so that you only see tasks/dependencies for animation sets you're actually intending to integrate

v0.3.3 - PAST - Ready-for-Parkour-Controller Update - August 2023
  • Config Wizard

    • Addition of Parkour Controller Integration section and dependency management

    • Config Wizard supports rebaking of MxM anim data specific model prefabs (this allows parkour controller contact/motion warping to work properly), which adds all foundational support needed for our Parkour Controller Asset (upcoming on the Unity Store)

  • Added MMCAnimDataConfig and MMCAnimDataEditorConfig to manage autodiscovery of combinable Animation Modules and sets

  • Added initial support for Toon Movement Animation Set (no footstep events yet)

  • Added button to NGCharacter inspector to initialize the input scheme, which allows setting of navigation target transform for InputScheme_NavMesh in edit mode

  • Added PackageExporter SO to make creating/managing integration packages easier.

  • Added additional CharacterStates in NGCharacter to support future Threepeat and third-party assets.

  • Added "forceHardLandingOneShot" to NGCharacter to allow forcing next landing to execute a hard-landing variant.

  • Introduced TagManager to handle what capabilities a character has based on animation set and user preference

  • Added NGCharacterConfigBase.jumpImpulseOnKeypress to allow forcing immediate jump/big-jump on key down when desired.

  • Modified NGCharacter landing logic to support landing with/without root motion enabled.

  • Reworked Grounded code to fix spontaneous falling bug

v0.3.4 - PAST - Interface update
  • Added ParkourAnimModuleConfig to support Parkour Controller

  • Made NGCharacter Strider-wrapper functions public for efficiency/performance

v0.3.5 - PAST - AnimData, TagManager, and Dependency Update
  • Fixed TagManager error and made sure Jump will work even in that condition

  • Dependency Checks UI will now automatically check Unity Editor version to allow dependencies to be properly checked in 2022+ editor versions

v0.3.6 - PAST - TagManager, Example Scene Fix, and Named Events
  • Made TagManager fully optional

  • Fixed example scene issue

  • Added Named Events to decouple MMLC plugins and components and allow for consistent, centralized pre-character character event firing and management

v0.3.7 - CURRENT - Splines, GC2 foundational support, UX improvements
  • Added initial support for next major Spline release with InputVectorPostProcessor

  • Many miscellaneous fixes

  • Fixed self collision in grounded check

  • Added Dreamteck Splines support

  • Added maxSeparationDistanceBeforeMoving to NavMesh InputScheme (first step in supporting min/max range for NPC follows)

  • Improved Config Wizard UX

    • Added hierarchy to Dependency Checks GUI

    • Added defaulted-off option to hide all unavailable integrations

KNOWN ISSUES

  • TIP

    • MxM Turn-In-Place / face direction on idle is spotty: Will either fix or replace MxM TIP Extension in future update
  • Strafe mode is still in early development:

    • Turn-In-Place being spotty impacts quality of strafe mode, so player will not always turn to face away from camera while idle. I've made sure that the player will turn to face the camera whenever movement is applied though, so it still honors the spirit of strafe mode. Will fix this with custom logic in future update.
  • Toon Movement (TM) Animation Set doesn't have NGFootstepEvents

  • Not related to MMLC, but impacts it: Editor Play-mode Framerate drops when character root object selected and inspector tab is open. This has nothing to do with MMLC, as profiler shows time being spent in OnGUI for the inspector (and there are no custom inspectors for any of the components in this object) Workaround is to select any other object in the hierarchy (including model/animator object for the character OR switch to a different tab in the same tab group as Inspector so that Inspector is not visible.).

0.3.8 - Next Update
  • MMC Animation Event Layers

    • Supports specifying list of AnimationClips that can be fired via NGCharacter API with optional AvatarMask support

      • Oneshot API (looping, multi-animation sequenced are coming in future update, but AnimatorController is great for that in the meantime)
    • Rides on MxM Blend Space Layers so can be multi-layered, and is fully specified pre-runtime so MxM can create a fixed PlayableGraph to zeroize runtime performance impacts

    • Smooth blending and keeps MMLC/MxM in full control of character behavior throughout the events

  • Min/Max follow range support for NavMesh

  • Splines:

    • Player Spline InputScheme (allow user input along a spline with maximum excursion distance, angle, and directionality)
    • Join Spline at closest point action
v0.4.0 - Upcoming
  • JawClose - AnimationClip modification tool to insert a JawClose key to stop e.g. Daz3D-imported models from having mouth hanging open.

  • A* Pathfinding Pro and Rewired support

  • Next Alternate Character Controller support (e.g. ECM/ECM2/OpenKCC) chosen based on user interest.

  • Config Wizard supports selection/management of all available baked AnimDatas (MAP, Female Movement Animset Pro (FMAP), pure-MxM, MxM/MAP hybrids, etc) for locomotion

  • Config Wizard will support injecting NGFootstepEvents into all MxM mocap animations so MMLC footstep events will be functional in these modes.

  • Config Wizard supports fully custom rebaking of MxM anim data, along with mix-and-match modes (e.g. using MxM Mocap for idle/walk/run, and MAP for sprint, crouch and strafe)

MMC Game Creator Integration Asset (separate Unity asset)

v1.0 (minimum MMLC version: v0.3.1) - Upcoming (submitting for publishing in March 2023)
  • Game Creator 1 (GC1) Integration
    • Custom actions to enable, disable, and configure MMLC as well as blending between it and GC1
    • Custom conditions to determine current state of MMLC and GC1/MMLC blending
    • Custom events for all exposed state changes
    • Optional triggering of existing GC1 events (e.g. On Footstep trigger)
    • In-asset examples for Core (Gestures, blending, and transitions), Melee, Traversal, and Shooter
v2.0 (minimum MMLC version: v0.3.1) - Upcoming
  • Game Creator 2 (GC2) Integration
    • Custom instructions to enable, disable, and configure MMLC as well as blending between it and GC2
    • Custom conditions to determine current state of MMLC and GC2/MMLC blending
    • Custom events for all exposed state changes

Planned Tutorials

  • Contextual Actions: understanding, customizing, making your own

  • Plugins: making your own

  • Footstep System

  • Using Mixamo character models (although this is heavily covered by at least 33% of all videos on YouTube by any creator)

  • New InputSystem, Old InputManager config

  • Tuning character behavior (run speed, jump force, roll/hard-landing height)

  • big jump via special key combos and double jump

  • Disabling Motion-Matching in favor of traditional animator (or e.g. Mesh Animator) based on distance from camera to save computation.

  • Getting NPC's Off Mesh Links to use MMLC jump event / animations.

  • Strafe + animator masks for shooter game mechanics