-
Notifications
You must be signed in to change notification settings - Fork 7
Change Log
Versioning format changed to be more flexible and readable
Due to the vast amount of changes pre-existing animation blueprints are NOT supported
- Distance matching (multi-threaded)
-
Distance Matching [Start]
(anim graph node) -
Distance Matching [Stop]
(anim graph node)
-
- Quadrupeds
- Animations Reworked
- All standing locomotion loops, starts, and stops have been fixed up significantly
- Stop Backwards animations added
- Look Target Improved
- Added "Goal" option (along with existing "Actor" and "Location") which mimics aim offset behaviour for humanoids
- Fixed bug where socket rotation was a frame behind causing occasional jitter
- Code base cleaned up significantly
- Foot Locking System
- Foot Tapping System
- Weapon Pointing System
- Foot Sliding Removal
- Between Distance Matching and Foot Locking and modification of all loops, foot sliding has been nearly eliminated entirely
- Significant improvements to strafe behaviour and properties
- Slope averaging over distance for incline adjustments (also for floor sliding)
- Small turns added to TIP
- Leg IK behaviour revamped and fixed
- Sync groups added
- Ledge Recovery functionality added (for stopping or pivoting near edge)
- Pivot during orient to movement can use sideways animations now
- Option to use move backwards multiplier for acceleration (now enabled by default)
- Gait node behaviour improved significantly (now factors non-1.0 axis input, and yes also in multiplayer)
- Tidied up node and added debugging options
- ForceWalkOff/OnLedge has been moved to a self contained function, had extra settings added and better defaults to prevent auto-stair climbing glitch (not perfect, but a lot better)
- Re-did the animation tools to tidy up the base classes and blueprints as well as added functionality needed for distance matching
- Root motion extraction moved to code for performance and cleanliness
- Removed SRIG_MoveIt (use Humanoid Rig now)
- Improved animation blending for start/stop
- Added better titles for strafe / gait nodes to reflect what they're built on
- Cleaned up all animation nodes to reduce casting and re-used code
- StartInputSpeed property for anim graph (0-1 controller input range used for start animation)
- Tidied up MoveItEditorTools module
- Tidied up headers and removed unused includes
- Updated Niagara Spawning to use pooling where appropriate
- Stopping Blendspaces changed to 1D
- Removed all
FORCEINLINE
- bad practice (allow compiler to do this itself, it's smarter than us)
- Fixed considerable inaccuracies with AirLean node
- Fixed bug where mesh wasn't reinitializing turn in place on becoming relevant again
- Fixed bug where TakeShotPhysicsImpact was interfering with ragdoll
- RootYawOffset was not re-initializing upon becoming relevant again
- Reprocessed every animation to fix a UE4 edge-case resulting in broken export of animations
- GetMaxBrakingDeceleration no longer mistakes max speed for sprinting
- Added aggressive saving and redirector fixing when organizing retargeted animations to prevent blendspaces removing references edge case
- Fix for look target node, should look at objects better now and ideally without jitter
- Fix for applying capsule half height twice when alternating crouch and floor sliding (thanks to RoyAwesome)
- Stopped floor sliding and sprinting from removing incline for speed comparisons when on ground (should improve behaviour in edge cases)
- Fixing possible null check issue
- Fixed issue with one of the aim offsets jittering
- Changed back to Two-Bone IK instead of Control Rig for IK
- UE5 support
- BlueprintNativeEvents for runtime disabling:
- CanHitWall
- CanScuffWall
- CanHitCharacter
- Fixed UE4 bug causing missing references in blendspaces
- Added missing null check that some editor tools require in MICMC
- Fixing neck, head, clavicle poses in all animations - this ensures retargeting works flawlessly so long as your character is setup correctly
- Ensured every single animation available is now retargeted by adding unused animations to anim graph
- Added improved root motion support (for use with GAS or single player games)
-
bDisableControlRotationDuringRootMotion
added to disable Control Rotation during root motion (so character wont rotate during root motion) -
StopRootMotionOrientTime
provides an interpolation back to the control rotation after root motion (you can set this based on the montage when you tell it to play) -
MIPlayerCameraManager
added for optional use with ability to clamp yaw during root motion montage to prevent it breaching turn in place limit -
MIPlayerController
for optional use which exposesSetPawn
to Blueprint, this can be used to init theMIPlayerCameraManager
(OnCharacterUpdated
) - Added function to
MICharacter
OnAnimInstanceChanged
which should be used to resetMIPlayerCameraManager
(OnCharacterUpdated
)
-
- Hit wall / character etc. functions now check for any root motion source (not just root motion in CMC)
- MoveIt_RetargetSorter was broken by 4.27. Custom solution implemented to fix this.
- Data cache performance improved by modifying variable layout (memory alignment) to reduce cache misses
- Grouped properties for better caching for CMC, Character, AnimInstance
- This means some properties will be poorly ordered when reading classes, but trade-off is worthwhile
- ViewComponent uses socket offset for spring arm instead of transform so collisions trigger properly
- Added unused animations to anim instance so they will still be retargeted
- Disabled loop on unused pivot animations so users wont get caught off-guard
- Changes to ImpactSystem (Footsteps)
- Added BitMask for impacts to include/exclude states (default, ragdoll, floor sliding)
- FloorSliding now uses hands also
- Added Event Callback
FMIOnSurfaceImpact
for impacts based on local role- Accessible via
UMIAnimInstance
asUPROPERTY(BlueprintAssignable, Category = Impact) FMIOnSurfaceImpact OnSurfaceImpact;
- Note: Callback settings must support calling this and it must be bound for it to be called!
- Global settings & per-impact
- Callback includes:
FName BoneName
UPhysicalMaterial* PhysMat
FVector Location
FRotator Rotation
float BoneSpeed
- Accessible via
- Fixed a bug where it would return out of loop instead of using continue
- Added BitMask for impacts to include/exclude states (default, ragdoll, floor sliding)
- Changed MoveItFullBodyIK LoadingPhase to PostConfigInit to fix a bug with ControlRig (EarliestPossible caused other issues)
- Changed MoveItFullBodyIK LoadingPhase to EarliestPossible to fix a bug with ControlRig
- Footsteps (surface impacts) now work correctly in 5.0EA circumventing engine bug that returned 0 velocity for bones
- 4.27 support added (has deprecation warnings because neither 4.26 nor 5.0EA has the new functions)
-
OnStartFloorSlide
andOnStopFloorSlide
,OnStartCrouchRun
andOnStopCrouchRun
made virtual
- Fixed packaging bug
All pre-existing animation blueprints should change the Idle LeftStateEvent
to "StartTurn" and remove "StartTurn" from the transitions stemming from TurnConduit
(don't forget Crouch)
- Added template for Twin Stick movement
- Added setting to always continue rotating to last non-zero input direction
- Added new Turn in Place animations - 15° / 30° / 45°
- Added optional IdleRotationRate to use instead of RotationRate when not moving
- Fixed bug with TurnInPlace where StartTurn was not being called in the first instance
- Fixed bug with LandingPose node that was evaluating incorrectly (and disrupting IK/pelvis)
- Added missing includes
- Added
GetMaxGaitSpeed
toMICharacterMovementComponent
which simply callsGetMaxSpeed()
but you can override in C++ to change GaitSpeed on a per-project basis (seeMIAnimInstance
) - Fixed bug where aim offsets weren't computing properly without
OrientToView
For pre-existing animation BPs it is recommended to change the gait node blend out time to 0.6 from 0.2
To revert back to previous system simply go to AMICharacter::IsSprinting
and read comments for further instruction
- Sprint overhauled to allow sprinting from idle
-
IsSprintingAtSpeed
moved toMICharacter
instead ofMICharacterMovementComponent
and renamed toIsSprinting
to allow BP override- All functions referencing
IsSprintingAtSpeed
are modified as required - Now returns true if there is any movement instead of exceeding walk speed (can start sprinting with any movement)
- All functions referencing
-
MaxAccelerationSprinting
is reduced greatly as it can now sprint from idle - Gait Node default blend out time changed to 0.6 from 0.2 to allow it to be partially used when starting from idle -> sprint
- RetargetSorter now correctly saves (to prevent blendspaces losing references)
- RetargetSorter now fixes up references itself so you don't have to
- RetargetSorter has UX update (helpful text and improved activation conditions and default source folder location filled in)
- Added export macro to FPhysicsBlend
- Changed log category for full body IK solver to prevent UE5 conflict
- Initialized missing anim node properties properly
- Fixed issue with CR_MoveIt preventing packaging
- Fixed missing include
- Experimental compatibility with Sequencer added
Update guide for pre-existing blueprints: https://youtu.be/dt4A30kgjwg
- Support for UE5 Early Access
- MIBoneTools disabled deprecation warnings that occur with UE5
- Added UE5 Early Access FullBodyIK solver to UE4.26, a significant task
- Changed FootIK to use FullBodyIK solver and Control Rig (it's faster, and actually works with UE5)
- Fixed missing includes
- Removed unnecessary build.cs includes
- Virtual C++ events for
OnStartSprinting
andOnStopSprinting
- Fixed missing include in
MICharacter
- Added MetaHuman retarget pose
- Added MetaHuman retarget information to documentation
- Adding InputSource to MISpringArmComponent to allow it to get values from PlayerController instead of Character
- Fixed missing includes and declarations in MISpringArmComponent (Even Epic's tooling didn't pick them up)
- Added FallbackMode to physical material (so when using character-specific lookups they are optional for each character)
- AdvancedDisplay not functioning correctly for all properties in 4.26 so modifier removed from some character properties related to physical impacts
- Fixed many comments for physical animation
- Updated copyright notice
- Added character-specific functionality for physical material assets
- Fixed MISpringArmComponent
- bCameraMoveDuringJump now works correctly
- Debug option now disables correctly
- Zoom options work as expected
- bCameraMoveDuringJump now works correctly
- Added ability to enable/disable aim offset externally (MIAnimInstance->bAllowAimOffset)
- Added Blueprint function for IsSprinting to MIAnimInstance to add control over animation state
- Removed box trace for foot IK temporarily, needs redoing
- Orient to ground now bone based instead of world based (works for any root orientation)
- MoveIt now supports non-UE4 characters properly
-
Changed Foot IK to use a box instead of line trace to prevent foot clipping(Deferred) - Added debug drawing options for anim graph nodes for easier setup (so far only foot IK)
- Improved jumping animations
- 4.25 Support Dropped
- Cleared 4.26 deprecation warnings for
FAnimationRuntime::AccumulateAdditivePose
- 4.24 Support Dropped
- Cleared 4.25 deprecation warnings for
UProperty
->FProperty
- IK Bone Tool has warning added to restart editor to avoid crash
- Added tool to automatically add IK bones to mesh(es)
- Added functionality to force close windows when extracting turn in place curves (as this can cause issues)
- Added custom MISpringArmComponent - check BP_MoveIt_ExampleCharacter AdventureBoom for usage (also in the event graph!)
- Orbit functionality (turns camera when moving sideways like Mario Odyssey)
- Static Jump (stops camera moving when jumping)
- Zoom (smooth camera zoom via input)
- Pitch to Zoom Curve to allow zooming based on vertical angle
- Fixed a bug where ragdoll used incorrect property for normal sync (i.e not aggressive/initial sync)
- Moved character cached replicated properties to header
- Added enum GetMIMovementState
- Added to MICharacter GetPhysicalMaterialOverride which takes absolute priority on physical material used, perfect for applying special footsteps when using abilities, etc
- Fixed issue with Epic breaking my turn in place on listen servers! OnRegister was changing NetSmoothingMode
- Corrected ListenServerNetworkSimulatedSmoothRotationTime (TIP should look smoother)
- Added initial replication for characters becoming relevant for the RootYawOffset to help the initial turn in place line up
- Fixed timing of bTurnRight determined by anim graph
- Tentative fix for FAccelerationFrameCache causing a crash
- Removed unused cache
- Turning radius defaulted to 0 as it was confusing some users
- New animation set & features
- Improved turn in place
- Reworked anim graph setup and core logic for nicer / cleaner turning
- Unlimited custom step sizes (rather than restricted to 2)
- Rest frames now work properly (IsTurning becoming false)
- Turn animation rate based on reaching max turn angle
- Turn animation rate based on changing direction while playing previous (other direction) animation
- MaxTurnAngle 0.0 now works as intended
- FootIK correctly compensates TIP offset
- Crouch sprinting added (running while hunched over)
- Proper AI support
- Support for Linux Toolchain (when compiling from windows - should work from Linux OS too, tell me in Discord if it doesn't)
- Animation settings forced to top of details panel via details customization
- Simplified base character
- Demo character uses toggled inputs instead of held inputs
- AimOffset should no longer have strange rotations (fixed order of operations)
- Physical animations improved immensely
- Added "Coyote Time" (where it will still allow jumping for an incredibly small amount of time after walking off a ledge, helps platforming feel far more responsive, stops players feeling cheated "I pressed jump in time!", and prevents the scenario where a character walks off a tiny notch in a bumpy terrain as jump is pressed)
- Added "Bunny Time" (where it allows you to still jump if you pressed jump slightly before landing, making jumping feel much more responsive)
- ViewComponent no longer needs to be setup for each character (default behaviour provided), only requires custom blueprints for non-MoveIt projects or blueprint only projects
- Major changes to default movement properties (primarily to support new animations and improve look and feel)
- Setting for crouching in air behaviour
- Fixed bUseSeparateBrakingFriction doesn’t care if you’re in air (default CMC, just added an option for handling it better)
- Turn In Place Tool Improvements
- Remove all Anim Notifies
- Disable Root Motion
- Force Root Lock
- Correctly marks as dirty (requiring save)
- Added Details Customization to set default movement system
- Modified helper widgets and functionality to only work based on net mode
- Animation Resorter Tool for proper structure after retargeting
- Event delegates for hitting wall, scuffing wall, hitting character
- Added capability to automatically trigger floor slide
- Many Ragdoll settings exposed
- Duck node has settable trace channel
- Better categorization of properties
- Sprint backwards speed multiplier (for rare-ish cases where sprinting backwards is allowed in your game)
- Ground Friction for Sprinting
- Animation speed now factors Z speed when on ground
- Legacy Turn In Place Node Removed
- Legacy Weapon Pose Removed (In favour of new anim graph setup which has proper blending)
- IsTurnInPlaceEnabled now handled in C++ instead of BP (because its confusing / not obvious when extending in C++)
- SurfaceImpacts can be both globally and individually toggled on/off
- MANY are not listed
- Can now sprint backwards (CanSprint now checks if MaxSprintDirectionInputAngle is over 0) (NOTE: no relevant animation provided)
- AimOffset properly computed for non-TIP movement systems
- Super typedef removed from animation nodes
- CalcVelocity missing sanity checks
- Removed unnecessary landing compression nodes
- Fixed issue with scaled meshes and SpringBase node
- Fixed missing null check in IsCurrentFloorMovable
- Fix bug with GetCurrentSyncTime sometimes having ROLE_None for GetLocalRole()
- Fixed bug with tear off ragdoll
- Work-In-Progress Quadruped Support (Pre-Alpha Prototype) & addition of the MoveIt Dog
- Client-side predicted randomization! (eg. net synced randomized recoil patterns)
- Walk Animations & Blendspace setup & GetMaxAnimSpeed added to CMC so that pivot and slopes properly reflect anim speed
- Improved leaning setup
- Niagara support for MIPhysicalMaterial
- Separate move backward speed multiplier for crouching
- Root motion resets turn in place properly
- Added game mode to FeatureMap
Update guide for pre-existing blueprints: https://youtu.be/OqqvICQekWU
- Floor Sliding added as beta feature
- Gait node improvement (minimum gait prevents legs turning outward and provides nicer starts/stops)
- Strafe right orientation has better angles
- Strafe right has better sprint direction detection
- Stopping directional issues (esp. with strafe right) resolved
- Improved procedural strafing logic
- Added better options for disabling wall impact effects
- Added nice UI to demo character, changed cameras and movement modes into mini-game mode settings
- TIP Tools has button to remove all anim notifies
- TIP Tools fixed bug where it doesn't check for curve before removing
- Footstep particle less noticable, less white
- Dog added (model only, pending next release)
- Fixed an issue where friction wasn't being correctly modified when using separate braking friction
- Fixed an issue where sprinting braking deceleration was being incorrectly applied
- Fixed issue with MICharacterMovement not marked as transient
- Fixed issue where animation montages were rotated after playing
- Fixed issue where animates montages encountered foot sliding
- Fixed incorrect inversion of armed state for strafing nodes
Update guide for pre-existing blueprints: https://youtu.be/Esko5jprecA
- Animation graph overhaul allowing layering of weapon poses
- Separation of strafe input type based on strafe orientation (allows strafe right to use acceleration instead of the new default velocity)
- Integrating turn in place and ragdoll
- FMIWeapon uses MeshComponent instead of SkeletalMeshComponent to support Static Mesh weapons
- Fixed animation jitter in packaged builds when starting/stopping (gait spring tick issue)
- Fixed bug where moving animation continues to play after walking into wall
- New non-developer editor module for tools
- Turning radius (cycled movement) implemented for orient to view
- Changed to velocity based animations (from acceleration) - this is beta but has been enabled by default due to overwhelming benefit
- Fixed bug with ragdoll and turn in place (may still have issues, but its improved)
- Pivot speed threshold can use percentage of max speed instead of specific value
- PivotType can be set to disabled
- Overall improvements to animation logic
Update guide for pre-existing blueprints: https://youtu.be/ofAwLMgBD_0
- Start & stop animations
- Corrected editor module type (caused issues with standalone animations)
- Changed the default ground friction, makes the movement much nicer
- Changed the cameras to have nicer angles
- Turn in place tool: Removed need for specified angle with distance based curve and fixed issue when processing multiple assets
- Fixed bug with incline curves in CMC returning incorrect value
- Removed CanEditChange in favour of EditCondition (thanks to obsoletion of 4.22) - this also fixes the warnings in 4.25 due to UProperty change to FProperty
Update guide for pre-existing blueprints: https://youtu.be/X9Oc1KJKDIo
- New turn in place system (based on Fortnite's)
- Animation tools (for extracting curves from root motion and modifying existing curves to be compatible)
- New animations for both unarmed and rifle states
- Bug fix: Foot IK node would shift pelvis weight back or forward (depending on pose) while Idle
- Fixed Anim Graph ordering (better aim offset and weapon pose posing)
- Removed unnecessary check that could cause issues
- Fixed missing null check for anim node TranslatePoleVectors
- Fixed issue with GetMaxBrakingDeceleration sprint detection
LEGACY - Pre 2.4 - Default MoveIt Input File [ D ]
Prerequisite knowledge for using MoveIt
- Project Setup [ V ]
- Character Requirements [ V ]
-
Character Setup [ V ]
- Optional: Adding Missing IK Bones [ V ]
- Retargeting Preparation [ V ]
-
Animation Retargeting [ V ]
- Optional: MetaHuman
- Optional: Custom Retarget Pose [ V ]
- Transfer Physics Asset [ V ]
- Connecting Character Up [ V ]
- View Component [ V ]
- Spring Arm [ V ]
- Root Motion
- Weapon Poses & Aim Offsets
- Collisions & Physical Materials [ V ]
Settings, Look & Feel
- Turn In Place Overview
- Pivoting
- Cycled Movement
- Coyote Time & Bunny Time
- Walk / Jog / Run State
- Turning Circle
Expanding your MoveIt knowledge
Common game types with MoveIt
Tutorials contributed by community members