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.