Hi
Using a Paint SOP to enable a Vellum collision attribute on part of my collision geometry.
disableexternal =1
but I only want this to occur after a specific frame in my sim.
If I'm using Vellum in SOPs, how can I accomplish this?
Enable Vellum attribute on specific frame
1755 6 2- art3mis
- Member
- 350 posts
- Joined: June 2016
- Offline
- anbt
- Member
- 81 posts
- Joined: Dec. 2020
- Offline
art3mis
Hi
Using a Paint SOP to enable a Vellum collision attribute on part of my collision geometry.
disableexternal =1
but I only want this to occur after a specific frame in my sim.
If I'm using Vellum in SOPs, how can I accomplish this?
I am trying to do exactly this. Do you have any answers now?
Cheers
- tamte
- Member
- 8551 posts
- Joined: July 2007
- Offline
you need to jump inside of Vellum Solver SOP and do it in there
you can for example add POP Wrangle,
set Inputs/Input 2 to First Context Geometry (I prefer keeping Input 1 free potentially for Myself input)
and type
this will update it every frame from SOPs so if you have it animated in SOPs it would just inherit those values
if however you want to update only on particular frame you can append Enable Solver DOP and control in there which frames you want the input to cook
you can for example add POP Wrangle,
set Inputs/Input 2 to First Context Geometry (I prefer keeping Input 1 free potentially for Myself input)
and type
i@disableexternal = point(1, "disableexternal", @ptnum);
this will update it every frame from SOPs so if you have it animated in SOPs it would just inherit those values
if however you want to update only on particular frame you can append Enable Solver DOP and control in there which frames you want the input to cook
Tomas Slancik
FX Supervisor
Method Studios, NY
FX Supervisor
Method Studios, NY
- anbt
- Member
- 81 posts
- Joined: Dec. 2020
- Offline
Thank you Tamte, I haven’t yet tried what you told me. I will see if that works later today.
Just for clarity this is what I was trying to achieve (see picture).
I want all collisions to be disabled until frame 1086, and from there, I want my painted area to collide with my collider.
I had tried so far with a sop solver inside my vellum but couldn’t make it work. I had brought in with an object merge my geo that I used as second input in a wrangle. First input was the Dop_geometry.
The code was:
Just for clarity this is what I was trying to achieve (see picture).
I want all collisions to be disabled until frame 1086, and from there, I want my painted area to collide with my collider.
I had tried so far with a sop solver inside my vellum but couldn’t make it work. I had brought in with an object merge my geo that I used as second input in a wrangle. First input was the Dop_geometry.
The code was:
if (@Frame>1086 && (point(1,”painted_area_in_red”,@ptnum)>0.1)){ i@disableexternal=0; i@disableself=0; } else { i@disableself=1; i@disableexternal=1; }
Edited by anbt - March 10, 2022 10:19:07
- anbt
- Member
- 81 posts
- Joined: Dec. 2020
- Offline
tamte
you need to jump inside of Vellum Solver SOP and do it in there
you can for example add POP Wrangle,
set Inputs/Input 2 to First Context Geometry (I prefer keeping Input 1 free potentially for Myself input)
and typei@disableexternal = point(1, "disableexternal", @ptnum);
this will update it every frame from SOPs so if you have it animated in SOPs it would just inherit those values
if however you want to update only on particular frame you can append Enable Solver DOP and control in there which frames you want the input to cook
I have been trying this but can't make it work.
I start with a wrangle that is fed into the vellum solver that just disable all collision between the vellum geo and the vellum collider:
s@collisiongroup = 'vellumgeo'; s@collisionignore = 'vellumcollider';
I also have just after, on the vellum geo stream, an attribute paint with the area that I want to be specifically colliding with the collider.
And then, inside the vellum solver, in a pop wrangle (input1 is none, I also tried myself, and input 2 is first context):
i@disableexternal = 1 - point(2, 'paintedarea', @ptnum); //because the area where the mapped value is 1 needs to be 0 for disableexternal to collide right?
it doesn't work
Am I missing anything, I know you wrote point(1, "disableexternal", @ptnum) but I didn't get why 'disableexternal' is the attribute name here
Edited by anbt - March 11, 2022 07:56:29
- tamte
- Member
- 8551 posts
- Joined: July 2007
- Offline
anbtI wrote 1, because that's the 2nd input, 0 is first, so if you wrote 2 you need to populate 3rd input parm with geo you are sampling for it to work
I know you wrote point(1, "disableexternal", @ptnum) but I didn't get why 'disableexternal' is the attribute name here
and I wrote 'disableexternal' simply because I assumed you have your animated disableexternal attribute created in sops based on paint or whatever and already animated to turn on certain frame
the whole POP Wrangle is just to update the values in DOPs every frame, but you can definitely bring any attribute and use for whatever
since you are also dealing with collisionignore, if you are already ignoring the collider then disableexternal doesnt matter
maybe post a flie?
Edited by tamte - March 11, 2022 20:34:36
Tomas Slancik
FX Supervisor
Method Studios, NY
FX Supervisor
Method Studios, NY
- anbt
- Member
- 81 posts
- Joined: Dec. 2020
- Offline
-
- Quick Links