Fix JacobianIK to apply gradient correctly

This commit is contained in:
Silc Lizard (Tokage) Renew 2025-11-09 15:18:30 +09:00
parent 6fd949a6dc
commit 069206bc74
2 changed files with 2 additions and 2 deletions

View file

@ -54,7 +54,7 @@ void JacobianIK3D::_solve_iteration(double p_delta, Skeleton3D *p_skeleton, Iter
continue;
}
Quaternion to_rot = Quaternion(axis.normalized(), axis.length() / MAX(CMP_EPSILON, head_to_effector.length()));
Quaternion to_rot = Quaternion(axis.normalized(), MIN(axis.length() / MAX(CMP_EPSILON, head_to_effector.length_squared()), angular_delta_limit)); // Clip by angular_delta_limit for stability.
for (int j = TAIL; j < chain_size; j++) {
Vector3 to_tail = p_setting->chain[j] - current_head;