Animation: DAZ hair to Unreal Engine



This is a quick record of how DarkAelf Studios is (November 2024) bringing hair assets into Scarborough 1264 (one of the films DarkAelf is working on).  This area is changing fast - the information here will fall out of date fast.

DAZ hair is fantastic for posed shots in DAZ but can chew up a lot of skeletal memory and texture space. They can be a bit unwieldy in Unreal Engine if they introduce multiple new skeletal elements . These are great in DAZ in helping to pose hair, but can create downstream problems when they are added to the common skeleton you might be using in Unreal for all your DAZ assets. 

This process outlined below, which we use in cinematic situations where we have tons of assets on set and need to minimize memory costs, tries to avoid these problems (if you are using this for games - you must first ensure that you have the appropriate license from DAZ). This process only works with hair made with cards (the hair consists of tens to thousands of rectangles containing images of strands of hair)- not hair based on nodes. In the original models, these hair rectangles are shaped to give gentle curves - those curves dramatically increase the size of the original asset. It is not suitable in every situation - think more of secondary characters that will not get close to the camera. But then, if your film needs a lot of people looking a bit rough, decimation can help out heaps.

Parent hair to your base level Genesis 8/8.1 female/male in DAZ (Image 1).

Image 1



Then use DaztoUnreal to export to Unreal Engine as a static mesh (Image 2). Save All.

Image 2


Duplicate the asset, open a new level, bring the hair asset into the scene (and zero Location to bring it to 0,0,0) and open the modeling tools. 
In this example, the original static mesh hair has a modest (in cinematic terms) 48k triangles and 48k vertices. Very dense hair in DAZ can sometimes have 100,000 - 1,000,000 triangle - great in DAZ, bad news for some cinematic applications.

In Modeling choose Mesh:Simplify (Image 3) and start experimenting with decimating the hair to get an acceptable balance between memory and visual impact.


Image 3


Here I have chosen an outcome of 30k triangles (Image 4) - but with some assets you can drive far harder - we commonly get acceptable results at about 10k triangles. (Image 4)


Image 4


Scale and rotate the hair if necessary (baking to match scale and orientation of your actor. Add to a Blueprint Actor, making sure that the hair is attached to the parent socket "head" with the location transform adjusted to fit the character.  (Image 5)

Image 5

Here I have gone further, changing the color of the hair inside the Engine and simplifying the textures used with the hair to reduce and standadise memory/texture load across many actors.

Comments