COLLECTED QUALITY OF LIFE NOTES

FOR HOUDINI
————————————-
##Set parm value through shelf tool
hou.node('/obj/geoContainer/nodeName/').parm('foo').set(1)
————————————-
//remap attrib
@foo= chramp ("Remap",@foo);
————————————-
//fit expression
@foo = fit01(@foo, chf("Min"), chf("Max"));
————————————-
//select first point of each curve
vertexprimindex(0, @vtxnum)==0
————————————-
//expression group for selecting last point of prim curve
vertexprimindex(0, @vtxnum)== (@numvtx-1)
————————————-
//blendshape points using attribute
@P *= (1-@opinput0_foo * ch("intensity"));
@P *= (@opinput1_P * @opinput0_foo * ch("intensity"));
//alternatively, thank you to Christian Bohm from hdbp.io website
v@P=lerp(v@P, point(1,'P',@ptnum), f@foo*ch('Blend'));
————————————-
//make gradient in one directions limited by bounding box
vector bb =relbbox(0,@P);
f@foo = chramp('Falloff',bb.z);
————————————-
//attrib ramp along hair guide, thank you to Kai Stavginski at sideFX
@foo = 1- chramp ("foo", float (vertexprimindex (0,@vtxnum)) / (@numvtx-1));
————————————-
//read subframe data
`int($FF*100)`
————————————-
//cyclical animation expression (for animated noise)
 (sin($F*10)*2)
————————————-
//make obj transparent on viewport
@Alpha= chf("Alpha");
————————————-
//reference to this node input
`opinputpath("../", 0)`
————————————-
//reference to this node parm
`opdigits(".")`
————————————-
//turn table camera
fit($F,$FSTART,$FEND,0,360)
 ————————————-