You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/classes/IterateIK3D.xml
+4Lines changed: 4 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -145,6 +145,10 @@
145
145
The maximum amount each bone can rotate in a single iteration.
146
146
[b]Note:[/b] This limitation is applied during each iteration. For example, if [member max_iterations] is [code]4[/code] and [member angular_delta_limit] is [code]5[/code] degrees, the maximum rotation possible in a single frame is [code]20[/code] degrees.
If [code]false[/code], the result is calculated from the previous frame's [IterateIK3D] result as the initial state.
150
+
If [code]true[/code], the previous frame's [IterateIK3D] result is discarded. At this point, the new result is calculated from the bone pose excluding the [IterateIK3D] as the initial state. This means the result will be always equal as long as the target position and the previous bone pose are the same. However, if [member angular_delta_limit] and [member max_iterations] are set too small, the end bone of the chain will never reach the target.
Copy file name to clipboardExpand all lines: scene/3d/iterate_ik_3d.h
+5Lines changed: 5 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -279,6 +279,8 @@ class IterateIK3D : public ChainIK3D {
279
279
double min_distance_squared = min_distance * min_distance; // For cache.
280
280
double angular_delta_limit = Math::deg_to_rad(2.0); // If the delta is too large, the results before and after iterating can change significantly, and divergence of calculations can easily occur.
0 commit comments