Change Log - DrowningDragons/MoveIt-Wiki GitHub Wiki
2.41
- Add
/Script/MoveIt
toBitmaskEnum
2.4
- 5.2 and 5.3 support
- Update codebase to be engine agnostic (remove bEnforceIWYU, preprocessor macros - albeit not yet needed)
- Remove redundant includes and ensure const-correctness
- Delete unused .cpp
- Delete unused log cats
- Ensure all vars initialized by ctor
- Convert GC-able pointers to
TWeakObjectPtr
or addUPROPERTY
macro - Delete MI_PCH.h and remove references
- Clean up virtual functions (esp
final
andoverride
specifiers) - Code consistency
- Now uses EnhancedInput
- Remove looping from run animations
2.344
- UE5.1 support
2.343
- Added IKRig and IKRetargeter assets
2.342
- Fixing possible null check issue
2.341
- Fixed issue with one of the aim offsets jittering
2.34
- Changed back to Two-Bone IK instead of Control Rig for IK
2.33
- UE5 support
2.328
- BlueprintNativeEvents for runtime disabling:
- CanHitWall
- CanScuffWall
- CanHitCharacter
3.327
- Fixed UE4 bug causing missing references in blendspaces
2.326
- Added missing null check that some editor tools require in MICMC
2.325
- 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
2.324
- 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 limitMIPlayerController
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)
2.323
- 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
2.322
- ViewComponent uses socket offset for spring arm instead of transform so collisions trigger properly
2.321
- 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
2.32
- 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)
2.315
- Changed MoveItFullBodyIK LoadingPhase to EarliestPossible to fix a bug with ControlRig
2.314
- 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)
2.313
OnStartFloorSlide
andOnStopFloorSlide
,OnStartCrouchRun
andOnStopCrouchRun
made virtual
2.3121
- Fixed packaging bug
2.312
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
2.311
- 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
2.31
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
2.303
- 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
2.302
- Fixed missing include
2.301
- Experimental compatibility with Sequencer added
2.3
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
2.213
- Virtual C++ events for
OnStartSprinting
andOnStopSprinting
- Fixed missing include in
MICharacter
2.212
- Added MetaHuman retarget pose
- Added MetaHuman retarget information to documentation
2.211
- 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)
2.21
- 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
2.204
- Added character-specific functionality for physical material assets
2.203
- 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)
2.202
- Added Blueprint function for IsSprinting to MIAnimInstance to add control over animation state
2.201
- Removed box trace for foot IK temporarily, needs redoing
2.2
- 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
2.1
- 4.25 Support Dropped
- Cleared 4.26 deprecation warnings for
FAnimationRuntime::AccumulateAdditivePose
2.045
- 4.24 Support Dropped
- Cleared 4.25 deprecation warnings for
UProperty
->FProperty
2.042
- IK Bone Tool has warning added to restart editor to avoid crash
2.041
- 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)
2.04
- 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
2.03
- 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
2.02
- 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
2.01
- 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
2.0
Major
- 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)
Noteworthy
- 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
Minor
- 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
Bug Fixes
- 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
1.23
- 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
1.22
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
1.21
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
1.20
- 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
1.11
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
1.10
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)
1.03
- Removed unnecessary check that could cause issues
1.02
- Fixed missing null check for anim node TranslatePoleVectors
1.01
- Fixed issue with GetMaxBrakingDeceleration sprint detection
3.0.0.0 (Backlogged indefinitely)
Versioning format changed to be more flexible and readable
Due to the vast amount of changes pre-existing animation blueprints are NOT supported
Major
- 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
Noteworthy
- 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)
Minor
- 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)
Bug Fixes
Major
- 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
Minor
- 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)