Physical Rope Simulation

How can this be implemented in an engine, and if it is not possible, will there be such physical tools in the future for physical simulation of assets in this way? In the Cryengine it is called that. “physicaly simulated ropes”

1 Like

Hi didzey, thanks for your question.

Unfortunately it is not currently possible to simulate ropes, but we are actively working on a number of features which will make it possible.

The NVIDIA Cloth Gem was released in an experimental version in 1.23 and this continues to be a major area of development activity for us. The experimental version does not yet support environmental cloth interacting with PhysX colliders, but that is in the roadmap, as is exposing a simple interface which will allow developers to utilize the cloth backend in a custom fashion. When those features are complete, cloth would offer one potential approach for simulating ropes.

We also have work going on currently to expose PhysX joints, which would allow a rope to be simulated using a collection of joints. Our roadmap also contains articulations, which are an alternative approach for robustly simulating tree-like joint hierarchies (which could include ropes). We also have a bunch of work already completed and more planned to improve the editor experience, which would include nice workflows in the editor for setting up ropes and other jointed structures.

I hope that helps with your question. Please let us know if you have any more questions.

Best wishes,

David

3 Likes

David, Thank you, this is a very good and detailed answer! when will approximately additional physics functions be implemented and released?

Hi didzey,

I can’t comment specifically on timelines, because they can change due to unforeseen factors, but both cloth and joints are very high priorities for us based on what developers have been asking for, and they are both being worked on actively right now.

Best wishes,

David

2 Likes

super! Thanks! Then we are waiting!

I’m updating the post. We need to understand whether it is possible to make a rope out of the tools that are available for use?

1 Like

Yes it is, but it depends on what your purpose of the rope is, you can make rope for say a hanging sign, but I am not positive if you can make rope for something like a fishing rod’s line.

1 Like

I haven’t tried any of this, will play with it today. To be clear, I don’t know if or how well any of the following will work, but they are approaches I would try.

If you think of actors as any asset that has a rig, and not just animated characters, some possibilities open up.

Rig the rope with a chain of bones in your DCC application, export it as an actor, and turn it into a ragdoll. If you want a hanging rope, I think you can exclude the root bone from the ragdoll. This is probably the most straight forward method conceptually. You might have to add a lot of bones to make it look sufficiently “ropey”, and setting up ragdoll limits and capsules can be tedious. If you want some object hanging from the end of the rope like the hooks in the example, you can add it to the rig and give it a heavier mass than the bones in the rope.

Turn the rope into a cloth as a mesh asset. You can use a vertex color stream to exclude the vertices at one end of the rope from the simulation. The hard part will be getting the rope to behave like cloth but maintain its volume. I’m not sure how well this will work and it might require a lot of trial and error with the stretch, compression, stiffness, bend, shear, etc. properties. To hang something from the end, create a closed loop at the end on the rope. Add some bones to the hanging object so you can export it as an actor. Make it a separate entity, fit it in the closed loop of the rope, give it a PhysX rigid body, and add cloth colliders to it in Animation editor to try to affix it to the end of the rope.

Lastly sort of a combination of the previous two ideas. Use the ragdoll method with fewer bones, but add a cloth component on the rope mesh and see if and how the cloth plays with a ragdoll driving it. My thinking is that the cloth, possibly with the help of motion constraints can smooth out the look of the result of the ragdoll simulation.

For a fishing line I wouldn’t try to simulate a rope at all. When you cast a fishing line, it flys out in a nice arc. I would try using a PhysX Ball joint to connect the lure to the tip of the pole, and enable and disable the joint as situations dictated through script. I would otherwise treat the lure as a slow moving projectile when casting. To draw the line, I would see what could be done modifying the Lightning Arc gem to draw arcs of various curvatures or a straight line between the tip of the pole and the lure depending on whether the lure is being cast or the amount of ‘tension’ on the line. I’d come up with some hacky way to work out tension based on the velocity of the lure.

2 Likes