Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help  Rope physics unstable
#4
Tethers were used in ropes up to Obi 5.0. With the inclusion of substepping (from this article: http://mmacklin.com/smallsteps.pdf), we found they were no longer needed in most cases -as substepping boosts convergence enormously- so we removed them. Tethers had a plethora of associated issues that made their use cases quite limited:

- You can't change rope length, or cut it, while using tethers.
- You can't dynamically attach/detach particles while using tethers.
- They only work in pendulum-like cases, in which the object attached to the rope and the anchored point of the rope lie in a straight line. Pulleys and similar systems don't benefit from tethers.
- Sections of the rope in-between tethers would have too much slack if not enough distance constraint iterations were used.

The mention of ropes in the manual is a leftover from the 4.X manual, so it should not be there. Removing it.

Quote:I don't believe distance constraints are the solution to my problem, i believe they are the source, and i believe that your tether's were designed to fix exactly this problem;

Distance constraints are the basic building blocks of ropes. Without them , the rope would lose all structural integrity and just collapse into a point. Increasing the amount of distance constraint iterations will solve your problem, however using more substeps is even more effective.

Tethers rely on a pre-process of the rope, so you can't have topological changes of any kind while using them. This makes them really limited as I just explained. The problem they used to solve is no longer a problem when using a few substeps. If this is not possible/ideal in your case, hearing more about what you're trying to accomplish will allow me to help further.

Quote:Every now and then, my console throws a "Look rotation viewing vector is zero" at me, it doesn't seem to cause any problems, its not even classified as a warning or error in the unity console, its just a regular message like that of Debug.Log(), but it only does this when i'm using an ObiRope;

This message is usually thrown by a quaternion that has been made to look in a direction that's the zero vector. Quaternions are not used in ropes simulation as rope particles do not have any orientation. Are you using rods instead by any chance?


Quote:I also, every now and then, when increasing my rope length, get a IndexOutOfRangeException sub scripted with "Obi.ObiActor.SwapWithFirstInactiveParticle (System.Int32 actorIndex)(at assets/Obi/Script/Common/Actors/ObiActor.cs:420) error, again it doesn't cause any immediately noticeable problems, is it something i should be concerned about?

This is something to be concerned about, as any out of bounds array is considered a bug. Can you give steps to reproduce this?
Reply


Messages In This Thread
Rope physics unstable - by earagon088 - 23-07-2020, 10:56 AM
RE: Rope physics unstable - by josemendez - 23-07-2020, 12:23 PM
RE: Rope physics unstable - by earagon088 - 03-08-2020, 07:22 AM
RE: Rope physics unstable - by josemendez - 03-08-2020, 08:22 AM
RE: Rope physics unstable - by earagon088 - 03-08-2020, 10:57 AM