Here is a simple python script for Houdini, OTLCheck
This script allows the user to check which sub-otl(s) are used inside a selected otl.
It checks all sur subchildren nodes and will print a list of otls and path in the console or in the python shell.
If the otl uses a uncomplete asset definition the script will output a warning:
WARNING: node <node path>, is embedded.
The script skips all otls lib built-in shipped with Houdini.
Wednesday, April 9, 2014
Saturday, March 8, 2014
Houdini Engine test with Unity
Here is a work in progress tool in order to test the Houdini Engine with Unity.
This tool helps the
user to create different and procedural kind of "labyrinth-type"
level designs in Unity by using Houdini Digital asset ( .otl ).
Features:
- Create 3 type of labyrinth models with Straight modules ( full instancied models), Vegetal, or "random direction vegetal".
- Extra path inputs as houdini curves directly in Unity.
- Project Vegetal and "Random direction vegetal" model on custom terrain mesh.
- Create a player starting point randomly in the labyrinth.
- Override every models used as instance to built a new labyrinth model ( Labyrinth modules or trees models for Vegetal type ).
- Density, radius, etc. Options for vegetal labyrinth.
Video example:
Thursday, February 20, 2014
GJ round decimal
Just finished a small utility node, GJ round decimal which allows the user to round a float value, you can keep from 0 decimal ( convert to int ), to 4 decimals.
Saturday, February 15, 2014
WallGen (Voronoï) updated
I have just updated the wallgen tool, with 3 new feature: Density noise, holes parameters and erode top options. More info here.
It has been also tested in Maya with the Houdini Engine ( more info here ), with houdini installed ( apprentice version works fine ) you can now use the asset ( .otl ) inside maya directly :
It has been also tested in Maya with the Houdini Engine ( more info here ), with houdini installed ( apprentice version works fine ) you can now use the asset ( .otl ) inside maya directly :
Saturday, February 8, 2014
Houdini OTL: Layered Texture
Here is a new little asset, still work in progress, Layered Texture.
Allows the user to create a texture map made of multiple layers inside a material.
Parameters:
- 1 Main layer called "base map", UVs built switch with transforms for main layer
- Layers:
Layer 0 on top of main layer ( generated by default )
Add / remove / clear layers button to add layers.
Enable / Disable layer checkbox
Mode: Multiply, Substract, Mix and Add
UVs transformation for each layers
Layers are comped on top of each other: L2 on L1 (...) on L0 on MAIN.
Python source code available here
Allows the user to create a texture map made of multiple layers inside a material.
Parameters:
- 1 Main layer called "base map", UVs built switch with transforms for main layer
- Layers:
Layer 0 on top of main layer ( generated by default )
Add / remove / clear layers button to add layers.
Enable / Disable layer checkbox
Mode: Multiply, Substract, Mix and Add
UVs transformation for each layers
Layers are comped on top of each other: L2 on L1 (...) on L0 on MAIN.
Python source code available here
Wednesday, November 27, 2013
Python SOP node: Connectivity merge groups
Here is a custom python SOP node which merges groups together if they are not connected to each other.
Pattern: Groups used as input
Ouput Groups: Create new groups with merges groups
Keep Old: Keep old groups
If interested the python source code is availaibe here: Python Source Code
Download Connectivity Merge Groups
Parameters:Pattern: Groups used as input
Ouput Groups: Create new groups with merges groups
Keep Old: Keep old groups
If interested the python source code is availaibe here: Python Source Code
Saturday, November 16, 2013
WallGen - Voronoï - Houdini otl
Here is a new tool, derived from the fist WallGen otl. This one use Voronoï noise pattern in order to create 3D rough wall.
It takes as input either a closed geo, opened geo, or curve ( must be one primitive poly or nurbs curve ).
Options:
Input:
Edit mode: Hides the wall to have very fast feedback when you change input options ( for instance size of the mesh generated from the curve input ).
Input: Switch to different kind of inputs => closed geo, opened geo, or curve.
Inset (Opened geo only): Applies inset to the input polygons
Width(Curve only): The width value of the mesh generated by the curve.
Heigth(Curve only): The heigth value of the mesh generated by the curve.
UV scale (Curve only): The scale of the uvs applied to the mesh.
Wall Controls:
Density: Density of the noise pattern
Density Attribute: Point attribute used to drive the density
Density Noise: Create a density attribute according a noise pattern (new)
Density Noise Size: Size of the noise pattern (new)
Density Noise Density: Density of the noise pattern (new)
Bias: Bias of the density attribute higher value will increase the density where the density attribute value is the higher.
Bevel: Applies bevel on the pieces generated ( relative ).
Smooth: Applies mesh smooth on pieces generated.
Erode top: Erode top of the wall according to an angle value ( N.y ) (new)
Erode angle: Angle value of erode process (new)
UV Scale: Scale the UVs applied on each pieces.
Keep Input Geo: Keep the input geo underneath the wall pieces.
Peak Geo: Peak value applied to the input geo.
Scale Geo: Uniform scale applied to the input geo ( pivot at centroid ).
Holes: Create holes on the geometry (new)
Export:
Export Groups: Put every pieces generated into a different primitive group.
Path: Output path ( must end with ".obj" )
Export: Export the mesh.
Options:
Input:
Edit mode: Hides the wall to have very fast feedback when you change input options ( for instance size of the mesh generated from the curve input ).
Input: Switch to different kind of inputs => closed geo, opened geo, or curve.
Inset (Opened geo only): Applies inset to the input polygons
Width(Curve only): The width value of the mesh generated by the curve.
Heigth(Curve only): The heigth value of the mesh generated by the curve.
UV scale (Curve only): The scale of the uvs applied to the mesh.
Wall Controls:
Density: Density of the noise pattern
Density Attribute: Point attribute used to drive the density
Density Noise: Create a density attribute according a noise pattern (new)
Density Noise Size: Size of the noise pattern (new)
Density Noise Density: Density of the noise pattern (new)
Bias: Bias of the density attribute higher value will increase the density where the density attribute value is the higher.
Bevel: Applies bevel on the pieces generated ( relative ).
Smooth: Applies mesh smooth on pieces generated.
Erode top: Erode top of the wall according to an angle value ( N.y ) (new)
Erode angle: Angle value of erode process (new)
UV Scale: Scale the UVs applied on each pieces.
Keep Input Geo: Keep the input geo underneath the wall pieces.
Peak Geo: Peak value applied to the input geo.
Scale Geo: Uniform scale applied to the input geo ( pivot at centroid ).
Holes: Create holes on the geometry (new)
Export:
Export Groups: Put every pieces generated into a different primitive group.
Path: Output path ( must end with ".obj" )
Export: Export the mesh.
If need more help: contact@guillaume-j.com
Friday, July 19, 2013
GJ Attribute <--> Bitmap ( Houdini )
Here are 2 little utilities, "Attribute to bitmap" and "Bitmap to attribute"
Attribute to bitmap:
Simple node which allows the user to bake attribute values to a bitmap (tga, exr, rat...).
Bitmap to attribute:
Simple SOP node which allows to read data from a bitmap to point attribute.
- use only luminance toggle
- Multiplier ( intensity )
- Output Attribute Name
- Change the class of the output attribute ( by default it's point ).
Attribute to bitmap:
Simple node which allows the user to bake attribute values to a bitmap (tga, exr, rat...).
Bitmap to attribute:
Simple SOP node which allows to read data from a bitmap to point attribute.
- use only luminance toggle
- Multiplier ( intensity )
- Output Attribute Name
- Change the class of the output attribute ( by default it's point ).
Thursday, July 18, 2013
GJ Attribute Math ( Houdini )
Here is a new utility .otl: AttributeMath
Format: Houdini .otl (Digital asset)
Feature:
SOP node which allow the user to do math operation between 2 attributes.
Where A is an attribute and B is either an attribute or a constant, you can do:
- A - B
- A + B
- A * B
- A / B
- A % B (modulo)
- Remap A values according to a ramp
- Fit Range A values
Output values are stored in either attribute A or in a new attribute.
Feature:
SOP node which allow the user to do math operation between 2 attributes.
Where A is an attribute and B is either an attribute or a constant, you can do:
- A - B
- A + B
- A * B
- A / B
- A % B (modulo)
- Remap A values according to a ramp
- Fit Range A values
Output values are stored in either attribute A or in a new attribute.
Examples:
Add:
Multiply by a constant:
Remap values by a ramp:
Thursday, July 11, 2013
GJ Attribut Visu ( Houdini )
Here is a new simple utility otl, AttributVisu.
Simple SOP node which allows the user to visualize attributs ( point, vertex, primitives and details ) in 3D view via a ramp color.
Support any type of regular / custom attributs.
Simple SOP node which allows the user to visualize attributs ( point, vertex, primitives and details ) in 3D view via a ramp color.
Support any type of regular / custom attributs.
Sunday, July 7, 2013
GJ Isolate Selection ( Houdini )
Here is another utiliy: Isolate selection for Houdini
This python script allows the user to isolate an object ( by hiding all others ). Then to display back the objects when you exit the isolate mode.
The script keeps in memory which nodes were displayed or hidden before the isolate process. ( it uses a hou.session python module ).
Python Script for Houdini
How to use:
- Copy the .py file in "C:\Program Files\Side Effects Software\Houdini XX.X.xxx\python26\lib" or whatever python folder used by Houdini
- Create a new tool in a shelf: Right-clic -> new tool
- In tab "Script" write these two lines:
import IsolateSelection
reload(IsolateSelection)
Select an object to isolate that object by a clic on the tool just created, clic again on that tool to display back all other nodes.
This python script allows the user to isolate an object ( by hiding all others ). Then to display back the objects when you exit the isolate mode.
The script keeps in memory which nodes were displayed or hidden before the isolate process. ( it uses a hou.session python module ).
Python Script for Houdini
How to use:
- Copy the .py file in "C:\Program Files\Side Effects Software\Houdini XX.X.xxx\python26\lib" or whatever python folder used by Houdini
- Create a new tool in a shelf: Right-clic -> new tool
- In tab "Script" write these two lines:
import IsolateSelection
reload(IsolateSelection)
Select an object to isolate that object by a clic on the tool just created, clic again on that tool to display back all other nodes.
Wednesday, July 3, 2013
GJ Slope ( Houdini )
I'm starting a new collection of utilities otls for houdini, here is the first one, called GJ_Slope.
It's a simple node which create a custom attribut driven by the slope of a surface.
Feature:
- Custom attribut name
- Ramp multiplicator
- Display value to Color ( Cd )
- Mult / Add by constant
- Invert value
It's a simple node which create a custom attribut driven by the slope of a surface.
Feature:
- Custom attribut name
- Ramp multiplicator
- Display value to Color ( Cd )
- Mult / Add by constant
- Invert value
Subscribe to:
Posts (Atom)



















