Dynamic Rope/Cable Plugin

With the way the rope is setup now you can chain the rope components together. But to break the rope up properly I would need to change how I create the Index Buffer but it is certainly possible.

Did a proper optimization pass after putting the ropes into our AAW3 Arena.
Here are the results:
Please note that this is with 12 ropes that have 20 segments each and 8 sides. Solver Iterations are at 4 and Substep Time is at .005 with Collision Enabled

This is the total time for all 12 ropes in total. (Blue is the Simulation/Collision and Purple is the Rendering)

This is how much simulation time an individual rope takes:

I’m honestly very happy with the performance, and I think there is still room for improvement.

Just to clarify before i purchase - This is a standalone plugin that i can just put into the Plugins directory just like the Substance plugin without having to build the engine source or anything like that right?

And does the purchase include updates for support for the latest engine versions when they are released?

Thanks in advance!

Yes, that’s correct. This is a drop-in plugin that is already built.

Yes, the purchase includes any future plugin updates which in turn includes engine support as they are released.

Quick update:
Got a Mac finally so I’ll post the 1.4 update with Mac support today if setup does not take too long.
The update will also include a few new functions which were added from feedback. And the rope no longer resets when tweaking properties since a reset is only needed after the Segment count has changed.

In the works is the ability to specify the collision shape on the rope segments to eliminate gaps between segments. This will be in 1.5.

Also the ability to use a spline to specify the start path of the rope will be added and can be used to wrap the rope around or through an object. These will most likely be in 1.6 but i’ll try for 1.5.

Any chance my “issue” will be solved with this or version soon?

Not in 1.5 because it needs refactoring of the collision properties but in 1.6 for sure.

Update 1.3 released!

Added Mac binaries, now works on Mac! As promised.
Added GetTrueLength to calculate the length of the rope including stretching.
Further improved SkinnedRope Properties.

Mac binaries have been built and tested. Everything looks great! From now on there will be a Mac build included with every update.

The next update or two are shaping up to be very big! New features and improvements.

And thank you everyone who has found my work useful! Please post any creations you’ve put together, very excited to see what everyone has done with this plugin.

You can get the Plugin here: https://www.vicogamestudio.com/development-blog/item/dynamic-rope-cable-system-for-ue4
If you already purchased it then check your email for the new link.

Very nice. Keep on working, this should just take the place of the cable component with a node that turns collision on or off.

Thank you!

That is actually in the next update, SetCollisionEnabled node.

Here is a video showing off this Rope Plugin in our Game, AAW3:

All the ropes are using the SkinnedRopeComponent with Collision enabled at 2 Solver Iterations and .01 for the Substep.

Here is a quick progress update on the next version of this plugin.

Collision Shape options added for the rope segments. Previously only the sphere shape was available which created gaps in the ropes collision. But now you can also select capsule and box as the Collision Shapes which nearly eliminate the gaps.

Here is the original sphere collision shape, this one only created collision on the segment end points which means that an object could go right through the gap between them:

Here is the Box collision shape:
03cc7589a6215bbba6bbf5c6d0f12adcee6ce3d7.jpeg

And finally the Capsule collision shape, this one is nearly seamless:

In addition to this new feature, you will now be able to set CollisionResponses for StaticCollision and DynamicCollision separately which will allow you to eliminate unwanted forces from the rope on a Simulated Character but retain the Collision with the Characters Mesh(s).

These are all features suggested by the community. Thank you! And keep them coming.

Hi i just bought your plugin it looks amazing. Will you be making shot video tutorial on how to use it or PDF Im not a programmer so im not so good with coding? Also will i have to check the website to check for new updates or will i get an email notifications? I bought your plugin mainly for hanging vines but would it be possible to use it with long leafed plants/trees like banana tree’s leafs ? Also i dont know if this if built in but since im working on a very dense scene would it be possible to disable the dynamic collision thingy as the player moves away to save on the rendering time ?

Thank you for buying! I will post a video tutorial soon but I want to get a few major features put in first. In the meantime I’m happy to help you with any questions you have.

Updates are sent out via email.

Currently you can only use it for cylinder shaped objects but I will be adding a feature to allow for greater variety of shapes soon.

Yes, you can disable/enable collision and/or physics simulation at any time. Even only on some parts of the rope/vine if needed.

Could it be automated like LoDs ? or can you just only manually disable them?

That is completely up to you since you will need to create a Blueprint with a RopeComponent and manage it there. I can see a trigger with Overlap events managing the Collision on the rope, for example.

Update 1.4 is released!
Changes include:
Added CollisionShape Property to control the rope segment collision. (Sphere, Capsule or Box)
Implemented Collision Shape Scaling as the rope stretches to not introduce gaps between segments.
Differentiated Static and Dynamic collision, now CollisionEnabled and CollisionResponse are split into Static and Dynamic variants. This allows for fine tuning of character collision.
Improved Collision Projection algorithm to reduce spikes in corrections when penetrating other Actors.
Fixed RenderDebugData bug that created a memory leak due to DrawDebug* calls.

Also, a getting started video is nearly complete.

If you have not yet purchased this plugin, you can get it here: https://www.vicogamestudio.com/development-blog/item/dynamic-rope-cable-system-for-ue4
The purchase process has been greatly improved!

Finally got the Getting started video put together!

Apologizes for the irregular speech, it’s due to an old injury.

Please post topics you would like me to cover more in-depth. I know making a grappling hook is one.

And as always, feedback welcome!

Great tutorial, looking forward to the next one!

Thanks for the tutorial - I would like to see a walk-through of attaching the rope/cable ends to bones on a mesh (preferably animated)

I have a few things i would like to use this plugin for but the main use i have for it is as hoses/cables on a skeletal mesh which move and swing with the mesh, similar to say ‘Dog’ from HL2.