Announcement

Collapse
No announcement yet.

VICODynamics: a particle based Soft-Body physics Plugin

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • VICODynamics: a particle based Soft-Body physics Plugin

    A Particle Based Physics Library Implementing Position Based Dynamics

    Click image for larger version  Name:	VDS.jpg Views:	1 Size:	107.2 KB ID:	1191496

    Originally created as a pure UE4 plugin for our game, CHIKARA: Action Arcade Wrestling, in order to create physically simulated Ring Ropes. It was originally called VICO Dynamic Rope System Plugin but was limited in many ways.

    This library is the evolution of the VICO Dynamic Rope System Plugin; not only is this library essentially engine independent (almost true at the moment, requires external Rigid Body physics interface, PhysX in the case of UE4) but it also simulates a much more accurate system with higher performance, support for multi-threaded simulation, and most importantly: is in no way limited to just simulating ropes!

    VICODynamics can now simulate cloth, either procedurally created sheets or by converting Static Meshes into Cloth, with collision, attachments, tension constraints, drag modifiers, applied forces and physically simulated wind with support for Occlusion! And volume preserving soft-bodies are coming soon followed by fluids.

    The beauty of using a particle based simulation is that you are never limited in what you can create out of particles and constraints.

    Another big feature of VICO Dynamics; is that it runs on the CPU. This means it supports a wide variety of platforms: PC/Mac/Linux, Mobile and Console! No dependencies to any hardware. Has been tested on Windows/Linux/Mac, Xbox One, PS4/Pro and is being tested on the Nintendo Switch now.

    For more details and performance info, please visit this page: https://www.vicogamestudio.com/projects/vico-dynamics


    UPDATE 10/02/17: Feature Update 2 is on the Marketplace! Here: https://www.unrealengine.com/marketp...ynamics-plugin

    Trailer:


    Feature Rundown:


    Showcase:
    Here is a video of a Showcase level created using many features of VICODynamics. Captured in real-time on an i7 6800k with a GTX 1080 ti at 4k 60fps. This level uses 8,000 Particles and over 60,000 Constraints! All running at over 60fps in single-threaded mode and over 100fps in multi-threaded mode!

    Attached Files
    Last edited by VICOGameStudio; 12-07-2017, 02:43 PM.

  • replied
    Originally posted by NewRunDMC View Post
    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.

    Leave a comment:


  • replied
    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!
    Last edited by NewRunDMC; 10-13-2019, 11:18 PM.

    Leave a comment:


  • replied
    Originally posted by FrankWilliam View Post
    Hi!

    I have a VDSplineRope acting as a cable, and I want this cable to be inside a protective plastic sleeve. I have a mesh of the plastic sleeve and have added it as a VDMeshCloth. Two collision spheres are at each end of the rope and sleeve.

    The issue I'm having is that as soon as I begin simulating, the VDMeshCloth just droops down, even after increasing the Bend and Stretch Stiffness to 1 and setting Mass at 0.01.
    The part VDSplineRope that the VDMeshCloth is covering is always just going to be completely straight, so what I basically want is for the VDMeshCloth to just stretch between the two collision spheres placed at both ends. It doesn't need to bend at all or even interact with anything else.

    I tried to set "Attach to Particles" to true because I assumed the VDMeshCloth would then be attached to the VDSplineRope and just follow along, but when I have that checked the engine crashes as soon as I begin simulating.

    Any tips on what I could do?
    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@vicogamestudio.com
    Shouldn't be crashing, so definitely would like to fix that.

    Leave a comment:


  • replied
    Hi!

    I have a VDSplineRope acting as a cable, and I want this cable to be inside a protective plastic sleeve. I have a mesh of the plastic sleeve and have added it as a VDMeshCloth. Two collision spheres are at each end of the rope and sleeve.

    The issue I'm having is that as soon as I begin simulating, the VDMeshCloth just droops down, even after increasing the Bend and Stretch Stiffness to 1 and setting Mass at 0.01.
    The part VDSplineRope that the VDMeshCloth is covering is always just going to be completely straight, so what I basically want is for the VDMeshCloth to just stretch between the two collision spheres placed at both ends. It doesn't need to bend at all or even interact with anything else.

    I tried to set "Attach to Particles" to true because I assumed the VDMeshCloth would then be attached to the VDSplineRope and just follow along, but when I have that checked the engine crashes as soon as I begin simulating.

    Any tips on what I could do?

    Leave a comment:


  • replied
    Originally posted by VICOGameStudio View Post

    I'm pretty sure it's doable, especially since it'll mainly be an upgrade effort. Will need to look into it more to see how much effort it'll be.
    Wonder why effort was dropped by Nvidia, seems like really cool tech!
    well.. nvidia is doing this:
    they make some tech based on the direct drivers interactions.
    then they do an adk/api suport so any language could use it... noone does
    Then they make a plugin or build integration to show that it DOES WORK like a charm and here is an example of how to...
    However they wont run full support, updates, continous integration on something, that is community based on github and noone contributes, as well when epic games is going "screw physx! heres chaos" - I don't get it why epic thinks they need to redo the wheel. again and again :/
    Vico-dynamics is best performance wise library for physx on ue4 and its not provided by epic nor nvidia. it amazing clothing solution from static meshes. grapling hooks, ropes to walk on, rope bridges - they are undoable with cable components physx constraits etc. I mean... they are - but extremely unpredictible, not replicable, nor working as designed.
    BLAST seems like perfect solution for dynamic build and destroyed buildings at runtime with complex support system, damage reisstance, and dynamic fracturing. I would love to see it developed further.

    Leave a comment:


  • replied
    Originally posted by xermao View Post
    I have send you a email about my github username in about 12 hours ago,can you check your email mybe it go into Spam folder?
    You're all set, just emailed you.
    Was a busy day yesterday ​​​​​​​

    Leave a comment:


  • replied
    I have send you a email about my github username in about 12 hours ago,can you check your email mybe it go into Spam folder?

    Leave a comment:


  • replied
    Originally posted by AngeIV View Post
    VICOGameStudio have you seen the BLAST plugin documentation or code? https://gameworksdocs.nvidia.com/Bla...uickStart.html
    It is better destructible than the the new chaos "geometry collection" as it can create multi object support structure in-game and not only in specific collection in editor.
    You're a physx wizzard - I wonder if you could make it usable in 4.22
    What is super cool is that until something breaks and fractures it doesn't render all the chunks. the chunks are being made dynamically like in procedural mesh component, and until they are needed to store information like the suport or damage - there is just a general collision shape based support map of an object but it doesn't eat up polygon count.
    Blast is in editor basic plugins, but in some old version.. and doesn't allow to create destructible with it in blueprint project.
    I'm pretty sure it's doable, especially since it'll mainly be an upgrade effort. Will need to look into it more to see how much effort it'll be.
    Wonder why effort was dropped by Nvidia, seems like really cool tech!

    Leave a comment:


  • replied
    Originally posted by VICOGameStudio View Post

    Haha!

    Definitely open to discussing such a setup, but it would have to be after my game releases. As right now, I'm swamped. Rough eta on my availability would be Q1/Q2 next year
    Q1/Q2 next year is perfect

    Leave a comment:


  • replied
    VICOGameStudio have you seen the BLAST plugin documentation or code? https://gameworksdocs.nvidia.com/Bla...uickStart.html
    It is better destructible than the the new chaos "geometry collection" as it can create multi object support structure in-game and not only in specific collection in editor.
    You're a physx wizzard - I wonder if you could make it usable in 4.22
    What is super cool is that until something breaks and fractures it doesn't render all the chunks. the chunks are being made dynamically like in procedural mesh component, and until they are needed to store information like the suport or damage - there is just a general collision shape based support map of an object but it doesn't eat up polygon count.
    Blast is in editor basic plugins, but in some old version.. and doesn't allow to create destructible with it in blueprint project.

    Leave a comment:


  • replied
    Epic just processed the 4.23 update which also includes community submitted fixes and features, thank you for submitting the PR's

    Leave a comment:


  • replied
    Originally posted by xermao View Post

    Will this function be implemented in this year?
    With the release of my game happening, it is unlikely. But I am looking to hire an additional dev, so it's not out of the question.

    Leave a comment:


  • replied
    Originally posted by VICOGameStudio View Post

    Aha! They implemented "collision proxies" (how I refer to them) which is on my todo list! PhysX queries suck in terms of perf and accuracy. If I get the time to put in "collision proxies" then yes, the plugin will be able to do complex per-poly collision.
    Interesting to see that they too did not implement per-triangle collision on the cloth .
    Will this function be implemented in this year?

    Leave a comment:


  • replied
    Originally posted by AngeIV View Post

    wait what? One person made this? Are you god? Cause if yes - I got so many questions. In example why did you make chocolate kill dogs?
    but seriously I wish I could help but my dayjob is eating up my life as well.
    However I have a very important question. If spmeone offered you to develop further features of vico dynamic and pay for your time, would you be in position to take this offer?
    Haha!

    Definitely open to discussing such a setup, but it would have to be after my game releases. As right now, I'm swamped. Rough eta on my availability would be Q1/Q2 next year

    Leave a comment:

Working...
X