Pigeon Simulator Civilian NPCs (Archetype A)

Here's an example set of NPCs. Each has additional material variations that they could spawn with.

Here's an example set of NPCs. Each has additional material variations that they could spawn with.

Each Civilian model has 3 Levels of Detail - when far away, their lower LODs will replace their LOD0/primary model for the sake of performance.

Each Civilian model has 3 Levels of Detail - when far away, their lower LODs will replace their LOD0/primary model for the sake of performance.

Here's an example process involving the basic wrestlers. I would concept out an outfit, sculpt it onto our base models, retopologize and then import the new outfitted NPC models, and then apply material variations in-engine.

Here's an example process involving the basic wrestlers. I would concept out an outfit, sculpt it onto our base models, retopologize and then import the new outfitted NPC models, and then apply material variations in-engine.

Here's 4 unique NPC models with 3 of their material variations. Each model has 5+ material variations that would be chosen at random when spawning. Hair runs on its own texture set, with its own random material swaps, making for tons of possibilities.

Here's 4 unique NPC models with 3 of their material variations. Each model has 5+ material variations that would be chosen at random when spawning. Hair runs on its own texture set, with its own random material swaps, making for tons of possibilities.

Example UV layout of "Female Athlete 01" - maintaining the upper left skin UV area across all NPCs.

Example UV layout of "Female Athlete 01" - maintaining the upper left skin UV area across all NPCs.

Example of NPC outfit sculpts (base human body model by Jeremy Wynn)

Example of NPC outfit sculpts (base human body model by Jeremy Wynn)

Pigeon Simulator Civilian NPCs (Archetype A)

At HakJak, I developed and maintained a modular NPC pipeline for Pigeon Simulator. I designed and modeled clothing, hairsets, hats, and accessories for our basic human - "archetype A" - and textured and implemented a large cast of NPCs using the components I made. I created LODs for each Civilian model and skinned them to our existing archetype A rig.
I worked with custom shaders that utilized a custom "tint mask" system - by generating a special texture map in Substance painter, I could adjust the tint colors of a model later on in engine. This meant that we could have a single set of textures for each NPC model, and create color variation by generating extra materials that referenced that single set of textures but had different tint values, lightening our texture map load.
Originally, we wanted to texture each outfit piece separately, so every component of an outfit - pants, shirt, hat, etc - could spawn in with a random material. However, after beginning implementation we realized that the draw call requirements were high, especially considering the procedural generation nature of the game at that time. We decided to rework the pipeline, so each unique model - body, outfit and all - would have one texture set. This meant texturing each NPC individually, but I maintained skin UV positions across all character models to reduce any "re-texturing" I had to do. I approached UV layouts treating the character body UV shells as reserved and worked around them to make texturing more efficient and consistent.