Hi!
I ended up deleting my posts because I wrote something stupid… like repeat what the OP had already said
I guess it all depends how much work you like doing in SOPs, if what I want is to use POPs to advect an ‘object’, then I much prefer to apply those attributes on the object itself in SOPs. If the points are in fact a source for multiple other points, the POP source would be my way to go.
EDIT: I had a look at the original hip, and deleting the pop source node seems to give the expected behaviour…
Found 256 posts.
Search results Show results as topic list.
Technical Discussion » Use Points as Particles
- friedasparagus
- 402 posts
- Offline
Houdini Lounge » Autorig Question
- friedasparagus
- 402 posts
- Offline
Are you comfortable editing parameter interfaces? You can always drag and drop the blend node parameter onto the parameter interface for the rig, and then you won't have to keep diving in and out.
I'm looking forward to the up coming masterclass on the autorigs, I'm hoping that it will evolve into a proper rigging API. I'm sure that all will be ironed out before too long
I'm looking forward to the up coming masterclass on the autorigs, I'm hoping that it will evolve into a proper rigging API. I'm sure that all will be ironed out before too long
Houdini Lounge » Autorig Question
- friedasparagus
- 402 posts
- Offline
Hi again!
(this is from memory as I just tried to load an autorig in 16.0.530 and it is currently broken )
I have a feeling that the eyelids, jaw and eyeball ctrls are something that are forthcoming in the autorig…
For the chest following the lower body, there is a blend node between the chest and pelvis controls I think inside the generated HDA, but by default it's parameters are not exposed to the HDA's parameter interface, you'll have to crack it open and have a dig around for it. Of course not ideal, but I'd use it as a good opportunity to learn some stuff about rigs in houdini
When I last checked, the IK/FK matching had a couple of issues which I have flagged up. One of these is related to the parenting relationships of the IK end affector for the arm bones and the hand control. I did come up with a fix for this, but I can't remember if I saved it out… Basically the problem revolves around the arm IK end affector being parented underneath the hand root control (indirectly), and that there was no parenting between the hand root and the bones/FK controls for the arm.
I'm sorry I can't be more crystal clear about this right now, if you need more info I'll get an earlier build reinstalled.
EDIT: the blend node is called Spine_chest_follow_COG
(this is from memory as I just tried to load an autorig in 16.0.530 and it is currently broken )
I have a feeling that the eyelids, jaw and eyeball ctrls are something that are forthcoming in the autorig…
For the chest following the lower body, there is a blend node between the chest and pelvis controls I think inside the generated HDA, but by default it's parameters are not exposed to the HDA's parameter interface, you'll have to crack it open and have a dig around for it. Of course not ideal, but I'd use it as a good opportunity to learn some stuff about rigs in houdini
When I last checked, the IK/FK matching had a couple of issues which I have flagged up. One of these is related to the parenting relationships of the IK end affector for the arm bones and the hand control. I did come up with a fix for this, but I can't remember if I saved it out… Basically the problem revolves around the arm IK end affector being parented underneath the hand root control (indirectly), and that there was no parenting between the hand root and the bones/FK controls for the arm.
I'm sorry I can't be more crystal clear about this right now, if you need more info I'll get an earlier build reinstalled.
EDIT: the blend node is called Spine_chest_follow_COG
Edited by friedasparagus - Feb. 26, 2017 04:20:00
Technical Discussion » calculating greater circle and connecting two random points on sphere
- friedasparagus
- 402 posts
- Offline
no problem, it's a very simple and rough example. There are lots of more sophisticated ways around the problem, but a starting point is always good
Technical Discussion » H16 Grooming
- friedasparagus
- 402 posts
- Offline
Hi,
if you hit the ‘recache strokes’ button at the top of the Guide Groom parameter tab that should update your groom.
if you hit the ‘recache strokes’ button at the top of the Guide Groom parameter tab that should update your groom.
Houdini Lounge » 16 is amazing!
- friedasparagus
- 402 posts
- Offline
BabaJ
* Can now drag parameters into Animation window that are driven by Chop export.
Hello there,
Could you fill me in on this one? Sounds intriguing…
Technical Discussion » calculating greater circle and connecting two random points on sphere
- friedasparagus
- 402 posts
- Offline
Hi,
don't know if this is the result you were thinking of. Much dirtier than a nice solution to the greater circle, but maybe close to what you were thinking. Changing the seed value on the scatter moves the points around, probably not ideal for you, but was a quick way of getting them on there
don't know if this is the result you were thinking of. Much dirtier than a nice solution to the greater circle, but maybe close to what you were thinking. Changing the seed value on the scatter moves the points around, probably not ideal for you, but was a quick way of getting them on there
Work in Progress » SVG import
- friedasparagus
- 402 posts
- Offline
Ok, tried looking into tidying this module dependency issue, but with no joy. The confusion came from having python2.7.12 installed locally, which seems happier with the .pth file that pip installs with the svg.path module. So, the adding of the init file still needs doing.
If anyone has any tips for getting around this that'd be great
If anyone has any tips for getting around this that'd be great
Work in Progress » SVG import
- friedasparagus
- 402 posts
- Offline
Sorry, I suck. Clicked the little checkbox next to the bin!
And I suck again. Forgot to mention you need to install the svg.path module into your one of your scripts folders.
I used:
py -2.7 -m pip install svg.path –target CUsers/$username/Documents/houdini15.5/scripts/python –ignore-installed
The other caveat here is that you seem to need to add an __init__.py file to the generated ‘svg’ folder in order for houdini to find the module inside the sub-folder ‘path’
Oh dear, bit of a faff.
And I suck again. Forgot to mention you need to install the svg.path module into your one of your scripts folders.
I used:
py -2.7 -m pip install svg.path –target CUsers/$username/Documents/houdini15.5/scripts/python –ignore-installed
The other caveat here is that you seem to need to add an __init__.py file to the generated ‘svg’ folder in order for houdini to find the module inside the sub-folder ‘path’
Oh dear, bit of a faff.
Edited by friedasparagus - Dec. 8, 2016 09:49:39
Work in Progress » SVG import
- friedasparagus
- 402 posts
- Offline
Hello,
Just been spending the morning getting a rough as guts, python svg import on the go.
Here's the hda.
Reading in the file with xml.dom so should be fairly easy to extend to read colour information etc.
Thought it might be useful to someone somewhere
Just been spending the morning getting a rough as guts, python svg import on the go.
Here's the hda.
Reading in the file with xml.dom so should be fairly easy to extend to read colour information etc.
Thought it might be useful to someone somewhere
Edited by friedasparagus - Dec. 8, 2016 09:44:49
Technical Discussion » HDK compile error - unary minus in sys_memory.h
- friedasparagus
- 402 posts
- Offline
Ok, so ding-dong here has managed to get around it after all. You can set “disable specific warnings” in Visual Studio to 4146 and the compiler goes ahead.
Please feel free to flag up any alternatives/say why that's not a good idea
Please feel free to flag up any alternatives/say why that's not a good idea
Technical Discussion » HDK compile error - unary minus in sys_memory.h
- friedasparagus
- 402 posts
- Offline
Hello there,
Just getting an environment setup for working on some hdk bits, and I'm getting stumped by the C4146 error generated by line 97 in sys_memory.h
Any ideas about getting around this without fiddling about with the original file?
Thanks in advance
Just getting an environment setup for working on some hdk bits, and I'm getting stumped by the C4146 error generated by line 97 in sys_memory.h
Any ideas about getting around this without fiddling about with the original file?
Thanks in advance
Technical Discussion » Trail connected as polygons
- friedasparagus
- 402 posts
- Offline
Hi there,
Yes it is indeed a point number issue, connected to the lifespan of your particles. When one dies, all the point numbers above it shift by one, and that's what the trail SOP uses to connect them. The trail SOP can compute velocity by point id but not connect them by id, which is a shame. Anyway, there's a solution that was posted here [forums.odforce.net],
make sure you've set the POP source to create an id attribute, and then set the trail to ‘Preserve Original’ and use an Add SOP to add polygons by Group, and ‘add By Attribute: id’.
Should do the trick
Yes it is indeed a point number issue, connected to the lifespan of your particles. When one dies, all the point numbers above it shift by one, and that's what the trail SOP uses to connect them. The trail SOP can compute velocity by point id but not connect them by id, which is a shame. Anyway, there's a solution that was posted here [forums.odforce.net],
make sure you've set the POP source to create an id attribute, and then set the trail to ‘Preserve Original’ and use an Add SOP to add polygons by Group, and ‘add By Attribute: id’.
Should do the trick
Technical Discussion » Bake Texture 15.5 example
- friedasparagus
- 402 posts
- Offline
Hi @mdavies,
Yes, tangent normals appear to be working just fine. Is there any news on the displacement issue?
Cheers,
Henry
Yes, tangent normals appear to be working just fine. Is there any news on the displacement issue?
Cheers,
Henry
Houdini Indie and Apprentice » Passing an Expression to a Group Node within Digital Asset
- friedasparagus
- 402 posts
- Offline
Glad to hear you got to the bottom of that one. I would add as a footnote that this is probably not the best way to structure the asset. And in general any mention of the eval() function is met with the shaking of heads and/or sharp intakes of breath, so steer clear at the cocktail party conversations
Another big catch is that eval() will scream at you if you try any variable assignment, so any multi line expressions are out.
If you get too into passing expressions around and up and down the hierarchy it can turn into a nightmare to debug also. So if you know you want to address the PT local, you can always just have a ‘threshold’ variable or something so your group node expression would be:
heck, you could even have a string parm for the local to be compared to:
All that said, in this simple instance you're probably ok with eval()
Another big catch is that eval() will scream at you if you try any variable assignment, so any multi line expressions are out.
If you get too into passing expressions around and up and down the hierarchy it can turn into a nightmare to debug also. So if you know you want to address the PT local, you can always just have a ‘threshold’ variable or something so your group node expression would be:
lvar('PT') < hou.parm("../../threshold").eval()
heck, you could even have a string parm for the local to be compared to:
lvar(hou.parm("../../local_var_name").eval()) < hou.parm("../../threshold").eval()
All that said, in this simple instance you're probably ok with eval()
Houdini Indie and Apprentice » Passing an Expression to a Group Node within Digital Asset
- friedasparagus
- 402 posts
- Offline
The reason why the first one is working is because you're giving houdini everything it needs to evaluate the expression i.e. you're defining all of the variables involved.
The trouble with using lvar('PT') is that the node in which the expression evaluates needs to be iterating over the geometry's components (points, prims, vertices) to make sense of the local variable ‘PT’.
In this expression:
the hou.parm(“../my_hda_expression”).eval() reads the parameter you set at ‘hda level’ as a string
the outer eval(…) then executes that string as an expression in the context of the group node (where PT makes sense to houdini)
Arg, did that make any sense?! maybe this little example helps…
The trouble with using lvar('PT') is that the node in which the expression evaluates needs to be iterating over the geometry's components (points, prims, vertices) to make sense of the local variable ‘PT’.
In this expression:
eval(hou.parm("../my_hda_expression").eval())
the hou.parm(“../my_hda_expression”).eval() reads the parameter you set at ‘hda level’ as a string
the outer eval(…) then executes that string as an expression in the context of the group node (where PT makes sense to houdini)
Arg, did that make any sense?! maybe this little example helps…
Edited by friedasparagus - July 26, 2016 08:57:22
Houdini Indie and Apprentice » Passing an Expression to a Group Node within Digital Asset
- friedasparagus
- 402 posts
- Offline
Hi there,
Thanks for posting that one up, it isn't something I had ever tried out before. Turns out that the answer was (again), more Python [docs.python.org] than houdini. Just reference your string parameter (the expression) on the digital asset inside an eval():
So this would be the expression in the group SOP:
Hope that's what you were thinking of
Thanks for posting that one up, it isn't something I had ever tried out before. Turns out that the answer was (again), more Python [docs.python.org] than houdini. Just reference your string parameter (the expression) on the digital asset inside an eval():
So this would be the expression in the group SOP:
eval(hou.parm("../my_hda_expression").eval())
Hope that's what you were thinking of
Edited by friedasparagus - July 26, 2016 04:38:44
Technical Discussion » Prefix path Python
- friedasparagus
- 402 posts
- Offline
Strings in python are sequences of characters so you can concatenate them like lists or tuples, see python docs [docs.python.org]:
for p in geo.prims(): orig_path = p.attribValue("path") new_path = "prefix_" + orig_path p.setAttribValue("path", new_path)
Houdini Indie and Apprentice » Randomizing Geometry plugged into a RBD Solver
- friedasparagus
- 402 posts
- Offline
Hi Adnan,
sounds like it could be a case for packed primitives… do all the copying inside one sop and then bring that sop as one single RBD packed object. Does this seem like what you're after?
sounds like it could be a case for packed primitives… do all the copying inside one sop and then bring that sop as one single RBD packed object. Does this seem like what you're after?
Houdini Learning Materials » MantraSurface Bake
- friedasparagus
- 402 posts
- Offline
Hi,
yes I saw that too and got all excited. The tangent normals are generating just fine with the principled shader (not with the mantra shader though, even though the bake exports is in there), the displacement issue stills seems to be floating about.
I think it could well be the same thing, as the only way I can get the displacement channel to show any values is to set either a noise or texture based displacement on the shader on the hi-res object and even then it only returns the difference between the hi-res mesh and the effect of that displacement.
If you dig into it (unlocking the material also stops the bake from functioning, on all channels. Which put pay to my little debugging session ), there's a vex snippet in the bake outputs responsible for exporting the ‘Ds’ channel. But it doesn't reference the uvobject at all and if the displacement shader didn't run, just returns a zero vector… me thinks it might still be WIP
yes I saw that too and got all excited. The tangent normals are generating just fine with the principled shader (not with the mantra shader though, even though the bake exports is in there), the displacement issue stills seems to be floating about.
I think it could well be the same thing, as the only way I can get the displacement channel to show any values is to set either a noise or texture based displacement on the shader on the hi-res object and even then it only returns the difference between the hi-res mesh and the effect of that displacement.
If you dig into it (unlocking the material also stops the bake from functioning, on all channels. Which put pay to my little debugging session ), there's a vex snippet in the bake outputs responsible for exporting the ‘Ds’ channel. But it doesn't reference the uvobject at all and if the displacement shader didn't run, just returns a zero vector… me thinks it might still be WIP
-
- Quick Links