Enable Vellum attribute on specific frame

   1755   6   2
User Avatar
Member
350 posts
Joined: June 2016
Offline
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?
Edited by art3mis - Jan. 11, 2019 12:51:12
User Avatar
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
User Avatar
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
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
User Avatar
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:
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

Attachments:
4406C424-F144-4380-A2C4-FF92E9C53DA9.jpeg (2.7 MB)

User Avatar
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 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

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 s@collisiongroup = 'vellumcollider'; on a wrangle on my collider before going into the solver

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
User Avatar
Member
8551 posts
Joined: July 2007
Offline
anbt
I know you wrote point(1, "disableexternal", @ptnum) but I didn't get why 'disableexternal' is the attribute name here
I 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
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
User Avatar
Member
81 posts
Joined: Dec. 2020
Offline
oh I am so so so absent minded, thanks Tamte, my issue was with this input number. I know I have to start counting from 0 but that input called input 1 fooled me. They should rename it 'input 0'!

Thanks again for taking the time
  • Quick Links