Houdini Digital Assets or HDAs are a big deal in Houdini. Digital assets allow you to turn your networks into reusable custom nodes with their own user interface. You can think of them as a preset but way more powerful. Really more like a plugin. As a matter of fact, many of the common nodes we use everyday day are themselves HDAs. A great deal of the tools in the GameDev Toolset are HDAs with of course some code magic. They are great for workflow and creating assets is quite fun too since you don’t need to know how to program. Today I’ll share a
#QuickTip on embedding Houdini digital assets into your current scene and why it would be useful.
The Digital Asset
When you save a digital asset, you are saving the definitions of the asset to a library file that ends with the
.hda extension. As you might have guessed, yes, it stands for Houdini Digital Assets. This library stores one or more digital assets. So for example, say you are creating a set of tools or digital assets for working with terrains, you could save the assets to the my_terrains.hda library. Once saved, Houdini will make the asset available to you just like any other node.
Location, Location, Location
So where do these libraries live? Well, Houdini will load all libraries it finds in the HOUDINIPATH/hda path. By default you are prompted to save to an hda folder in your user preferences when you first create an asset. However, you can really save the libraries anywhere you want as long as you add them to the $HOUDINI_PATH environment variable. You can even share assets over HTTP. Keep this in mind because we will touch on this again in a bit.
Embedding Houdini Digital Assets
So once you have have your subnetwork ready to be turned into a HDA, just right click on the node and select Create Digital Asset. This will open up a dialog for you to fill out some information.
The first field is the Operator name. This is the name that the node displays in your network and which you would access if you wanted to do something programatically. The Operator Label is the human readable text. It’s the name we will use to find it when we press the Tab key and start typing. Finally, and most important, is the library we will save the asset to. As mentioned, we would normally save to an
.hda library on disk. However, we are going to do it a little differently. We will save or “embed” the HDA in the current Houdini scene file. In order to accomplish this we type
Embedded. That’s it. Just how you see it spelled with a capital E as in “Eighties”. Hit save.
If we want to check if indeed the asset was saved with the scene, go to Windows -> Asset Manager and under Operator Type Libraries we will find our embedded HDA. Now the question is why you would want to do this at all.
Testing and Sharing
Remember I said assets are saved to a library. More specifically, the definitions of the assets are saved. If you are familiar with say After Effects, you know that if you send someone a project that uses a third-party plugin, that individual needs to have the plugin installed on their system. Well, Houdini Digital Assets work the same. If you want to share a scene file that makes use of an HDA, they also need to have the
.hda library installed to use the asset.
When you are testing things out or just trying to build some quick examples, having to install and manage the assets can become a bit cumbersome. At the testing phase, we are just trying to eliminate all friction. This is where “embedding” comes in handy since you don’t have to worry about installing
.hda libraries. By embedding the asset into the current Houdini scene file, we can easily iterate and share our assets just by sending the
.hip file. This is great for testing purposes before we commit to creating a more formal asset.
A few things I wanted to comment on is that unlike an asset that saves to a library, when you are using an embedded asset you must be careful not to delete the actual asset from the scene. Otherwise you lose the definitions to the asset and the asset goes bye-bye.
Another thing that may lead to confusion is that in past Houdini versions, the asset library used an
.otl file extension. It’s just an
.hda file. So don’t get confused by that.
Last, while you can save multiple assets into a library, SideFX recommends you store each asset in a separate library file. This makes managing and sharing specific assets a bit easier.