Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Obi lacking option to assign mass to particles
#1
Currently, I am trying to suspend a heavy object (like a car) by a cable.

If the object is light the cable behaves as expected. However if the object is heavy, it barely exerts a force as though the cable did not exist in the first place.

My first instinct was to increase the constraint strength, though no such option exists. I figured the forces applied to constrain two particles together are the maximum they can be to have convergence without oscillation.

Therefore the problem must be that the particles composing the rope are themselves too light to carry the cable. Great, so I just need to increase the ropes' mass to match the car...

... Wait, there is no option to increase mass...? So, you couldn't simulate a heavy chain that flattens down everything it sits on, in contrast with a light rope that can be easily moved?

Do I need to manually assign mass to each particle via script or is there some particle mass inspector field missing from my version of ObiRope?

Otherwise, a cool asset!  Interesante
Reply
#2
(19-02-2020, 06:21 AM)Hatchling Wrote: Currently, I am trying to suspend a heavy object (like a car) by a cable.

If the object is light the cable behaves as expected. However if the object is heavy, it barely exerts a force as though the cable did not exist in the first place.

My first instinct was to increase the constraint strength, though no such option exists. I figured the forces applied to constrain two particles together are the maximum they can be to have convergence without oscillation.

Therefore the problem must be that the particles composing the rope are themselves too light to carry the cable. Great, so I just need to increase the ropes' mass to match the car...

... Wait, there is no option to increase mass...? So, you couldn't simulate a heavy chain that flattens down everything it sits on, in contrast with a light rope that can be easily moved?

Do I need to manually assign mass to each particle via script or is there some particle mass inspector field missing from my version of ObiRope?

Otherwise, a cool asset!  Interesante

What version of ObiRope you're using? In 4.X, you can assign masses to individual particles directly, using the particle editor.
http://obi.virtualmethodstudio.com/tutor...iting.html

In 5.X, you can do the same via the rope editor, by selecting rope control points and assigning masses to them. The mass of each control point is then interpolated automatically to all particles around it:
http://obi.virtualmethodstudio.com/tutor...setup.html
Reply
#3
Ah yes, this solves it. Works like a charm now.

I presume this mass data is stored inside the Blueprint objects? 

I'd recommend exposing this data so that it is visible in the inspector. I'd say that most Unity users will be familiar with the inspector, and that custom scripting data is stored in either components on prefabs or in scriptable object assets. This would allow users who are unfamiliar with your asset (like myself) to work with your physics engine using an interface they are familiar with, but then gently invite the user to try the graphical spline editor tools you provide. To be honest, it never once occurred to me that the path editor could be used to edit particle mass. Though now that I am aware it does make sense.

Thanks!
Reply
#4
Hi Jose!
Would you describe how masses distribute between particles? (I belieleve it is useful to add this info into documentation)
For example I have rope with two control points: start (mass = 1) and end (mass = 2). What it means?
  • total mass of the rope is 3 and this mass proportionally distributed between all particles ?
  • total mass is 1 + mass_of_all_particles_between_start_and_end + 2 ?
  • another option
Reply
#5
(19-11-2020, 01:48 PM)Elegar Wrote: Hi Jose!
Would you describe how masses distribute between particles? (I belieleve it is useful to add this info into documentation)
For example I have rope with two control points: start (mass = 1) and end (mass = 2). What it means?
  • total mass of the rope is 3 and this mass proportionally distributed between all particles ?
  • total mass is 1 + mass_of_all_particles_between_start_and_end + 2 ?
  • another option

Hi Elegar!

It's already in the docs, in the part where path control point properties are described:
http://obi.virtualmethodstudio.com/tutor...setup.html
Quote:each control point has several properties that are passed on (via interpolation) to the particles.

so in your case, if the start control point has mass 1 and the end control point has mass 2, the particle exactly in the middle would have a mass of 1.5. Your second option would be the correct one.
Reply