The Character Customisation System is a suite of tools designed to manage highly extensible avatar characters with hundreds of customisation options. The toolset addressed major production bottlenecks, enabled artists and designers to work more independently and made a lot of features feasible that would otherwise have been out of reach due to time constraints and/or technical limitations.
I was responsible for all design/development of Maya toolsets in this system, and some of the Unity tools.
From the start of production, our team had identified that a highly customisable avatar character was the highest priority for the product. The target audience was young children, and our research showed that a large outfit catalogue and customisation options would:
In addition to the above, a highly extensible character was necessary as we forcasted huge amounts of storytelling requiring a host of various types of characters/outfits.
The main avatar character had the following needs:
Given such a huge system, it was only natural that problems came up during production. Here are some notable ones:
“No one wants to make more outfits because it’s so annoying” : The process of adding new outfit variations was slow, error prone, and required multiple people across art/design/programming. The task was so daunting that we just didn’t create anymore outfits.
Outfit Definitions: Pre-defining a character’s outfit for specific uses in-game was done by a programmer. It was difficult for the creative team to experiment.
Slow outfit customisation outside of the engine: Customising the character’s outfit in Maya for use outside of the engine took so many clicks, it became untenable when we had to make hundreds of renders.
This was the process of creating a new outfit variation:
This process was error prone as the system was naming convention sensitive. Incorrect import parameters or entries would also cause glitches. Various members of the teams were constantly distracted due to the number of steps required.
To address this, I built a toolset in Maya that:
Process after introduction of the toolset:
Result:
Various NPC’s in the game world needed custom outfit/customisation combinations. Eg: Jane, the cowgirl from the farm story arc was a fair-skinned girl with brown eyes, red hair, and wore a specific outfit. This was all pre-defined somewhere in the codebase and inaccessible to artists to change so they were often set-and-forget.
If there was a shift in visual needs, the process to change the look of the NPC was very involved — We would need to imagine the outfit that was desired, find the equivalent code value, edit the definition for that character, recompile and check at runtime. And for good reason, it was often discouraged for artists to make code changes.
This was fine when we only had a few NPCs but became unmaintainable very quickly as the cast grew. Artists also essentially had no space to experiment or update NPCs if visual needs shifted.
To address this, I devised a simple system whereby artists could customise outfits on the main character as they were authoring the art/animation content in Maya. These customised characters could then be exported as .JSON assets and assigned in Unity without developer intervention. This freed up programmers from distraction, and allowed artists the freedom to update NPCs as they saw fit without “being scared of code changes”.
Every so often, we would need to do some character renders for promotional purposes etc. As the character customiser was a runtime feature, it required a lot of steps to customise the outfits within Maya. A project came up where we needed to do hundreds of character renders.
The solution was to fully recreate the customisation system within Maya so that artists/animators could freely customise their characters while authoring content.
In addition, the outfits would be fully keyframable. That way, each frame could have any number of referenced characters wearing any outfit. This dramatically sped up the workflow when dealing with hundreds of poses.