Fixed an issue that caused movement to become erratic at very low framerates.

This commit is contained in:
2026-09-27 18:09:06 -04:00
parent 1c0074c0f2
commit 2ef81e7702
2 changed files with 3 additions and 3 deletions
@@ -158,7 +158,7 @@ func _move_character():
character.move_and_slide()
func _root_motion_walk_process(_delta:float) -> void:
_current_movement_speed = lerpf(_current_movement_speed, _target_movement_vector.length_squared(), _delta * _walk_reaction_speed)
_current_movement_speed = lerpf(_current_movement_speed, _target_movement_vector.length_squared(), clampf(_delta * _walk_reaction_speed, 0.0, 1.0))
character.character_skeleton.animation_tree["parameters/walk/blend_position"] = _current_movement_speed
_root_motion_accumulation_process(_delta)
@@ -173,7 +173,7 @@ func _camera_relative_heading_process(_delta:float):
var _camera_relative_rotation : Quaternion = \
Quaternion(Vector3(_target_movement_vector.x, 0.0, _target_movement_vector.y).normalized(), \
Vector3(-player_camera.camera.global_basis.z.x, 0.0, -player_camera.camera.global_basis.z.z).normalized())
character.quaternion = character.quaternion.slerp(_camera_relative_rotation, _delta * _walk_turn_speed)
character.quaternion = character.quaternion.slerp(_camera_relative_rotation, clampf(_delta * _walk_turn_speed, 0.0, 1.0))
func _lateral_movement_physics_process(_delta:float) -> void:
character.velocity = _lateral_motion_accumulator / _delta