Modular Hair Model:
Module: A mesh “lego piece” representing a hair part, categorized as scalp, crown, bangs, strands, tails.
ModularHair: A full hairstyle composed of at most one module per category, plus metadata.
Kit: JSON spec listing compatible assets per category and defining valid combinations.
Parametrization:
Parameters are represented as blendshape targets (e.g., length increase/decrease, wave, thickness).
Each Module has its own unique parameters, generated *mostly* procedurally based on the mesh properties. For example:
- Hair texture is determined based on the normal variation in the hairstyle, and length and volume are determined by the Y-measurement and XZ-measurement, respectively.
- Assets with curly hair can't simply be stretched out to increase length, and must instead grow in volume thereby growing in different directions.
- Hair length is parametrized based on the dimensions of the original hairstyle; short hair can have increased length but not decreased length.