Hi! I wonder if there is a way to visualize the joints / TransformObjects without promoting their TRS controls when debugging component script. For example I have a TransformObject that has xform input connected to other node's output, I'd like to visualize how this TransformObject behave when value changes in other node.
Thanks!
Found 30 posts.
Search results Show results as topic list.
Rigging » Visualize joints without promoting TRS ports?
-
- NMVHS
- 30 posts
- Offline
Rigging » How to use *::2.0 nodes in python-like component snippet?
-
- NMVHS
- 30 posts
- Offline
esttriThat's great info, thank you!
you can always set this directly using:
xform.LookAt.v2_0(lookat_xform, lookup_xform)
There is however a way to automatically get the latest version of a given callback.
On your SOP node go to the Header folder. Turn the header toggle on and use the toggle add Version. Then a little function called HoudiniVersion() will be added to the beggining of you snippet. Based on your current houdini version we can now automatically deduce which version to use. meaning that
xform.LookAt(lookat_xform, lookup_xform)
should give the correct latest version.
Having said that. This is currently not supported for your own custom functions.
I hope this helps
Rigging » How to use *::2.0 nodes in python-like component snippet?
-
- NMVHS
- 30 posts
- Offline
Sometimes I come across APEX nodes that is 2.0 version, for example transform::LookAt::2.0.
In component snippet, if I use, a 1.0 version lookat node will be created. I wonder what's the correct way to use 2.0 version node in snippet?
In component snippet, if I use
xform.LookAt(lookat_xform, lookup_xform)
Edited by NMVHS - Sept. 28, 2024 00:37:18
Rigging » How to visualize tags?
-
- NMVHS
- 30 posts
- Offline
esttriNice, thank you!
You can use the AttribAjustArray SOP, it comes with a viewer state. if you set the Attribute Class to Points it should show your joint tags.
Rigging » How to visualize tags?
-
- NMVHS
- 30 posts
- Offline
Is there a way to visualize the tags that are assigned to joints in viewport just like the way skeleton names are displayed?
Thanks!
Thanks!
Rigging » How to set default values for abstract controls?
-
- NMVHS
- 30 posts
- Offline
william_harleyThat works! Thanks!
Hi, Its not possible to set the defaults using the addAbstractControls at the moment. For this you will have to use updateNode().
To promote the inputs set the promote and parmnames on the addAbstactControl. To do this, enter the channel you want to promote separated by a space. Parmnames should also be separated by a space, and will name the ports in the order that they are promoted.abs = graph.addAbstractControl(promote='x y', parmnames='one two', name='test') abs.updateNode(parms={'x':1, 'y':1})
Rigging » How to set default values for abstract controls?
-
- NMVHS
- 30 posts
- Offline
Hi there,
After adding a abstract control with, how to set the X / Y values to 1.0 as default value?
And I also need to promote the inputs of abstract control.
Thanks!
After adding a abstract control with
graph.addAbstractControl()
And I also need to promote the inputs of abstract control.
Thanks!
Edited by NMVHS - Sept. 2, 2024 11:53:51
Rigging » Apex custom channels & IK / FK Modes
-
- NMVHS
- 30 posts
- Offline
kodraImage Not Found
You can do it by piping all these extra geo as dummy TransformObject and drive their position from the AbstractControl.
That's a bit complicate though. I don't know if there is a simpler, built-in way to do this.
This looks great! Any hints on how to set this up?
Rigging » APEX Script: Get component of Vector
-
- NMVHS
- 30 posts
- Offline
Correct me if I'm wrong... I think apex snippet is not exactly python. Each function has a corresponding apex node. You would need vector3ToFloat node to split a vector, thus you'll need to use vector3ToFloat() in snippet.
pos = Vector3(1,0,0) x, y, z = vector3ToFloat(pos)
Edited by NMVHS - Aug. 17, 2024 04:42:06
Technical Discussion » Generate curves (geo) during simulation in DOP
-
- NMVHS
- 30 posts
- Offline
tamteThank you! I'll look into that.NMVHS
I feel like this involves creating a SOP context in DOP, but now sure how to do that.
processing of any geometry data in DOPs can be handled using SOP Solver DOP node
Technical Discussion » Generate curves (geo) during simulation in DOP
-
- NMVHS
- 30 posts
- Offline
Hi everyone,
Curious to know if this is possible to do in DOP:
In a particle sim, generate curves (or mesh) based on the result of current frame's simulation, and then feed these generated curves back to simulation as guides so they can affect next frame's sim.
I feel like this involves creating a SOP context in DOP, but now sure how to do that.
Thanks!
Curious to know if this is possible to do in DOP:
In a particle sim, generate curves (or mesh) based on the result of current frame's simulation, and then feed these generated curves back to simulation as guides so they can affect next frame's sim.
I feel like this involves creating a SOP context in DOP, but now sure how to do that.
Thanks!
Edited by NMVHS - Dec. 30, 2023 03:20:47
Solaris and Karma » usd point instancer reading external prototypes
-
- NMVHS
- 30 posts
- Offline
npetitIs there a way to do this with variants? For example, to have instancer randomly choose variants of a sphere.
Here's an example:
Create a sphere, a cube and a torus, plug a python LOP and set it to use this code:from random import random, randint import hou from hou import hmath from pxr import UsdGeom, Gf node = hou.pwd() stage = node.editableStage() numinstances = 20 prim = stage.DefinePrim("/pointinstancer", 'PointInstancer') pi = UsdGeom.PointInstancer(prim) rel = pi.GetPrototypesRel() rel.AddTarget("/cube1") rel.AddTarget("/sphere1") rel.AddTarget("/torus1") protoindices = pi.GetProtoIndicesAttr() protoindices.Set([randint(0,2) for x in range(numinstances)]) pos = pi.GetPositionsAttr() pos.Set([[float(x * 5), 3.0, 0.0] for x in range(numinstances)]) rot = pi.GetOrientationsAttr() rot.Set([Gf.Quath(*list(hou.Quaternion(hmath.buildRotate(random()*180, random()*360, random()*270)))) for x in range(numinstances)]) scl = pi.GetScalesAttr() scl.Set([[random()*2+0.2]*3 for x in range(numinstances)])
Solaris and Karma » How to utilize Component Builder extra layer
-
- NMVHS
- 30 posts
- Offline
BryanRayAha, I forgot to check the scene graph. Thanks Bryan!
The extra layer will be expressed in the Scene Graph as another descendant of the asset. For instance, if you had 'light1' in your extra layer, then your component output (assuming otherwise default configuration) should have descendants called 'geo', 'mtl', and 'light1'. You could control the light using a Prune, Light Edit, or Light Mixer, just like any other primitive.
Knowing the standard prim path outputs, you could build a primitive pattern to select the extra layers. For instance:
/componentoutput1/* ^(/componentoutput1/geo /componentoutput1/mtl)
That selects everything under /componentoutput1 except for 'geo' and 'mtl'.
Solaris and Karma » Component Builder Variant troubles
-
- NMVHS
- 30 posts
- Offline
HeileifNMVHSAhmedHindyI'm exploring a similar setup with for each loop. I wonder how you set up the component output node in the end? I lost all the variants somehow after adding component output node.The solution to this problem is to use one ComponentMaterial node per geometry variant. You need to plug them between the ComponentGeometry nodes and the ComponentGeometryVariants node. You can hook them all to the same materialLibrary node.
this maybe works for this simple setup, but what about a for loop for the component geometry lop that feeds into the componentGeometryVariants lop?
I cant get the materials to apply to each variant except the last variant.
Thanks!
I have the same problem :/
I had a look inside Component Output node, it has its own way to determine where to read geo and materials. It’s quite complex, so I changed the node mode to “input geo” instead of “upstream input” (I might get the name wrong, but it’s the first setting in Component Output node).
It works but you don’t have geo / mat as separate usd after output, only payload, but that’s ok. It’s designed that way to export custom asset setups.
Solaris and Karma » How to utilize Component Builder extra layer
-
- NMVHS
- 30 posts
- Offline
Hello!
I'm following the component builder tutorial. I can see adding extra stuff as an extra layer can be quite useful.
Let's say we have a lamp asset. I added a light as extra layer. Now in layout, I reference in the lamp asset, how can I control the lamp light on and off? Basically is there way to control this extra layer?
Thanks!
I'm following the component builder tutorial. I can see adding extra stuff as an extra layer can be quite useful.
Let's say we have a lamp asset. I added a light as extra layer. Now in layout, I reference in the lamp asset, how can I control the lamp light on and off? Basically is there way to control this extra layer?
Thanks!
Solaris and Karma » Component Builder Variant troubles
-
- NMVHS
- 30 posts
- Offline
AhmedHindyI'm exploring a similar setup with for each loop. I wonder how you set up the component output node in the end? I lost all the variants somehow after adding component output node.The solution to this problem is to use one ComponentMaterial node per geometry variant. You need to plug them between the ComponentGeometry nodes and the ComponentGeometryVariants node. You can hook them all to the same materialLibrary node.
this maybe works for this simple setup, but what about a for loop for the component geometry lop that feeds into the componentGeometryVariants lop?
I cant get the materials to apply to each variant except the last variant.
Thanks!
Technical Discussion » Network Share Folder not working
-
- NMVHS
- 30 posts
- Offline
ghostpro+1 here, have you found out the solution?
I think I have narrowed down that my client cannot seem to access the shared folder through Hqueue client. The client can see the files just fine through windows explorer. Does anyone have experience with the log on options for the Hqueue client service? I am only running a local account on the client machine. In order to map the shared network folder I had to use a username and password which is seperate from the local account.
Solaris and Karma » For each variant?
-
- NMVHS
- 30 posts
- Offline
goldleafThis is very helpful. Thanks!
The For Each LOP is not actually changing the variant, it's just cycling through the variant set's values (i.e. all of the "model" variants). Similarly, when iterating over primitives or numbers, those are just values filling out the context option values.
To see these values in this case, you could use a Set Variant LOP. Set the prim path to "/model" and variant set name to "model". Then you can use `@VARIANTNAME` set the variant. If you don't want to author the setting of this variant, append a Layer Break after the Set Variant node.
To edit the variants via For Each LOP, you'll also need an Add Variants LOP. You just need to make sure all of your additions/modifications are children of the variant primitive (i.e. "/test" in this case).
This is a workflow we want to improve in future releases. Hopefully this example helps in the meantime.
Solaris and Karma » For each variant?
-
- NMVHS
- 30 posts
- Offline
Hello!
I'm trying to iterate thru a prim's variants.
I expected it to work the way as SOP for each does. When I display Null1, it would show current variant being iterated. But it does not. What did I get wrong here?
And is it possible to apply different value clip to each variant?
Thanks!
I'm trying to iterate thru a prim's variants.
I expected it to work the way as SOP for each does. When I display Null1, it would show current variant being iterated. But it does not. What did I get wrong here?
And is it possible to apply different value clip to each variant?
Thanks!
Edited by NMVHS - Jan. 11, 2023 12:30:47
Solaris and Karma » Is component builder just for static geometry?
-
- NMVHS
- 30 posts
- Offline
Is it possible to have a looped animation built in an asset with component builder, e.g. a waving flag or burning tree?
I'm experimenting this with putting value clip in component builder, doesn't seem to work.
I'm experimenting this with putting value clip in component builder, doesn't seem to work.
-
- Quick Links