08-01-2019, 09:31 AM
(This post was last modified: 08-01-2019, 09:32 AM by josemendez.)
(07-01-2019, 07:48 PM)CommonFruit Wrote: Hi,
First of all I appreciate you sticking with me though all this. I created a test scene to try to help isolate this problem. In my test scene I only have my character with an animator component and a rope that I created using Create->Obi->Obi Rope(fully set up).. I then used 2 pin constraints to attach each end of the rope to obi colliders on her hands.
In the following image the update mode of my animator is set to "Animate Physics" (I have no Update Physics option). My rope solver update mode is also set to "After Fixed Update" however I've tried all combinations of update modes for the animator and solver and nothing seems to fix the issue. In ObiActor.cs my "OnSolverFrameBegin()" method is completely empty so there's nothing to move to "OnSolverStepBegin()".
To be sure, I disabled all constraints on my Obi Rope except for Distance and Pin. I set both of these to "Sequential" and increased them to 50 iterations in my test scene. This didn't seem to bring the end of the rope any closer to it's pin. In this image you can see the blue dotted line showing the distance between the particle and the pin constraint. Maybe I'm fundamentally misunderstanding the capabilities of the pin constraints but it seems like they're mostly successful but just delayed by a frame for some reason.
This delay on the rope isn't super obvious in real-time, however it's very evident in screenshots and can be noticed in real-time during some attacks/animations. I'd really like to solve this if it's a bug, however if this delay is part of the intended behavior or is created by some technical limitation, maybe there's another work around?
Thanks, Logan
Hi Logan,
All along I thought you were using fixed particles, not pin constraints. Pin constraints are intended to enable two-way coupling with rigid bodies, and do have a slight delay (since they are reactive, they only act once there's some separation, and they are timestep dependent).
Try using fixed particles/handles instead. They will position the rope particles much more accurately, as instead of using forces to position the particles they use transforms.
See:
http://obi.virtualmethodstudio.com/tutor...ments.html