VICODynamics: a particle based Soft-Body physics Plugin

Yes it is, that looks great! Again, thank you for making this happen for me, it’s a huge help.

This is off topic from what we’ve been discussing, but as I’ve been working with the rope system I’ve had a few feature ideas. These ideas are really sort of unimportant, so just throwing them out there:

For one, it would be cool to be able to attach ropes together. I really like how you can specify in the attachment properties of a rope which particle is attached to an arbitrary actor, it would be cool if you could specify another particle in another rope with this system.

And two, I noticed above someone asked for GPU particles. Would it be possible to use PhysX Flex particles for this purpose? I’ve worked with Flex before, and while the collision handling and performance is impressive, it lacks the robust features of the Vico system. Flex is open source and uses the UE4 cable component as a model for their Flex rope component, this could perhaps be a good reference for implementing Flex into other systems. Flex is integrated into UE4 on this custom branch of the engine.

Great! That is pushed to the Feature-Update-2 branch already.

Regarding attaching two Ropes/clothes or rope and cloth: Yes! This is doable internally already by manually setting up constraints. I will be adding easier/convenient ways soon. The only thing I need to figure out is how to handle the rendered geometry when two simulating objects are attached…

Regarding using FleX as the backend: This is interesting, though I have not taken a look into it or given it much thought to see how feasible it may be. Is FleX source available now? Last I checked it was only the UE4 FleX plugin that had source available.

Thank you for the suggestions!

That is awesome! Although I imagine rendering the geometry for two simulated actors would be no small feat, considering the arbitrary angles they could be attached at.

And you’re right about Flex, I looked into it and it’s just the UE4 plugin that is open source as far as I can tell. It would definitely not be able to be integrated into the VICO physics library as a whole, just the VD UE4 plugin (and maybe not even that? I don’t know how much they’ve exposed in their plugin). I can definitely see why that would be undesirable.

Hello :slight_smile:

I was wondering anyone could help me out with this issue I’m having with Vico.

I’m trying to create a cloth sim with it. What I have basically, is a CapsulleComponent, as my collider for the environment, and my Mesh, or character under that. Now I placed created a VDMeshCloth under all of this and attached it to the mesh, that is under the Capsule. I then added the mesh to the VDMeshCloth, which is my cape mesh for my character, I then also set its texture. Now here is the tricky part, it won’t collide with the character mesh, only the capsuleComponent. Or is there any way to get it to not collide with the case but only the character? Or is there any way that I could get it to not collide with the Capsle, and just attach it somehow to the Mesh?

Thank you anyone for the help :). Any help at all is appreciated :)!

Hi Fred,

Because all collision shapes are considered for collision by default you’ll need to setup the Collision Channel and Responses settings on the Capsule, VDMesh and Character. Create an Object type for the VDMesh and tell it to ignore collision with the Capsule Object type. Do the same in the Capsule, but tell it to ignore the VDMesh Object type. That should get you at least close to what you’re looking for.
I’ll add a way to ignore certain Components to ease the setup of simpler Actors.

Hope that helps, let me know if you have more questions.

Hi, I am trying to make a whip, i imagine the rope component is the way to go, any pointers on how to implement it…? I added a vdrope component and then try to redraw it using a trace, but i cannot get it to work… or even show up

Yes, VDRope is the one to use for setting up a whip. What do you mean by ‘redraw it using a trace’? Could you post a screenshot of how you have it setup? If you can’t show it in public, just email vdue4@.com .

Hi, would it be possible to substitute a different collision proxy instead of the physics asset? Using the physics asset is very appealing for many tasks but I have some scenarios (morph targets, notably) where I’m pretty sure I’d rather just provide my own, low poly rigged collision envelope. We can handle making it follow the character’s animation (master pose component).

e: on a related note, would it be reasonable to add morph targets to a VICO-simulated mesh to fit the base character?

Just so I understand correctly: With Skeletal Meshes, you’d like to be able to use a collision shape as oppose to the physics asset. Is that correct? If so, this is definitely doable! It will require a slight update to allow you to specify your preference on the VD Component.

Regarding Morph Targets, I’m not entirely sure. In theory, yes it should work since the vertices are used straight from the provided mesh and the required morphing data can be retreated. But UE4 only supports morphing on Skeletal meshes where as I’m currently using static meshes in the VDMeshClothComponent. Whether or not I could setup my own pipeline for morph targets is another question. When you say ‘to best fit the base character’ I assume you mean the base character has morph targets and you’d like the VDMesh to respect the adjusted shape? There may be a different way to achieve this, thinking a bit out there though. Let me know if you’d like me to go into detail.

Hello !

Thank you very much for your quick response! I really appreciate it! :smiley:

Sorry, it took me so long to respond, was testing some things out before I made a reply. :slight_smile:

I’m still new to Unreal Engine, so I get a little mixed up on some things. :slight_smile:

I tried what I thought you meant, but I may have misinterpreted what you said to do. The results I was the capsule not colliding wit the cape anymore, but it just fell through the case and the body. I get it to stop colliding with the capsule, but it won’t collide with the body anymore.

I think I might have miss understood what you meant for me to do. Could so explain that again, but maybe with pictures? Very sorry for my mix up on this.

Thank you so much for your time! I really appreciate your help!
John.

What I mean is, we provide a low poly skeletal mesh collision proxy with its own version of morph targets that we create, and it obtains its animation and morph values from the Master Pose Component from a master skeleton (we’re doing this with skeletal mesh clothing e.g. for animation and morphs). I realize it’s less efficient to do this because collision math vs. spheres has some shortcuts but the advantage for us is that say, you have a guy wearing a robe, and you then morph the guy to be very fat - the physics asset will not change to reflect that, so his robe will clip into his fat areas. APEX has the same limitation. If we could provide a custom collision proxy then we could have the fat guy wearing a robe. The transition between the zero state and the morphed state would probably need time to simulate but that’s OK, we can probably just hide the character/clothing meshes for some reasonable time to allow for that and then make them visible.

e: While we’re fine just creating a full low poly proxy ourselves, maybe a simple alternative would be to collide against a lower LOD (higher number, lower detail) version of the base mesh. (if Simplygon works vs. rigged meshes, which I have no idea if it does)

Yes some 1-2-3 step by step procedures to get the common tasks done would be really great. I work with Fred and we would both like this. Thanks!

Absolutely! And to make it even easier, could you setup a quick sample project for me to set it up in? I’ll put a quick video together for you guys.

This is certainly doable, but it needs to be implemented. It would essentially be per-poly collision which would certainly give the desired results! I don’t have this on my update schedule yet, so I cannot give you any ETAs. If you’re up for implementing this yourself, I’m more than happy to assist anywhere I can! In addition to this collision resolution there would also need to be a bit of logic to impart velocity of the colliding body onto the colliding particles which would refine the look/results during fast movement. I do have this feature on my schedule to be implemented.

Hope that was of some help, let me know if you have any further questions!

Thanks, exactly what would you want in this scene? A character and a skeletal mesh “clothing” model rigged appropriately for VICO? What else?

Does your plugin care about how a piece is weighted or does it only take the joint endpoints and convert them to particles? Is it possible to have a skeletal mesh that is weighted and only create particles for a selection of joints, and leave the remainder as constrained/deformed by their weighted joints? e.g. a garment like this:

I don’t think we have the programmer resources to actually implement this ourselves but if you’re willing to add this feature we would be happy to wait for it. There is simply no option for this anywhere so if you did build it into your plugin, you’d have a very useful advantage over your competitors :slight_smile:

Yes, just the bare minimum to setup your character with cloth.

For now, it only takes the vertices and converts them into particles. Fairly basic logic for now. That would be an awesome feature to introduce and is definitely going on the TODO list!

I understand and I agree, this would be a key feature for sure. It’s near the top of my TODO list now, so I should get to it sooner than later.

Oh where did I get the idea that you were creating particles based on bone endpoints? Yes it would be super useful to just arbitrarily place particles and ignore the mesh/vertices.

Re: mixing rigged/weighted deformation with your particle deformation: Since this doesn’t work the way I had thought, that’s still OK, we can separate this sort of piece into two parts. I’ll prepare a scene with a character and some suitable pieces and get back to you, thanks.

Quick update:
Pushed a revision for both, the VICODynamics library and Plugin, with official support for the PS4 console!

Note: For pre-built binaries for either console, you need to contact me with proof of developer status.

Hey so here’s a test character for you to demo with, if you like:


Also I know you’re not starting on the morph target feature for a while but when you do, you’ll have some reasonable morphs to work with:


The character is rigged with the same basic skeleton as the UE mannequin, I’ll get her and some suitable garment models into a scene and retarget some animations for her tomorrow/next day and give you the scene. Thanks.

e: There’s probably going to need to be a little back and forth, since I haven’t gotten my hardware upgrade yet (should be soon) I’m not going to mess with the physics asset - once I get the new machine I’ll do that. Thanks again!

doot de doo


the hand retarget is kind of janky but I’ll probably just delete those keys