VICODynamics: a particle based Soft-Body physics Plugin

is it possible to tweak this to produce permanent deformation?

Yep, that can be setup. At any point you’ll be able to grab the positions of the vertices and apply them to a ProceduralMesh. Or did you mean freeze the cloth object itself in the deformed state? That can also be doable.

I’d love if you could reply to my email concerning the crashes. It’s kinda urgent.

What email did you use? I have not seen anything from you recently…

Just found your emails, they got dumped into a folder for some reason. My apologies for the mishap, I replied to your email just now.

Hello. I would like to know if this will work on new Xbox, PS4 and possibly Nintendo Switch?

I can confirm it works on the Xbox One (Xbox One X should be a yes too, but I’ll get kits later to properly test), PS4/Pro works, and I should be testing on the Switch soon.

Great! Can’t wait :smiley:

Hello! . Me and my team just loved your Dynamic Rope Plugin and we would like to know if is there any news about the SoftBody you mentioned below. We are using the plugin dowloaded from marketplace only.

**Features coming in the next Update:

  • Procedural Cloth - allows for creating any sized rectangular sheet of cloth: [Complete]

  • Cloth from Meshes - allows for using any Static Mesh as a guide for constructing a Cloth object: [Nearly Complete]


Collision Tests:

  • Vertex Painting Attachments - allows for using the Vertex Paint tool to designate certain Particles as ā€œattachedā€ or ā€œfreeā€: [Not Started]
  • Can use Skeletal Meshes for Ropes: [Nearly Complete]

**

Hi Murilo!

All of those features are complete and awaiting release in Feature Update 2. The only two things holding that update are:

  1. The Showcase project - Demos and shows off most of the features including a few big ones not listed here
  2. Tutorial videos - These were much demanded, and still are, so I’df like to at least cover how all of the features work and show some best practices.

Both of those two things are nearing completion, I wish I had a set date to post here, but I don’t. On the other hand, all of these features are accessible via GitHub now! Email vdue4@.com if you’d like access setup.

Let me know if I can answer any further question.

Hi. I have few problems with the system.
Just bought the plugin and looks promising. But I can’t find a way to have the rope break. Basically I want my ropes to be cut in half by projectiles that collide with it. Is it possible?

In my own project when I added a new actor with VDRope component, the rope is static, it’s not simulating at all.

Also your example project crashes in Standalone with the following message

I’m using UE 4.13

Rope breaking was added rather recently, a few months back, so the 4.13 build will, unfortunately, not have it. If possible, I’d recommend upgrading to 4.16 at least. As for having it break/cut by projectiles: certainly! The only thing that you’ll have to figure out is when and which particle to cut at. The collision events are not yet implemented, so the tricky part for now is figuring out which particle/segment to cut at and when.

Ropes being static means that the plugin failed to find and load the needed DLLs. What folder is the plugin in? Is your project Blueprint-only or with C++? Is the plugin from the Marketplace or from my GitHub repo? If my repo, what branch? Is the Engine from the Launcher or from GitHub?

The 4.13 loading was a bit picky if I recall correctly, but shouldn’t be too difficult to figure out.

The example project crash may be related to the above, but I’d need to see the full log to confirm.

Hey. I figured out the static rope part, flag ā€œAttach to Rigidsā€ is set to true by defualt in your component, once I unflagged this, it started working properly (i think), as it’s simulating now.

My project is in C++ and it’s from Launcher and your plugin is from marketplace.

Could you tell me how do I get the newest version of the plugin, what I need and when can we expect collision events? I mean if you already have particles with radius for collision detection then calling the delegate of OnComponentHit/Overlap shouldn’t be much of a problem right? All I would really need is the collision event at all, as I could take the position of cut from my projectile actor. And how to break/cut the rope off?

There are also 2 more things I want to ask. My game is in 3D, but it’s a 2D side scroller, meaning that gameplay-wise, the game is in 2D. Will it be possible to disable certain axis of movement just like with original UE4 physics you can turn on constraints and disable certain axis?
And is it possible to make the ropes behave a little more like actual ropes and not ā€œbungeeā€ ropes? They tend to strech a lot even with Strech Stiffness set to the max.

Also one more huge problem with this. I’m the guy from Youtube that asked you about how Vico Dynamics handles slowing down time (through global time dilation) and you provided a video sample showing that it works fine, yet in my project it gets messed up just like original PhysX :/.
Is it something that didn’t get fixed in 4.13 version?
Here is link to the exact comment on your video: https://www.youtube.com/watch?v=lZt4gpF2NLk&lc=z13cgzwycqvkctf0x23edpp4smeosn2sd

I can provide additional info and a video of the problem if you desire.

Aha, yes the AttachToRigids does not use a filter so it can grab volumes unintentionally. I’ll make a note to get that addressed.

Right, 90% of the prerequisite collision event logic is already in. The biggest bit is getting it hooked up and tested, but specifically tested with the multithreaded build of VICODynamics where thread issues may arise.

Yes, locking/constraining to a 2D plane is supported. Again, this is a feature that was added after the 4.13 build.
You can reduce rope stretching in a couple ways: increasing the Simulation Iterations in Project Settings -> VICO Dynamics (this will impact performance based on how many VD* components are in the scene) and you can increase the Constraint Iterations count there along with the Min Constraint Distance property in the VD* Components, it’s in a drop down Advanced section (this may also impact performance, but not too much).
Do note though: The ropes will never be fully rigid, the underlying algorithm is ā€˜soft’ hence it being a soft-body physics system.

Right, I remember! That fix also falls after the 4.13 builds.

To get the latest version now, you’d have to upgrade to 4.17, at least 4.16, and use the plugin from my GitHub repo. Specifically the Feature-Update-2 branch. The update will be released to the marketplace very soon, just the showcase demo project and tutorials are to be finished.

I realize it is a pain to have to update to use the latest features, but because UE4 has been changing its API quite a lot lately I’ve had to update the plugin along with it. And being a one-person project, maintaining support for previous engine versions while backporting new features is not realistic.

Cool! Thanks for the answers.

Could you tell us how ā€œsoonishā€ will the update come out to marketplace? Like 1 week/1 month/ 3 months? We are kinda on a schedule, we plan to finish the game in about a year, so the sooner I know the better we can plan this out. If it’s a matter of 1 month then we can certainly adjust our plans to that. If it’s about 3 months then we will probably have to consider some other solutions, altough this would kinda suck.

As for UE version, we plan to migrate to a higher version anyway, because we really need that Nintendo Switch support ;). We will probably move next month to 4.17.X if Epic releases a hotfix version, because right now I’m simply afraid of all the bugs that might become present in 4.17.0 release.

1 month, hopefully sooner. But like I said, the update is done feature-wise and is available on GitHub now.

I just got a Switch kit, so I’ll be testing on it very soon! :slight_smile:

We’re waiting then ^^ as for GitHub, I might try, but I assume you have to build the engine from source if you want to use GitHub version?

Greetings. Playing around with the rope, looking good so far. My problem : With basic VDRope I have the Attachment, particle attachments options. But they are not visible in VDDynamicRope? (Trying to change length, width of the rope on the fly. )

Right, VDDynamicRope handles that differently since it recreates itself on resizes. This allows it to add or remove particles, whereas the VDRope cannot do that. Try using RebuildRope* functions in VDDynamicRope to resize it on the fly. Let me know if you’d like me to go into more detail.

Ah, Rebuild Rope Attached, ok.

[EDIT 1] initialization of the Attachments would be nice and orthogonal to be identical for all rope types. Not a critical issue for me as such though. And I can see how it might be messy when the rope gets resized / recreated… But it would be nice : ) ]

[EDIT 2] Ok, I figured out you can split the struct pin, now I have more options : I am trying to pass the name of the Component Property and StartSocket without Start Attached To Actor with no success.

[EDIT 3] Getting warnings when compiling the blueprint with struct pin split.

[EDIT 4] Not having much luck with this. Trying to make the simplest possible thing, attaching it to 2 Actors. Demo of this feature would be great to look at, preferably with both Actor and Component versions.

[EDIT 5] Attached bp of simple setup test

[EDIT 6] Attempting RebuildRopeAtPoints, getting a crash : Assertion failed: vdParticle [File:D:\Build++Portal+Main+Full\Sync\LocalBuilds\PluginTemp\HostProject\Plugins\VICODynamicsPlugin\Source\VICODynamicsPlugin\Private\VDSimulatedObject.cpp] [Line: 65]