ctrl+clik on the brain is quick shortcut
Archived post by ajk48n
Here’s that dops page translated to English, and converted to a PDF. I’d still recommend having the original webpage open, since there’s some animated diagrams on it, and links to a bunch of example files
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20200902/03/20/DOPAdvancedBasics_1.pdf
Archived post by Ambrosiussen
Here’s a handy menuscript snippet to get all unique values of a certain attribute to show up in the little parm dropdown menu. Example with name attribute on points: “`import hou
AllAttribValues = set(hou.pwd().geometry().pointStringAttribValues(‘name’)) Pairs = [[x, x] for x in AllAttribValues]
return sum(Pairs, [])“`
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20205701/24/20/unknown.png
Archived post by WhileRomeBurns
the other thing houdini does is accumulate air resistance and target velocity if you have 2 or more wind forces. the function to do that yourself: “`void addWindForce(vector targetv2; float airresist2; vector _targetv; float _airresist) {
float airresist_sum = _airresist + airresist2; _targetv = (_targetv * _airresist + targetv2 * airresist2) / airresist_sum; _airresist = airresist_sum; }“`
Archived post by WhileRomeBurns
if you want to use `targetv`, `airresist`, `drag` you could do the math yourself and store them in custom attributes like `@c_targetv` so bullet doesn’t pick um up and make nans
it’ll be something like this:
“`float imass = 1.0 / @mass;
@c_airresist = @c_airresist * @c_drag; if (@c_airresist > 0) {
// the relative ang vel v@v -= v@c_targetv;
// quadratic drag v@v *= 1.0 / ( (@c_airresist * imass * @TimeInc * length(v@v)) + 1.0 );
// restore frame v@v += v@c_targetv; }“`
i don’t see how that could produce a nan unless c_airresist was negative or mass was zero
which you can add checks for if you like
just skip zero-mass dudes
Archived post by CiaranM
It’s a SOP Solver, so just do your group masking the SOP way 🙂 Specifically, set the group mask on your wrangle nodes to @name=boxes* or @name=spheres*. You really only need a single SOP solver (with Data Name and Group back to default) with as much wrangling per-group as you like inside of it. I really like to keep it simple and keep all of my packed geometry coming from a single SOP source into a single RBD Packed Object. Do as much as you can with SOP-type workflows, avoiding DOP anachronisms at all costs.
Archived post by PaqWak
Hey @flight404 … to simplify a little bit the process you can also just use HF + remesh + messing with some noise in vops.
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20201901/14/20/houdinifx_itwZgqoEWE.png
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20201901/14/20/quickcliff.hipnc
Archived post by eetu
here’s the loop-a-2d-plane-though-a-3d-noise idea. doesn’t really work with 15 frames, but at ~60 it’s pretty ok
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20202101/13/20/ee_3d_loopnoise.hiplc
Archived post by lcrs
nuke not shipping with an autowrite or easy variables is so silly… fwiw the equivs of $HIP, $HIPFILE and $OS respectively are: “`[file dir [value root.name]] [string range [file tail [value root.name]] 0 end-3] [value name]“`
Archived post by Antidistinctlyminty
@aswaab @mestela Do a reload of the module
To refresh panels _you have to import that module explicitly first_ In my case it’s `import nymus.houdini.ui.panel` After which you’re free to use `reload(nymus.houdini.ui.panel)` Then hit the panel reload button. All shall be refreshed.