Jump to content
madebygeoff

[Vellum] Dynamically disable external collisions

Recommended Posts

I'm trying to create a vellum string setup where at a given frame, the string ignores one collision object, but not the others in a scene.

I got something working with Vellum in DOPs and just switching up the static objects at a given frame.

But it seems like there should be a more elegant way of doing it with collisionignore. I can get collisionignore to work as an initial point attribute, but I can't figure out how to alter the value at a given frame. Am I missing something simple and dumb?

Share this post


Link to post
Share on other sites

wanna upload your file ? just save me from mocking up something that might or might not match your problem, is all.

Share this post


Link to post
Share on other sites
Posted (edited)

you're confusing me with the ignore section on the string...I thought we were talking about ignoring different colliders...just as well I asked for your file, hey !!

anyway, here's my simple test, the diff colliders are named t1 t2 for ease of access (by default say you got just 1 tube, in your DOP you'd notice it is named external, so you could ignore by this name). Hence you see why I renamed my 2 tubes to t1 t2.

You'll notice I've unlocked my vellumsolver to allow me to dive into the dopnet and modified the colliders naming, then once you've setup naming, go into forces up top, you'll see where i referenced t1 t2 to ignore at certain frames. hope that makes sense

ps: from the gif, you can see CLEARLY the collliders are there in the sim, they just get ignored on command.

 

vu_ignoreColliders.hiplc

ignoreColliders.gif

Edited by Noobini
  • Like 1

Share this post


Link to post
Share on other sites
Posted (edited)

ps: you can even delete the merge (in SOP land) and have NO connection to the collision slot in vellumsolver...magically they still work since I'm referring to them in their SOP path now rather than opinput

Edited by Noobini

Share this post


Link to post
Share on other sites
Posted (edited)

you just need to animate @disbleexternal on the collider itself in SOPs

here is your modified file with just one node added (Green)

also I added Vellum Solver SOP  (no need to unlock) in case you made DOP one just to try to solve this

collision_release_v01_fix.hiplc

Edited by anim
  • Like 1

Share this post


Link to post
Share on other sites
37 minutes ago, anim said:

you just need to animate @disbleexternal on the collider itself in SOPs

here is your modified file with just one node added (Green)

also I added Vellum Solver SOP  (no need to unlock) in case you made DOP one just to try to solve this

collision_release_v01_fix.hiplc

ok, this approach just needs separate (point) groups to cater for multi tubes (or sections of one tube i guess) so you can disable whatever groups

Share this post


Link to post
Share on other sites

yes, it's just based on the attribute per point so whether you use groups or not it's about the @disableexternal attribute

but then further to define actual collision pairs it's possible to use s@collisionignore and s@collisiongroup attributes, but that's not necessary in this case

Share this post


Link to post
Share on other sites

Thank you guys,

I see the problem. When I tried before I was adding @collisionignore or @disableexternal to the vellum geo not the collision geo.

In retrospect, I guess that seems obvious. For future problems, how did you know it was an attribute on the collision geo? When I looked at the Vellum Attributes page it was listed under Sim Attributes: Geo but it doesn't specify which attributes are Vellum geo attributes and which are collision geo attributes.

Share this post


Link to post
Share on other sites
30 minutes ago, madebygeoff said:

In retrospect, I guess that seems obvious. For future problems, how did you know it was an attribute on the collision geo?

I simply tried it once cause I was desperately looking for solution and it worked so I remember (for now), obviously nowadays there is much more flexibility with collisiongroups, but sometimes you just want to disable particular collider completely

Share this post


Link to post
Share on other sites
Posted (edited)

As Tomas was pointing out above, you can use s@collisiongroup to set a point group name for each collision object (I used "tubeA" and "tubeB"). Then on each string set s@collisionignore to ignore the appropriate group. So string A s@collisionignore = "tubeB" and string B s@collisionignore = "tubeA".

Here we're ignoring the entire object, but obviously since it's a point group, you can also select a subset of points on a collision object to ignore.

selective_collision_release_mbG.hiplc

Edited by madebygeoff
  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×