VICODynamics: a particle based Soft-Body physics Plugin

That’s an interesting setup… hmm, never tried that. Could you email me a screenshot or a video of this or even a test project? ujen@.com
Shouldn’t be crashing, so definitely would like to fix that.

If this is too confusing/difficult to answer as a question I apologize ahead of time. Am I correct in assuming that the Soft-Body Dynamics (water-tight volume) is done on a per-vertex basis? Let’s say I am using this plugin on a Kirby-like character (sphere topology/shape), and the soft-body effect is cosmetic only (I think that will allow multi-core?), and I am targeting Xbox One etc. (assume 8-core, fairly modern speed); realistically, what could I have as the vertex count on this sphere-like character (ballpark numbers are fine). I am going to end up purchasing your plugin either way, but I am trying to gauge how many vertices (so how tessellated/smooth the sphere is) I could afford to simulate (cosmetic, so some accuracy can be dropped), is this in the range of 10-100, 100-500, or 500-1000 without making performance abysmal? Thanks!

Volume-preserving soft-bodies, which is what you’d use in your case, are nearly ready to be used. I need to get the rendering and component bits put in on the plugins side.

All VD components support multi-threaded simulation. This is a tough one to answer without running a test, but I’d ballpark it at 500-1000 depending on how you want collision done and how many simulation sub-steps are done each frame. I’ll try to get a sphere test setup and get you more accurate numbers, but as a general rule particle count doesn’t affect performance as much as collision checks and constraint solver iteration counts.

Hi!
So I got the following error:

The thing is, I had already increased the Particle Budget to 10000 in the Project Settings. The only thing that works is changing the value directly in the VICODynamics.h. Is this a bug?

Cheers, Lena

Edit: The log is from a Development Build, in Editor everything seems fine, a Shipping Build will crash

After changing the value in Project Settings, did you press “Set as Default” towards the top? If not, UE4 will not apply the change to a packaged build and will keep it Editor only.

You might enjoy that :wink:

Very interesting!! thank you. It seems to essentially be a sort of procedural and kinematic animation, if you will. Fantastic for simple visuals and non-critical physics “accessories.” The performance gains are more than worth the drawbacks.

That solved the problem, thank you!

Hello, is it implemented now? This is exactly the thing I would use this plugin for! :smiley:

I’ve not yet implemented this as a prefab, but I’d be happy to help answer any questions about getting a grappling hook implemented.
I’ve not focused on it since it is a gameplay feature that can be implemented in a myriad of ways based on what the game needs. No one solution.

Here is a quick preview of what’s coming soon:
Volume Preserving Soft-Bodies!
More details soon

you’re giving the best nerdgasms :slight_smile:

Can’t wait for the inflatables!

I’m playing with the MeshCloth currently and am kinda confused. It seems I have to have a particle per vertex? That means I can only use super simple meshes. Is there a way to have less particles than verts?

Like we see here https://youtu.be/fjguI90nSok?t=38 (I know this is volume preserving but it shows sparse particles over a dense mesh)

Thanks

Maybe use the lod tool to lower face count?

They are coming soon :slight_smile:

As of now, no. It is a 1-1 mapping. But I will definitely be adding a sparse mapping setup after the initial release.

Thanks for the update!

@** **Hey. I’m trying to make a package for Android and it’s not working. From my peeking at the code, I don’t think this plugin has been tested on the Android; Android is not even part of the WhitelistPlatforms in the .uplugin file. Once I added “Android” to the .uplugin file, I can’t compile the Android build:

VICODynamicsPlugin/Source/VICODynamicsPlugin/Private/VDSimulation.cpp:154: error: undefined reference to ‘CreateSimulation’
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
Error executing C:\NVPACK\android-ndk-r14b oolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe (tool returned code: 1)

I think it has to do with the Build.cs file as there’s nothing in the Target.Platform == UnrealTargetPlatform.Android block in SetupVICODynamicsLib(ReadOnlyTargetRules Target).
I’m not too familiar with Android builds, so I would really appreciate it if you can make the plugin work in Android.

Cheers!

Hello,

is there a way to set a rope to simulate tension on a manual attachment created during runtime?

Cheers, Lena

The plugin itself has not been tested on Android, you are correct. Which is why the build.cs does not have the needed compilation settings. The physics library itself, however, has been tested and compiled for Android. I will be getting this sorted. I will have an ETA as soon as I can.

Yes, when calling either AttachToActor or AttachToComponent on a Particle: pass in true for the ‘SimulateTension’ parameter. The component being attached must have Simulate Physics enabled prior to this call.