Houdini HScript

· Houdini MOC · #note/sink

Snippets

// animated texture frame numbering
path/to/texture/image_name_`padzero(5, clamp($F, 0, 120))`.exr
path/to/texture/image_name_`padzero(5, clamp($F+25, 0, 120))`.exr

// camera focus distance
vlength(vtorigin(".", "/obj/null1"))
vlength(vtorigin(".", opinputpath(".", 0)))

Common symbols

% modulus, remainder on integer division
&& logical operator AND
|| logical operator OR
>= greater than or equal (Do not reverse the order – won’t work)
<= less than or equal
< less than
> greater than
== equal comparison
!= not equal
`` backticks convert an expression into a string ie. ch(“../someparameter”) in the font node would print that verbatim, but putting this i backticks would give me the value
if if (condition, then part, else part), example if ($F > 0, 1, 0 )
ifs as above but returns a string, for example ifs($F>1,”Hi”,”There”)
int() integer, similar functions floor(), ceil(), round()
$F frame number integer
$FF frame number float
$CY copynumber, local to the copy node so to get the information to a node above you need to stamp it to retrieve it you use stamp expressions
stamp stamp(“../copy1”,”kermit”, 0) = stamp(node it is from, name you called the variable, default value just incase )