Houdini 20.0 Unreal HoudiniTools

Settings and configuration

On this page

Tool and Selection Types

The HDA’s Tool Type determines how selected asset and/or actors are wired into the inputs of the HDA during instantiation.

Tool Type

Description

Generator

For tools that only generates geometry and does not take any inputs. No input assignment will take place during instantiation.

Single

For tools that have a single input. The selection will be merged in that single input.

Multi

For tools that have multiple inputs. The selected asset/actor will be applied to each input.

Batch

For tools that needs to be applied each time for each selected asset/actor.

The Selection Type determines whether only selected actors, only selected assets, or both will be used when populating the inputs for the HDA according to the Tool Type.

Selection Type

Description

Content Browser and World

Use both selected assets (from the Content Browser) and selected actors (from the Editor World) to populate inputs for the HDA.

World Only

Use only selected actors from the Editor World to populate inputs for the HDA.

Selection Only

Use only selected assets from the Content Browser to populate inputs for the HDA.

Package Search Paths

The HoudiniTools Panel makes use of the Package Search Path project setting to try and locate HoudiniTools packages. By default, the package search path is configured to only look for packages in /Game/HoudiniEngine/Tools. This package search path can be configured in the HoudiniEngine Plugin project settings.

Example: HoudiniTools Search Path Settings

A HoudiniToolsPackage asset can be stored either at the root of a search path (in which case you can only have a single package at the search path):

/Game/HoudiniEngine/Tools/
    HoudiniToolsPackage
    he_tool1
    he_tool2
    ...

or you can have multiple packages in immediate subdirectories:

/Game/HoudiniEngine/Tools/
    Package1/
        HoudiniToolsPackage
        he_tool1
        he_tool2
        ...
    Package2/
        HoudiniToolsPackage
        he_tool3
        he_tool4
        ...
    ...

The HoudiniTools Panel will not search for HoudiniToolsPackage assets that are located more than a single directory deep at any given search path. If a subdirectory does not have a HoudiniToolsPackage asset, it will be ignored by the HoudiniTools Panel.

HoudiniTools Package

A HoudiniTools Package consists of a mandatory HoudiniToolsPackage asset and one or more HDAs in the same folder (or in subfolders). The HoudiniToolsPackage asset describes categories and which HDAs in that package are included (or excluded) from each category. Only HDAs placed inside package directories will appear in the HoudiniTools Panel. HDAs may be organised in subdirectories as needed.

/Game/HoudiniEngine/Tools/
    StudioTools/
        HoudiniToolsPackage
        PyroTools/
            he_pyrotool1
            he_pyrotool2
        DestructionTools/
                Explode/
                    he_destructiontool1
                Deform/
                    he_destructiontool2
        ...

Categories may then be configured to match the whole package or specific subfolders. The same HDA may even appear in multiple categories.

Here follows a list of properties that can be configured for the HoudiniToolsPackage asset:

Settings

Description

Categories

Array of category definitions

Categories → include

An array of patterns (relative asset paths) to match of HoudiniAssets that should be included in this category

Categories → exclude

An array of patterns (relative asset paths) to match of HoudiniAssets that should be excluded from this category

External Package Dir

A path that points to an external directory that may be used to import data from, or export data to

Reimport Package Description

When on, any external data for a HoudiniAsset in this package will be imported when the HoudiniAsset is reimported

Export Package Description

When on, external data for for a HoudiniAsset in this package will be exported when the HoudiniAsset is saved

Reimport Tools Descritption

When on, any external data for this HoudiniTools Package will be imported when the HoudiniAsset is reimported

Export Tools Description

When on, external data for this HoudiniTools Package will be exported when the HoudiniToolsPackage asset is saved

When HoudiniAssets are triaged into categories,include rules are processed first. After a list of candidate HoudiniAssets have been collected for a particular category, the exclude rules are then applied to remove any matching HoudiniAssets from the category.

Note

Hidden Tools (tools that have been set as Hidden through the HoudiniTools Panel) will appear in the exclude list of the HoudiniToolsPackage to which the relevent HDA belongs.

User Categories Configuration

Users can create their own categories that exist outside of HoudiniAssetPackages. To create a new user category through the HoudiniTools Panel (or to add a tool to an existing user category), see HoudiniTools User Categories section.

A single user category may include HDAs from multiple packages. A HoudiniToolsPackage asset needs to be selected for each HDA (or set of HDAs) that is included in the user category. The HoudiniTools Panel needs to know which package to use when applying the include and exclude rules for the user category.

Example: User Categories Settings

Persistent Settings

Persistent editor settings for the HoudiniTools Panel is stored in the Unreal project in the Saved\Config\<PLATFORM>\HoudiniEngine.ini file.

External Description Data

External description data (JSON files and icons) are optional for both Houdini Assets and Houdini Packages.

HoudiniTools Package

If a HoudiniToolsPackage asset has a valid value for its Location property, the HoudiniTools will attempt to locate a HoudiniToolsPackage.json file at that location on the filesystem for importing or exporting, depending on the settings in the HoudiniToolsPackage asset.

When reimporting a HoudiniToolsPackage asset, it will ingest a HoudiniAssetPackage.json at the configured Location (if the HoudiniToolsPackage settings allow it).

When saving the HoudiniToolsPackage asset, it will export a HoudiniAssetPackage.json description at the configured Location (if the HoudiniToolsPackage settings allow it).

An example of a HoudiniToolsPackage.json file:

{
    "categories": [
        {
            "name": "(Geo) Deform",
            "include": [
                "deform/*"
            ],
            "exclude": []
        },
        {
            "name": "(Geo) Scatter",
            "include": [
                "scatter/*"
            ],
            "exclude": [
                "Scatter/he_geo_fill_scatter"
            ]
        }
    ],
    "export_package_description": true,
    "reimport_package_description": false,
    "reimport_tools_description": true,
    "export_tools_description": false
}

Note

The categories in the JSON file are stored as an array of key-value pair collections, where each collection describes a single category.

Houdini Assets

When importing or reimporting a HoudiniAsset, the importer will look for an external .json file to use for description data ingest and, optionally a .png file to use as the HoudiniAsset’s icon (if the owning package settings allow it). When saving the HoudiniAsset, a .json description file will be generated (if the owning package settings allow it).

External data for HoudiniAssets are located by using the source asset’s filename and replacing the source asset’s extension (.hda, .hdanc, .hdalc, etc.) with .json to import description data for the asset. If the .json file does not contain a path to an icon image, the importer will look for an icon image with the same name as the source asset but with a .png extension.

An example of an external HoudiniTools package may look like:

C:/Project/StudioTools/
    HoudiniToolsPackage.json
        PyroTools/
            he_pyrotool1.hda
            he_pyrotool1.json
            he_pyrotool1.png
            he_pyrotool2.hda
            he_pyrotool2.json
            he_pyrotool2.png
        DestructionTools/
                Explode/
                    he_destructiontool1.hda
                    he_destructiontool1.json
                    he_destructiontool1.png
                Deform/
                    he_destructiontool2.hda
                    he_destructiontool2.json
                    he_destructiontool2.png
        ...

Note

All external description files (HoudiniToolsPackage.json, HDA .json files and HDA .png) are all optional.

An example of an HDA .json file, followed a description of the fields:

{
    "target": [
        "unreal"
    ],
    "name": "Bend and Twist",
    "toolType": "GENERATOR",
    "toolTip": "he_geo_bend",
    "UE_SelectionType": "All",
    "helpURL": "",
    "iconPath": "C:/Users/User/Downloads/thrust-bend.png"
}

Key

Description

target

A list of applications for which this HDA is intended.

toolType

Possible values are: GENERATOR, OPERATOR_SINGLE, OPERATOR_MULTI, BATCH. Refer to Tool and Selection Types for more information

toolTip

The description associated with the HDA (typically displayed in the HoudiniTools Panel)

UE_SelectionType

Possible values are

  • All (selected actors and selected assets),

  • CB (only selected assets from the content browser),

  • World (only selected actors from the World). See Tool and Selection Types for more information

helpURL

The URL for more help for this HDA

iconPath

The path to the icon associated with this HDA. This path can be either absolute or relative to the location of the .json file. If this field is present this path will be used instead of the default icon path (next the to HDA). If icon images are placed next to HDAs, this field may be omitted

HoudiniTools