Brent Tyler
tylerart
About Me
Connect
LOCATION
Not Specified
WEBSITE
Houdini Skills
Availability
Not Specified
Recent Forum Posts
Correct way to create variants based on activation? July 8, 2025, 11:03 p.m.
Ok, I think I figured out that I have to reference the asset file directly into my stage, I can't just pipe into a new reference node with a new layer. Once I've referenced the file directly, it seems to work fine. I'm guessing there's a flag somewhere that I need to set, just not sure what I'm missing.
An additional thought - If you have a scope with prims inside them, and deactivate the scope, you can't re-activate the scope again to bring those prims back, despite the data being in the usd file. It seems that the data below the scope is no longer accessible?
An additional thought - If you have a scope with prims inside them, and deactivate the scope, you can't re-activate the scope again to bring those prims back, despite the data being in the usd file. It seems that the data below the scope is no longer accessible?
Correct way to create variants based on activation? July 8, 2025, 10:07 p.m.
I have run into the same issue. It appears that a prim can have it's activation turned off in a variant, but not on. If I create a cube and a sphere, and turn the sphere active attribute off and save it as .usd, the sphere data saves properly.
Notice "active = false" under "def Sphere". Now, I create a variant set with a variant, set the active on the sphere to true, and set the active to the cube to false.
The cube turns off, but the sphere doesn't turn on. Even when I'm setting these opinions up on another layer, I'm still not seeing the sphere turn on. This appears to be a USD-thing, as usdView also shows the variant having both elements off.
Does this make sense to anyone? The code seems like it should be overriding the active = false. I could remove the active = false on the sphere creation, have both the cube and sphere active by default, then create 2 variants, only setting active = false. This ultimately means that any asset that has a variant requires a variant to always be set, and removing the variant with "clear from active layer" would break the asset prims. Is there a solution to this?
def Xform "asset" { def Cube "cube1" { float3[] extent = [(-1, -1, -1), (1, 1, 1)] double size = 2 matrix4d xformOp:transform = ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1) ) uniform token[] xformOpOrder = ["xformOp:transform"] } def Sphere "sphere1" ( active = false ) { float3[] extent = [(-1, -1, -1), (1, 1, 1)] double radius = 1 matrix4d xformOp:transform = ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1) ) uniform token[] xformOpOrder = ["xformOp:transform"] } }
Notice "active = false" under "def Sphere". Now, I create a variant set with a variant, set the active on the sphere to true, and set the active to the cube to false.
over "asset" ( prepend variantSets = "geo" ) { variantSet "geo" = { "sphere_on" { over "cube1" ( active = false ) { } over "sphere1" ( active = true ) { } } } }
The cube turns off, but the sphere doesn't turn on. Even when I'm setting these opinions up on another layer, I'm still not seeing the sphere turn on. This appears to be a USD-thing, as usdView also shows the variant having both elements off.
Does this make sense to anyone? The code seems like it should be overriding the active = false. I could remove the active = false on the sphere creation, have both the cube and sphere active by default, then create 2 variants, only setting active = false. This ultimately means that any asset that has a variant requires a variant to always be set, and removing the variant with "clear from active layer" would break the asset prims. Is there a solution to this?
Custom ui popup window April 16, 2025, 1:12 p.m.
PySide is great, especially if you need custom widgets. However for simple windows, you can use hou.ui.displayCustomConfirmation() , adding custom buttons, messages, etc.
https://www.sidefx.com/docs/houdini/hom/hou/ui.html [www.sidefx.com]
https://www.sidefx.com/docs/houdini/hom/hou/ui.html [www.sidefx.com]