Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
problem with dynamic attachment
#1
I have a big of a problem, the rope is connected to a sphere as you can see in the video and i have a script on the sphere that allow me to move it around, the end goal is to just make it swing as you can see in the video, but when i drag the sphere too much, it looks like the rope is disconnected and it freaks out, this only happens when the i assign the attachment type to dynamic, in the case of static, it works fine but again, the whole goal is to make the sphere swing left and right so it should be dynamic

Reply
#2
Hi,

Don't force the position of the sphere (this is a basic rule of thumb when dealing with physics in any engine) as that basically bypasses physics simulation and will only work with a static attachment - since it bypasses simulation too.

If you want to drag the sphere in a way consistent with physics, use rigidbody.AddForce to move the sphere towards the mouse cursor. Once the force you apply to the sphere and the one applied by the rope cancel each other out you won't be able to pull further, just like in a real rope.

kind regards,
Reply
#3
(03-04-2023, 03:33 PM)josemendez Wrote: Hi,

Don't force the position of the sphere (this is a basic rule of thumb when dealing with physics in any engine) as that basically bypasses physics simulation and will only work with a static attachment - since it bypasses simulation too.

If you want to drag the sphere in a way consistent with physics, use rigidbody.AddForce to move the sphere towards the mouse cursor. Once the force you apply to the sphere and the one applied by the rope cancel each other out you won't be able to pull further, just like in a real rope.

kind regards,
is there is a way for me to find how much is the force multiplier the rope is adding ? so like i can add the same exact amount of force to the sphere so nothing weirds happens in come cases
Reply
#4
(03-04-2023, 09:54 PM)Mickle Wrote: is there is a way for me to find how much is the force multiplier the rope is adding ? so like i can add the same exact amount of force to the sphere so nothing weirds happens in come cases

Hi,

You can access lagrange multipliers on a per-constraint basis, by accessing the "lambdas" array in each constraint batch. You can see an example of this in ObiRope.cs, ApplyTearing method. For information on how constraints are stored in Obi and how to access them, see: http://obi.virtualmethodstudio.com/manua...aints.html

However this is far too convoluted just for your use case imho. Clamp your force to a reasonable value, and just adjust the rope and ball masses accordingly so that the acceleration isn't huge (remember that a = F/m).

kind regards,
Reply