Vertex Animation Textures - Veils Tool (Houdini Public API)

Making Of / 31 May 2026

Here is a rundown of how my VAT Veils tool is built.

The base functionality of the tool is:

  1. generate a cloth mesh on an unreal-spline
  2. cache out a "floating" 200-frame cloth simulation, make it loopable
  3. generate Vertex Animation Textures from that animation
  4. import the Vertex Animation Textures into Unreal, create a Material Instance and assign everything correctly so the user only has to drag the mesh into the scene

The goal for this tool was to find a way to automate the tedious process of creating, importing and and setup of the VATs. To accomplish this, I integrated the HDA inside an Editor Utility Widget (EUW), using the Houdini Public API. From within the EUW, I can instantiate the HDA, set inputs and parameters, and run a python script that handles the VAT-setup. This also had the added benefit of providing a very clean UI, without the usual clutter that you need to scroll past when you use an HDA as it is. 

Houdini:

The Houdini-part is relatively straight forward. The cloth mesh gets deformed onto the input-curve, and has a simple noise animation applied to it. The middle-part of the cloth mesh is pinned in place, then it gets fed into a vellum simulation.


Animated Noise VOP:



Loopable Vellum simulation:

The vellum simulation runs for 200 frames, and is looped into a 100-frame animation. In Unreal, only a preview mesh is visible, which shows the resolution via the vertex color.

Editor Utility Widget:

Inside the EUW, I created custom buttons for creating a Houdini Session, Instantiating the HDA, cooking the HDA, and generating the VATs. I also exposed parts of the Houdini Engine UI via the Details View Widget. Sadly enough, this Widget seems to be very buggy, and doesn't expose the parameters properly. I had some issues with it and I hope proper support gets added by Epic Games in the future. 

OnClicking the "Generate VATs" button, the hidden parameters for reseting the simulation and rendering the cache are executed. The only two parameters exposed to the user in this section, are the export path for the cache and VATs, and the cache version, which the user needs to set manually so as to not override previous caches.

After the cache has finished, the Vertex Animation Textures are being generated. To be able to access the rop network from inside Unreal, I had to add the Labs Export Node to an Editable Node in the HDA type properties. As a last step, after the generation of the VATs is done, my python script is executed, that handles the import and setup of the VATs.

I figured out a lot of valuable HDA-workflow-related tricks during this project. If anybody is interested in learning more about it, feel free to contact me!


Procedural Clothesline HDA for Unreal Engine

Making Of / 29 May 2026


I created this procedural HDA in the course of my master thesis about Houdini-Unreal integration. Here is a quick rundown of the different steps.

Houdini:

First, the tool takes the input-curves and runs a simple vellum simulation over it. In Unreal, the user can adjust the droopiness of the rope by changing the rope resolution, or choosing a later simulation frame via the timeshift node.

The tool contains several prepared clothing meshes, which can all be activated/deactivated by the user inside the engine.

For each of those clothing items, the width of the bounding box is stored inside a detail attribute.

Along every input curve, points are created along the curve. The distance of each point takes into account the width of a random clothing item. Then, the points are deformed along the curve and the respective clothing items are scattered on them. For a more detailed explanation on this technique, check out Viktor Anfimovs' tutorial on aligning objects along a curve in Houdini.


For an increased realistic look, you can run the scattered clothing through another vellum simulation, before baking the HDA. This should take about 30 seconds, but that depends on the number of clothing items and the simulation frame you select. However, when testing the HDA in Unreal with the wind material turned on, I found that this last step often isn't necessary to get a good look.

Unreal Material: Wind + Patterns

The wind for the Clothesline is controlled by the World Position Offset inside the material. It offers customization of the wind strength and wind direction based on the world space UVs. The wind strength is also multiplied by the green vertex color of the clothing items, so it affects the clothing stronger at the bottom. The different color tints are based on the value of the red vertex channel, the seed of which can also be customized inside the HDA.