VICODynamics: a particle based Soft-Body physics Plugin

Few quick questions before I setup a sample for you:
Are you using the Launcher version or GitHub version of the plugin? If GitHub, what branch?
What UE4 version?

Regarding having attachments in VDDynamicRope: I wish I could have them like in VDRope, but because the particle indices change on rebuild those attachments would not be valid.

Great to hear! I am using Launcher version of plugin with UE 4.16.3. I can get the GitHub version if necessary.
I wouldn’t mind having to reassign the attachment indices manually each time ( since if you have to do the Rebuild function anyway, it would not be a big deal to calculate the particle indices), but it is not critical for my project : I can split up the rope into two, one VDRope with the particle attachments, and one VDDynamicRope continuing from the end of that.

Would it be possible to dynamically slice a rope using this system?

That should certainly work!

I believe I’m getting you GitHub access via email, correct?

Yes! In the upcoming Feature Update 2 (already on GitHub, this month on the Marketplace), you can ā€œbreakā€ a Rope into arbitrary pieces at runtime. You can even break those larger pieces further if they have enough segments in them.

Will Feature Update 2 come out at the same time as 4.17 support? I’m eagerly waiting for the new update before I begin my project.

If I start a project with the current rope will the update cause any conflicts?

No, the 4.17 update is a hotfix release. Feature Update 2 is aimed towards the end of the month. Both, the Showcase and Examples, projects are now done. Just a tutorial video left before release.

Yes, it may. Mostly the attachment logic and the removal of VDTensionRopeComponent which has been deprecated.

New user to the plugin and had some simple issues I hope that don’t have answers in the forums.

Rope bend setting to 1.0 the rope still easily bends?
Also a resistance to stretch of 1.0 does not help. Can you make a rope that resists bending unless exteme force?

The parameters have no docs anywhere I can find other than Tool tips which leave much to be desired. Mass, segments, etc. can you provide some docs and relationships between these public parameters? Thanks

This is a pretty common question, which I’ve answered a few times now and should start making an FAQ :slight_smile: . The short answer is you cannot get it perfectly rigid and getting bend constraints to withstand high forces will take a bit of work and even then it won’t be perfect. Not to mention the performance hit.

The long answer is that the core algorithm behind VICODynamics is an iterative soft-constraint solver. Because of this, rigidity is extremely hard if not impossible to achieve. And this works great for the purposes of this plugin, hence it being a soft-body plugin/library. You can try and get less stretching/bending by increasing the Simulation Iteration property and the Constraint Iteration property in Project Settings -> VICODynamics Settings. This will help, but at the cost of performance.

There are other tricks you could try to achieve the desired result like adding diagonal constraints along the rope to a surface parallel to the rope (this surface can be invisible to the player, obviously) . Never tried this trick, but it should help.

Regarding better documentation, absolutely! It is needed and I need the time to compile it together. I will get it together, but might be later rather than sooner. In the meantime, I’m happy to answer any questions!

Feature Update 2 build has just been sent to Epic!

And here is a small shot of what will be shown off next week:​

And it is live! Feature Update 2 is out! Check out the first post for a rundown and a Showcase video showing off some of the awesome new features in this update.

Does Ropes support two way collisions? For example if I want to make walkable ropes which bends beneath character.

Yes, it does support two-way collision. However, in this case where a character, assuming ACharacter base, is used it will not work as desired because ACharacter uses PhysX SceneQueries to fake its ā€œphysicsā€ interactions in the level. And because the rope is not a PhysX rigid body, ACharacter will completely ignore it. What you could do, and I’ll test this as well, is have the rope(s) support static mesh ā€œplanksā€ and have the ACharacter walk on them. This should transfer the forces correctly between the two systems.

Hope that helps

Thanks fo answer.
I’ve already implemented plank-based ropes, so I’ll have to think if it is some advantage to use additional solution.

Hi. Is there a way to record a rope in a sequencer as an animation?

Do you mean record the simulated particles once and playback in sequencer? If so, that is certainly something that I’d be interested in adding! I had an additional request to allow for recording the simulation per-component and being able to play it back at runtime for cinematics.
Will definitely be looking into both of these features!

Hi.

Before all, congrats for this plugin. It is really amazing :).

I have a question about collisions. I need to know the hit points with the rope. Is there a way to get them?

Thank you very much.

I will explain why this could be useful. In my case I have a very small scale, the rope is 1 unreal unit in diagonal, in order to simulate collisions very precisely I had to enhance drag coefficient - it obviously slows down the rope movement, but if recorder by sequencer, it could be played with higher anim rate.

It could be a killer for predefined animations, both for precision and performance cost (just anim).

Thank you!

It is coming in the next patch! I think a week or so left, but will be on GitHub sooner.

Ah, interesting! Absolutely a niche but valuable use-case. I’ll definitely be adding a way to do this soon. Thank you for the suggestion!