Help Skin constraints + "grounder" IK issues - Printable Version +- Obi Official Forum (https://obi.virtualmethodstudio.com/forum) +-- Forum: Obi Users Category (https://obi.virtualmethodstudio.com/forum/forum-1.html) +--- Forum: Obi Cloth (https://obi.virtualmethodstudio.com/forum/forum-2.html) +--- Thread: Help Skin constraints + "grounder" IK issues (/thread-2943.html) |
Skin constraints + "grounder" IK issues - timconkling - 20-05-2021 I'm trying to get a skinned cloth simulation working on a character that's using the FinalIK "Grounder Full Body Biped" component. The Grounder component pulls the character's pelvis and legs down so that she's properly "grounded" on uneven and sloped surfaces. But this means that the character gets pulled away from her gown when she's on those surfaces. Here's what things look like "ungrounded": [attachment=1028] And here's with the grounder component enabled: [attachment=1027] If I disable ObiCloth, the gown does get skinned correctly. (It looks absurd, of course - but you can see that the waist of the gown doesn't get hiked up above the character's waist.) [attachment=1029] Is there an obvious solution to this issue? Is this some order-of-operations thing? Like, maybe the Obi simulation is running after the FinalIK simulation? RE: Skin constraints + "grounder" IK issues - josemendez - 21-05-2021 (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, |