Obi Official Forum
Dealing with higher mass objects - Printable Version

+- Obi Official Forum (https://obi.virtualmethodstudio.com/forum)
+-- Forum: Obi Users Category (https://obi.virtualmethodstudio.com/forum/forum-1.html)
+--- Forum: Obi Rope (https://obi.virtualmethodstudio.com/forum/forum-4.html)
+--- Thread: Dealing with higher mass objects (/thread-3654.html)



Dealing with higher mass objects - Milionario - 18-11-2022

Most example scenes have objects of relatively low mass, how to increase the rope's strength to deal with objects of higher masses like 100 or more?

From what I see rope thickness directly impacts its behaviour and power, but why is it exposed on the blueprint and not on the rope object itself? Can't change thickness on runtime?

Is it possible to change the mass of the particles too?


RE: Dealing with higher mass objects - josemendez - 20-11-2022

(18-11-2022, 11:35 PM)Milionario Wrote: Most example scenes have objects of relatively low mass, how to increase the rope's strength to deal with objects of higher masses like 100 or more?

Hi,

All existing iterative physics engines have trouble dealing with objects of wildly different masses. This is why its common knowledge to avoid having mass ratios larger than 1:10. You can try this in any physics engine, for instance in Unity's: Try placing a 1000 kg rigidbody on top of a 1 kg rigidbody, and watch them dance Guiño. Spoiler:

[Image: boxes.gif]

Solutions to this:

- Increase the mass of the rope. You can do this in the path editor, select all control points and set their mass to a higher value.
- Use more substeps. The more substeps you use, the higher-quality the simulation, and the larger the mass ratios it will support without spurious stretching. For ropes you can use quite a lot of substeps (around 16-20 is not uncommon) without issue. See: http://obi.virtualmethodstudio.com/manual/6.3/convergence.html
- Reduce rope resolution: the less particles a rope has (in general, the less bodies any system has) the faster it will converge to the correct solution, without unwanted stretching.

(18-11-2022, 11:35 PM)Milionario Wrote: From what I see rope thickness directly impacts its behaviour and power, but why is it exposed on the blueprint and not on the rope object itself?

Thickness changes the amount of particles in the rope. As a result, convergence speed (that is, how resilient the rope is to stretching under large loads) changes. Since changing thickness affects the amount of particles/constraints in the rope and their placement, it's a property of the blueprint, not the rope itself.

(18-11-2022, 11:35 PM)Milionario Wrote: Can't change thickness on runtime?

Thickness no, particle radius yes. Thickness affects the distribution and amount of particles in the rope, since it changes the radius of the particles while keeping the distance between particles proportional to their radius. So the smaller the thickness, the more particles the rope needs to have. Since this fundamentally changes how the rope is built, it must be a property of the blueprint and cannot be changed at runtime.

You can however change the radius of the particles at runtime, without affecting the amount of particles per length unit (resolution). You do this just like any other particle property.

(18-11-2022, 11:35 PM)Milionario Wrote: Is it possible to change the mass of the particles too?

Yes of course, both in-editor and at runtime. In-editor you do this in the path editor, at runtime you can write data into the solver's invMasses array. See:
http://obi.virtualmethodstudio.com/manual/6.3/scriptingparticles.html