Dynamic Rope/Cable Plugin

Unfortunately, this weekend turned into to being my sick days. Sorry everyone but I’ll have to push the video and update to next week.

Hi everyone!

I have updated the plugin code to support UE 4.7 and will be releasing the next update shortly. Also, the next update will have the new Collision Settings property Widget which will make collision filtering much easier. Here is a screenshot from 4.7 with the WIP Collision Settings property widget:
60d94f22a2d16997258569297b5582b50d019775.jpeg

Also, as i’m sure many of you have seen the nVidia FleX technology and have probably tested it. The physics and constraint algorithms I use in the plugin are identical to those used in FleX, though their system only runs on nVidia GPUs, but this plugin runs on nearly every platform supported by UE4. I have plans to further expand this plugin to support cloth and other constraint types possibly even liquids! All a simple matter of time.

Much more to come very soon.

Update 1.5.2 released! Which includes these changes:

Updated to 4.7.1.
Implemented property widget for easy customization of collision settings/filtering.
Completely reworked collision code, unified static and dynamic collision. Now a single concept.
Collision with dynamic objects improved greatly.
WIP SplineRopeComponent added, though not yet fully tested in 4.7.
Collision Shape property disabled for this version, the whole shape collision code is still WIP so the shape defaults to Sphere.

Balancing physics objects on ropes is much more realistic in this version, one step closer to proper tension-force transferring.

I’m hoping to have the first version of the new physics algorithm and constraint system in the next update which will allow for a broader range of objects to be simulated.

Purchasing this later today!

looks interesting

Awesome plugin. I will more than likely buy this once it goes onto the marketplace. It would be even better if Epic games update their existing cable component to have collisions.
What I would like to know is the usage for the plugin for me would be that the player could pick up either end of the rope and attach it to an object, then do the same thing with the other end. If the player walked any further than the rope length, then the player would not be able to walk any further.
The most important part is being able to pick up the end and attach it though. Would this be possible with the plugin?

Thank you for creating this awesome plugin good sir :slight_smile:

Yes, everything you described is completely possible. No ETA on when Epic will add support for Plugins on the Marketplace, hopefully soon though.

Is this different to the rope/cable in the sample content’s Physics section?

(number 1.2).

I have been using this one for a cable. It also has collision etc…

Very different in fact, that example uses PhysX to create RigidBodies with Distance and Angle constraints between them for every bone. This works great for chains, but a rope has stiffness and elasticity which must be simulated. My system uses the same approach as FleX does, it uses “particles” and constraints to accurately simulate elastic behavior. Giving you a rope that can stretch and transfer that stretched force to other objects.

In the next major update, I’ll be redoing the system in my plugin to use the Unified Physics approach like FleX. This will open the door for creating cloth, fluids and more without being restricted to nVidia hardware.

Thanks for explaining.
Right, I did not check for elasticity and force transfer from that. It might be possible by using the linear stiffness and softness of the constraints in the content examples rope. If I do not get it done there, then +1 for your rope.
Elasticity is important for ‘how it moves’ games.

is there any progress on this and the UE4 marketplace?
I still have my $30 for some shopping :slight_smile:

Just waiting on Epic to do their thing, as soon as they add the features needed for C++ plugins this will be on there. Hopefully very soon :wink:

Hi, great looking work!

Does your rope support the ability to dynamically change the length of the rope without resetting the simulation? I’m coming from Unity and had a rope solution that was similar to QuickRopes, except I could move my endpoints and as they moved, new segments would be added, to simulate the rope spooling out (or subtracted for reeling in). Your solution looks like it would be perfect for me, if it could additionally do that.

Also, do you support applying a force at a specific segment in the rope rather than via a radius? Or would that be best accomplished by using multiple ropes?

Hi Isock,

First off, I’m very sorry for not replying sooner. I never got notified of a new post for some reason.

For the dynamic length question: It does not currently but I don’t see why it could not. Should be straight forward to add such a feature.
For the force question: Again, currently it does not but this can be added very easilly.

I made these as feature requests and I’ll add them in the next version.

We have been getting ready for releasing the next version of this plugin, which has a nearly complete redesign which takes the same approach as nVidia’s FleX. We would like to ask for your feedback on how the next version should be distributed:
Should we take the current approach with Binary only releases?
Should the UE4 plugin bit be open source and the actual rope physics code in a separate binary?
Should the whole project be open source, to licensees that is, and up on a private GitHub repo?
Any suggestions on another approach?

Do note that this project is not going free, we simply want to give licensees the best experience possible.

We would also like to post this plugin to the Marketplace and that seems to require source for the Plugin itself to be included…

Thank you.

Hi,
I am still very interested in the dynamic rope.
Is it possible to create a Blueprint for it, or do you require engine changes for it?
If you code it in a way that makes it possible to create a blueprint, then you could sell the rope as a blueprint on the marketplace.

Otherwise, I would go with binary release only.
Looking that it took you quite some time, I doubt anyone will be willing to get their head into what seems to be quite a bit of code.
I think anyone buying it buys it as another component for their project and just wants to use it out of the box (like me)

As a feature suggestion: make it possible to actually switch things like elasticity off for performance reasons. When someone buys it then, they can switch advanced behavior off and on depending on the their demands.

One more question: Is it possible to attach it to normal static mesh actors. Say I open a new project, drag 2 narrow capsule blueprint into the scene, one for both ends of the rope, and then want to hang the over a shape cylinder so that the narrow capsules are dangling around. Is this possible? Or do you need sockets?

I vote for open source to licensees - that both makes it more flexible for your customers and can take off some of the support burden (knowledgeable users will help others and can cut down future compatibility work for you).

Thank you both for you feedback.

PolyPlant:
There is no way to make this plugin BP-only due to its complexity and usage of raw PhysX classes. Binary is convenient for most users but the latest Plugin requirements for the Marketplace require the source for at least the front end of the plugin.
Regarding the possibility of attaching two Actors with the Rope: Currently the rope does not transfer its tension forces to attached Actors but this has been a highly requested feature and is currently being WIP.

n00854180t:
My thoughts exactly, I love how involved the community has been in developing UE4.

Our current favored approach is to have the UE4 plugin be open source to everyone and have the heavy physics code be in a “ThirdParty” dll and have that dll code in a Private Licensee only repo on GitHub.

Have you talked to Epic about your plugin lately? I see that they have enabled plugins on the marketplace now.

Yes, we are getting things ready for the marketplace. But our plan is to get the latest build and source access to all existing licensees first to make sure everything is setup correctly in the projects and GitHub. Shortly after that we will have this plugin submitted to the marketplace.