21-05-2021, 07:28 AM
(20-05-2021, 11:26 PM)timconkling Wrote: Is this some order-of-operations thing? Like, maybe the Obi simulation is running after the FinalIK simulation?
If I recall correctly, Final IK is updated in LateUpdate() by default. Obi is updated in FixedUpdate() (if using ObiFixedUpdater, which is the default).
So Final IK will adjust bones after simulation has taken place, every frame. This will result in Obi using the original, unmodified bone positions. What you want is the exact opposite: for Final IK to update bones before simulation, so that its output can be used by Obi.
The best solution is to manually update Final IK at the beginning of each physics step. To do this, subscribe to the solver's OnBeginStep event, like this:
Code:
obiSolver.OnBeginStep += UpdateFIK; //<--- do your Final IK update in this function.
kind regards,