Paul Drummond

Design & Development

Digital Human System

Home » Portfolio » Developer » Digital Human System

Digital Humans System for Mindtech Chameleon

I was lead developer & technical artist on the new Digital Humans system for Mindtech Chameleon, an AI/ML Synthetic Data application (not generative AI). The new system provided runtime and Unity Editor tools to create, modify and deploy customisable human actors within real-time 3D scenarios. The result was a huge improvement in human actor visual quality, and improved efficiency of the art production pipeline. I also delivered training on the new Unity Editor tools to the Technical Art team, and guided Junior team members. Features of the Digital Humans system include:

  • Runtime rig modification for actor resizing that maintained correct body proportions.
  • Properties and modifier system for height, weight, age, skin tone, facial and body morphs, and more.
  • Clothing & hair library with attachment > actor / attachment > attachment vertex masking, compatibility system, fit adjustment.
  • Reactive attachment material system for clothing & hair colour / texture variations based on user setup or runtime properties.
  • Powerful mesh editing tools enabling asset modification directly inside Unity.

Actor Properties and Clothing & Hair Attachments

Actors have properties such as height, weight, age and skin tone which change the visual appearance via modifiers. Simple properties such as skin tone use a single modifier, in this case a material change, while more complex ones such as height use pre-computed data to adjust the bone rig in real-time.

Actor Properties and Modifiers In Detail

Selecting an actor in Unity Editor allows us to see the property/modifier system in more detail. Properties such as height are controlled by a single weight slider, but use pre-computed data and the relationship between modifiers to generate the appropriate visual change for the actor. A distribution curve can also be created to control how multiple actors with a range of property variations are generated.

Asset Editing Tools For Unity

One of the main goals for the Digital Humans system was to improve efficiency of the art asset production pipeline. For example, whenever we added a blend shape modifier to an actor, a matching one had to be created in all the clothing meshes it used. The Technical Art team struggled with this workload, so I developed mesh editing tools that could be used directly inside Unity Editor:

Mesh Editing History

The Unity Editor Tools included a prefab editing history to keep track of asset changes. Users could revert to previous versions at any point.

Each edited mesh version was saved in FBX format, so could be opened in standard 3D tools if required.

I also created vertex masking tools that could be using within Unity Editor. These allowed clothing assets to mask sections of the actor (or other clothing assets) at runtime:

Clothing Masking and Fitting

Clothing attachments could also mask other clothing items. In this example, the sweatshirt will mask parts of the trousers when used together on the same actor.

This behaviour is created within Unity Editor, saved to the asset ScriptableObject data, then applied at runtime.

Other Editor Tool Features

The Digital Humans Editor tools had many features including the following:

  • Clothing incompatibility, hiding and affinity relationship links.
  • Clothing/hair attachment colour & texture sets for runtime variation.
  • Reactive actor properties such as hair colour affected by age.
  • Facial and body modifiers.