Automatically compile foreach blocks in SideFX Houdini Sop context.
See SideFX's documentation on compiled blocks
- Creates block_begin nodes at right places on the network, pairing them to the right block_end node. Works for nested foreach blocks.
- Creates compile_begin and compile_end nodes at right places on the network.
- For each node in the block (supports keyframes) :
-
Creates the spare inputs needed by Hscript parameter expressions, and setting it to the right relative node path.
-
Replaces all node paths in Hscript parameter expressions by the corresponding spare input number.
-
Replaces all inputs references in Hscript parameter expressions by the corresponding spare input number.
List of supported Hscript functions for input references
- arclen
- arclenD
- attriblist
- bbox
- centroid
- curvature
- degree
- detail
- detailattriblist
- detailattribsize
- detailattribtype
- details
- detailsmap
- detailsnummap
- detailvals
- edgegrouplist
- edgegroupmask
- groupbyval
- groupbyvals
- hasdetailattrib
- haspoint
- haspointattrib
- hasprim
- hasprimattrib
- hasvertexattrib
- isclosed
- iscollided
- isspline
- isstuck
- iswrapu
- iswrapv
- listbyval
- listbyvals
- metaweight
- mindist
- nearpoint
- normal
- npoints
- npointsgroup
- nprims
- nprimsgroup
- nuniquevals
- nvertices
- nverticesgroup
- point
- pointattriblist
- pointattribsize
- pointattribtype
- pointavg
- pointdist
- pointgrouplist
- pointgroupmask
- pointlist
- pointneighbours
- pointpattern
- points
- pointsmap
- pointsnummap
- pointvals
- prim
- primattriblist
- primattribsize
- primattribtype
- primdist
- primduv
- primgrouplist
- primgroupmask
- primlist
- primneighbours
- prims
- primsmap
- primsnummap
- primuv
- primvals
- realuv
- seampoints
- spknot
- surflen
- uniqueval
- uniquevals
- unituv
- uvdist
- vertex
- vertexattriblist
- vertexattribsize
- vertexattribtype
- vertexgrouplist
- vertexgroupmask
- vertexs
- vertexsmap
- vertexsnummap
- vertexvals
- volumeaverage
- volumegradient
- volumeindex
- volumeindextopos
- volumemax
- volumemin
- volumepostoindex
- volumeres
- volumesample
- volumevoxeldiameter
- xyzdist
-
Future features
The following features may be added in the future :
- support of variables like
$CEX
,$CEY
and$CEZ
for example - non "compile-able" nodes detection
- maybe some kind of workaround for channels referencing channels using parameters expressions
Note
For any feature request, please fill the form here.
Download the last stable release of Houdini Auto Compile Block.
Copy the houdiniAutoCompileBlock
and packages
folders and paste it in your $HOUDINI_USER_PREF_DIR
directory.
Note
HOUDINI_USER_PREF_DIR
Windows default value:
C:\Users\%username%\OneDrive\Documents\houdiniX.Y
or C:\Users\%username%\Documents\houdiniX.Y
macOS default value:
/Users/%username%/Library/Preferences/houdini/X.Y
Right click (RMB button) on any Sop node. There should be a sub menu called Auto Compile. You will have several options :
- Update node
- It will convert your Hscript expressions referring to spare inputs instead of node paths or inputs references.
- Compile block
- It will update all nodes in block, create new block_begin nodes and new compile_begin and compile_end nodes.
OS
- Windows
Houdini Version
- Houdini 20.0
- Houdini 19.5
Note
Houdini Auto Compile Block should work in Linux/macOS, however this has not been tested yet and is not officially supported.
Houdini Auto Compile Block should work in some previous versions of Houdini, however this has not been tested yet and is not officially supported.
If you are experiencing any issue, please create a bug report.
Known issues are listed here.
See CHANGELOG file
See LICENSE file
See NOTICE file