VICODynamics: a particle based Soft-Body physics Plugin

Thank you for quick support. That was it. :slight_smile: I will need to tweak the volumes on game map. But excellent plugin. Purchased it already last year, but only now getting my game in shape that can start looking into using it. :slight_smile:

Awesome, that’s great to hear! Please share how you integrate VICODynamics in your game when/if you can, always a pleasure seeing that.
If you haven’t already, please rate the plugin on the store page when you have a moment. Really helps me out.

Sure rated 5/5. :slight_smile: I hope to prepare new footage of the game with VICODynamics soon in week or two. Having game WIP progress posts here, but will let you know once new footage is up:
https://twitter.com/TheRealSaOk

Huge fan of this plugin. Used it for a pretty basic project and have since taken a look at the example project and been blown away by how much potential this plugin has. My new project requires that I know when and with how much force the rope hits a player. It seems like a pretty straight forward use case but I can’t seem to find anyway of doing this? Is this possible with the plugin? I have tried both fiddling around with the collision presets on the rope and player and also attempting to get the velocity of the hit particle with the OnVDCollision Event. Any help would be greatly appreciated :slight_smile:

Thank you for the kind words, would love to see how you utilize it in your project once it’s ready!

OnVDCollision is definitely what you want for knowing when a hit occurs. But the force of the hit is not something that gets calculated/needed for collision resolution. Does the velocity not suffice? Or are there other issues there?

Note that OnVDCollision is technically experimental so it may have bugs and I’m looking for feedback on it.

Yeah mate, I have attempted the get velocity direction from the particle node of the OnVDCollision event. Problem is this causes a crash in 4.20 when hitting the play button. Not sure why. I will attempt to do this in 4.19 and see how I go.

[ATTACH=JSON]{ā€œdata-alignā€:ā€œnoneā€,ā€œdata-sizeā€:ā€œlargeā€,ā€œdata-tempidā€:ā€œtemp_143778_1533080589971_22ā€}[/ATTACH]

Found that bug today and just submitted a patch to UE4. Should be live in the next day or so.

Thanks mate. Its up and it works like a treat!

Hi, I just started using the plugin, and a few questions came up.
What I want to achieve is spawning a cable during runtime which leads from one fixed point in the scene to another while loosely dangeling and colliding with other actors that are in the way.

Here are my questions:

  1. I’ve experienced a large amount of crashes. I’m guessing they mostly happen when there is something between the two attach points that the rope would collide with, so for spawning, I disabled the collision. But they also happen randomly at times when I can’t explain them, see the screenshot and the crash logs (The same code using the RebuildRopeAttached node worked as expected). What could be the reason and how can I avoid crashes?

  2. I also tried to spawn sort of a dynamic spline rope by using the AddVDSplineRopeComponent node, but unfortunately this didn’t work. Is there another way to do this?

Thanks.

Logs: CrashLog - Google Drive

Hi Lena,

Thank you for the detailed explanation, screenshot and logs. They helped track down this bug a lot.

  1. Could you please test this once more, but this time set ā€˜Distance Per Segment’ to something like 10 or 4 and let me know if it crashes. I suspect I have a parameter validation bug.

  2. Not in BPs yet, but I like the idea! I’ll add it to my todo list. Thank you!

Hope that helps.

Hey mate,

Just wanted to check how the progress of supporting mobile platforms is going? Is this still on the agenda? Is there any rough timelines to go off? (eg within a month, 6 months…). For my current project I can get away with developing on PC platform for awhile but at some point it needs to go mobile. Your plugin is pretty crucial to the gameplay so I would mainly just need to know if you do not intend on supporting mobile down the track.

Cheers,
David

Hi, thanks for your quick reply!

I tested again with values 10 and 4 and the engine didn’t crash, but the plugin failed to produce a rope in the case of value 10 for some reason. Hope this helps.

Thank you for adding my request to your todo list, however my project has a rather short-term deadline, so if you have a hint on how I might be able to achieve my goal with the currently implemented options, I’d be very grateful :slight_smile:

Cheers, Lena

I noticed there is a Length parameter for dynamic ropes, but they always seem to spawn with a length that correlates with the distance between the end points. Is there a way to set the length manually?

Definitely on the agenda! It will be closer to 6 months out unless I can get an additional dev on this.
As far as mobile, are you looking at Android and iOS or one of those? If one, I could see if I can prioritize it.

Aha, ok. Then I will get a validation fix put in soon to sort out the crash.

The best way you could go about creating a dynamic SplineRope is to setup a BP with the VDSplineRope and have the parameters you want to be dynamic flagged ā€œExpose on Spawnā€ and then pass them to the Rope Comp in the Construction Script of that BP. Now you should be able to spawn a dynamic VDSpline rope by spawning that new BP and passing in the parameters. Let me know if you hit a snag on any of that.

Yes, you should be able to call SetNewRestLength on the component and pass in the desired length

Unfortunately, I don’t seem to be having any luck with this. The parameters I want to be dynamic are the end points of the rope, I already tried to place a spline rope into the scene and moving it to the desired location during runtime and it usually results in either a crash (see logs) or one of the end points falling through the floor. I can’t think of a way to change the location of the endpoints in the construction script of the blueprint as the spline that defines this will be constructed at the same time.

As to SetNewRestLength, I tried this with a simple example rope in an isolated environment and it worked fine, but when I tried to use it in the actual situation where I need it, the length didn’t change. This would be a great and simple solution if I got it to work! Can you explain to me the role of the PieceIndex input on the node?

Cheers, Lena

Logs: CrashLog - Google Drive

The crash is a strange one, looking at the reported line there is nothing obvious that stands out to me. If you can reproduce it in a new project, I’m happy to debug it on my end.

Regarding the spline rope, it’s very difficult to understand the issues and desired behaviour without seeing it. If you have the time, could you setup a project with the bare bones of what you’d like to achieve and I can then go in and see how to best set it up.

The fact that SetNewRestLength does not work correctly in your situation is likely due to collision/overlap volumes in your map that are being considered as colliders. Volumes are regular rigid bodies in PhysX which UE4 treats in a special way, but VICODynamics cannot discern them from other RigidBodies during collision unless they are filtered out using Collision Profiles. My guess is that one or more of these need to be correctly filtered out. As a test, try completely disabling collision on the rope and see if SetNewRestLength works as expected

I’ll try to find time to reproduce the error in a new project, but for now we decided to remove all cables from the project in order to focus on other things, so it won’t be a priority. The problem with SetNewRestLength was indeed the collisions.

iOS would be ideal. Thanks mate

How’s it going? Any updates?