Applications
HoudiniUnreal EngineUnity 3DNukeMayaBlenderZBrushPythonMixed RealityMachine LearningGraphic DesignExtrasAboutHoudini > UE4
HDA Parameters
Verify that parameters are input into the HDA's Operator Type Properties by accessing the gear icon and selecting Type Properties
to input the parameters that are to be exposed; not the option Edit Parameter Interface
.
Integration with Megascan Assets
By default, the assets are imported into UE without collision geometry, but the following depicts the quick process by which to enable a simple collision for geo.
HDA with Megascan Assets
Test 1
Initial pass of HDA development for simple walkway lined with vegetation.
Unreal Instance Point Attribute
Point wrangle specified with VEX to attribute different variations of Megascan asset with corresponding points.
Reference for additional special attributes recognized for use in an HDA with UE:
Test 2
2nd iteration documentation some more features and parameter controls.
Blockout Geo Test
Houdini
Object Merge
blockout geo from inside HDA to separate Geo.- Uniform scale to 100 for conversion to Maya later.
File Cache
and export to .obj.
Maya
- Drag/drop .obj from Houdini to scene.
Export Geo
Freeze Transform
andDelete History
.Game Exporter
to .fbx.
UE4
- Verify that Hou Engine session is running in UE4. If not, restart via
File
>Restart the Houdini Engine Session
. - Verify Scale
Project Settings
> Houdini Engine
Archived Work
Test of HDA generated in Houdini with assigned attributes and basic controls for use in UE4.
Resources
Installation
Copy the HoudiniEngine
directory to the UE4 Plugins
> Runtime
directory.
Source: https://www.sidefx.com/docs/unreal/_getting_started.html
Niagara
Niagara ROP
Properties
- Keep Attributes: Add
pscale
; not included by default.
Resources
Point Cache Asset
This is the file exported from Houdini via the Labs Niagara ROP.
Properties
- Max Sample Time: Value identifies the duration of the point cache system. This needs to be correlated with the
Loop Duration
in the Niagara system, namely underEmitter Update
.
Niagara System
Enable Show Engine Content
& Show Plugin Content
in the Content Browser to access the Houdini Niagara Content
. This can be used as starting points for newly created Niagara systems. This can also be accessed within a new system via Add Emitter
.
Emitter Properties
- Emitter State
- Loop Duration: Coordinate this duration with the available
Max Sample Time
in the point cache asset. - Spawn Particles From Houdini Point Cache: Assign point cache asset.
- Particle Spawn
- Sample Spawned Houdini Point Cache: Assign point cache asset.
- Particle Update
- Sample Houdini Point Cache: Assign point cache asset.
- External forces can be applied here to vary dynamics even further than defined by point cache.
Particle Attributes
This is the outline of available attributes carried over from Houdini into UE4 via the point cache asset. Note that there are instances where data types need to be configured in the Niagara system to accommodate incoming data. The following instance highlight these strategies.
- Color
- Particle color updates seek vector4 data types, which include an alpha channel, but this is not included in the incoming point cache asset's vector3 color. To address this, use the drop-down menu next to the parameter input and select an option that allows for splitting the vector4 into a vector3 + float as separate values.
- Example: The Color module added to the Particle Spawn section has an option to
Make Linear Color From Vector and a Float
. With this setting reassigning the vector via the drop-down menu will access the Houdini color attribute as a vector3. - Scale & pscale
- The scale factor in a sprite size update seeks a vector2, but in the same way as the color property, there is an option to convert the vector2 to a
Vector 2D from Float
, which can then accept the float pscale attribute in the point cache asset.
Scrub FX in Sequencer Timeline
By default, FX actors will only play when the sequencer is played, but will not show up when scrubbed backwards. Steps are as follows:
- Add Niagara System to Sequencer as a track.
- Add Niagara Component to Niagara System Actor track.
- Add Niagara System Life Cycle Track to Niagara Component.
- Edit System Life Cycle Properties and change Age Update Mode to Desired Age.
Source
Guide
Documentation
Plugin Repository
Niagara System Component
Emitter
Hierarchy
Emitter Categories
Settings
Properties
State
The lifetime of the emitter
Particle Spawn
Properties when particles are initially spawned.
Particle Update
Properties after particles have spawned.
Emitter Modules
Particle Spawn
Lifetime
The particle lifetime is different than the emitter lifetime.
Particle Update
Spawn Rate
Particles / second
System
Accepts Emitter, which can then be placed into Scene.
Landscape
Materials
- Landscape Material used to define the layers within the landscape tool for painting different materials.
- Landscape Hole Material set up as a Mask with an Opacity Mask to define holes created by the 'visibility' attribute; from Hou.
- Use 'Landscape Visibility Mask' for 'Opacity Mask' to read the 'visibility' attribute.
Substance > Redshift3D
Workflow for utilizing Substance Material (.sbsar) in a Houdini COPnet and linking to a Redshift3D Material
Geometry With UVs
The following assumes the geometry to which the Redshift material is applied has properly mapped UVs.
Compositing Network (COPnet)
Labs Substance Archive
Set File Path to .sbsar file to access parameters for the specified Substance material.
Material Network (MATnet)
RS Material Builder
Link RS Texture for each diffuse, roughness, metallic, and normal maps.
RS Texture
Set Filename to COPnet reading .sbsar file, and specify Layer Name for respective texture map.
RS Bump Map
For normal, route through Bump Map to specify scale/intensity.
Reference: RS Normal Map Configuration
Source
Geometry Without UVs
The following variation of the aforementioned setup allows for the textures to mapped to geometry without preset UVs.
Material Network (MATnet)
RS Material Builder
As before, the RS Texture for each diffuse, roughness, metallic, and normal maps is linked but with an RS TriPlanar to account for the lack of UVs.
Side Note: The RS Point Attribute in the following is solely included to vary the spheres with their own @Cd point attribute in tandem with the Substance material.
Python Automation Functions
RS Material with Substance Presets
Function to populate RS Material with texture format specific to Substance Painter output:
Substance Material (COP) Link To RS Material
Function to nest COPnet and MATnet in GEOnet to encapsulate relative links, including preset for Substance Material/s in COPnet linked to Redshift Material in MATnet:
Resources
RS Material Coordination
USD
Geometry transitioned into LOP network, exported to USD, then to USDz.
Acronyms
Abbreviation | Definition | Notes |
---|---|---|
USD | Universal Scene Description | |
LIVRPS | Local, Inherits, Variant Sets, References, Payload, Specializes | Strength ordering for opinions and namespace composition in USD |
Terminology
Layer: File on disk
Primary Container: Primitives are the primary container object in USD
Stage: Resulting composition of layers
Primitives and computed indices are the only persistent scene graph (SG) objects kept in memory
Composition Arcs: Combination methods for layers of layer parts
Sublayer: Fixed graph locations
Uses Sublayer
Namespace: Path to prims in graph
Primitives are the primary namespace object
Can contain other primitives creating a namespace hierarchy on a stage
Attributes are second to Primitives
Opinions: Atomic elements defining value resolution
Defined by LIVRPS Strength Ordering
References: Pointers to content in memory
This is distinguished from packed prims on disk
Payload: Load applicable content as necessary to manage memory and processing
Instancing: Creates 'Prototypes', which are the objects being instanced
Each instance is the same
Cannot override beneath root prim
Can be 'broken' if necessary
Utilizes Instancer
SOP geometry defined as packed prims enter LOPs as instance-type prototypes
Variant Set: Set of alternatives
Non-destructive hierarchy
Uses Set Variants
LODs can be stored as variants
Uses Create LOD
Can be configured relative to camera position
Uses Auto LOD
Transition SOP to LOP (lighting operators)
Uses SOP Create
Modifications applied within a SOP Modify
Workflow Logic
SOP > LOP
Use output
node as outgoing node in SOP geo to manage consistent output from geometry object, which can link to SOP Import
in LOPs. SOP Import
can have path set to object since output
node defines consistent output. This strategy applies to all SOP import strategies within LOPs.
SG Hierarchy Definition
- Use
shop_materialpath
(SOP) to define hierarchy (LOP/SG) - Use
path
/name
attributes translated to kinds (LOP/SG) - Use primitive groups (SOP) translated to sub-components (LOP/SG)
Attribute Editing
USD Configure
SOP Create
/SOP Modify
This SOP allows for the configuring the attributes intended for the SG from SOP context, before data is passed into LOPs.
On the other hand, attributes can be configured after data has entered into LOP context with these LOPs.
Composition Structure
This is the structure visualized by the Scene Graph (SG) depicting the composition arcs and their corresponding layer stacks (LIVRPS).
Cache Directory Structure
This is the structure in which the actual .usd, .usda, and .usdc files are stored and read in by the composition structure.
- Standardize structure; follow Pixar's example.
- Variants / layers can be used to accommodate ongoing edits.
- Explicitly define .usda and .usdc files.
- Example Directory Structure
Assets/
Named_Asset/
Materials/
Material_Assignments (.usda)
Textures/
Texture_Dir
Geo Cache (.usdc)
Geo Variants (.usda)
Base Reference (.usda)
Nodes
Sources
Model Viewer - Web 3D
Export .glb content from Houdini and deploy to website with interactive elements.
Export .usdz content from Houdini and accompany the web content for use in iOS AR.
Resources
IFC > FME > Houdini
I've used FME to get some IFC content into Houdini via glTF and CSV files. The glTF (processed from the IFC in FME) carries the geometry as primitives nested within meshes and are imported as packed primitives into Houdini. At the same time, the CSV (also processed from the IFC in FME) brings in the rest of the IFC data aligned to each mesh, either by sorted order or mesh centroid. The Attribute Transfer
SOP in Houdini then allows the IFC data to be realigned with its corresponding mesh/packed primitive. This was a process that I used only a few times here and there, so I was okay with running it through a for-loop in Houdini to get large building elements like the shell without dealing too much about the smaller details.
Unity Toolbox HDA > Unity
Source:
Test & Analysis
Test processed volume SDF and point cache from Houdini using the Unity Toolbox HDA and exported. Assets imported into Unity and integrated with Visual Effects Graph in Universal Rendering Pipeline. Particle counts tested successfully up to 10 million particles.
Test of VFX Graph from Test 1 applied into AR with Unity and Vuforia tracking. 1,000,000 particles at ~60fps. Jittering in AR is from slightly unstable tracking and my grasp of the iPad.
ZBrush > Houdini
Subtool Resolution
Note that GoZ exports the subtool with the lowest subdiv setting, so if necessary, delete all lower ones to export the highest res subtool.
Individual v. All Subtools
Select 'All' to export all subtools in project to Houdini rather than individually selected subtools.
Houdini > ZBrush
Subtools
Use Name SOP to identify geo to be treated as separate subtools.
On This Page
- Houdini > UE4
- Integration with Megascan Assets
- HDA with Megascan Assets
- Blockout Geo Test
- Archived Work
- Resources
- Niagara
- Niagara ROP
- Point Cache Asset
- Niagara System
- Scrub FX in Sequencer Timeline
- Source
- Niagara System Component
- Landscape
- Materials
- Substance > Redshift3D
- Geometry With UVs
- Compositing Network (COPnet)
- Material Network (MATnet)
- Source
- Geometry Without UVs
- Material Network (MATnet)
- Python Automation Functions
- Resources
- USD
- Acronyms
- Terminology
- Workflow Logic
- Composition Structure
- Cache Directory Structure
- Nodes
- Sources
- Model Viewer - Web 3D
- IFC > FME > Houdini
- Unity Toolbox HDA > Unity
- Test & Analysis
- ZBrush > Houdini
- Houdini > ZBrush