What I did:

With the alpha submission behind me, the next major task was getting ‘Retired John’ (the version of the character used in scenes 4–7) production-ready for animation. This meant resolving a number of issues that had been lurking since the ‘John 30s’ character was first created, and rebuilding parts of the rig from scratch.

The starting point was the existing Retired John mesh I had quickly created for use in my Alpha submission, which had an armature and shape keys already in place. The problem was that the skin was tearing and deforming incorrectly when posed, particularly around the scalp area. This was due to the fact that the original John mesh had no scalp geometry under his hair. When the scalp was added later, the new geometry was messed up by the existing shape keys, which caused the tearing.

Rather than attempting to patch the existing rig, I decided to strip it back and start clean. The armature modifier and all shape keys were removed, leaving clean mesh parts that I could build around and modify, such as changing the clothes, head and hair. A new Rigify full human metarig was added, and weight painted from scratch.

Weight painting on a full human character is tedious work at the best of times, and the automatic weights option didn’t give good results at all in this case. Blender normalises weights across all bones, meaning that when you correct one bone, the weights on neighbouring bones are redistributed to compensate, which can undo previous work. I literally lost two days on this! I came up with a solution, to work in an alternating pattern: paint every other bone and lock it, then paint the adjacent bones to fill the boundary between the two locked vertex groups. This gives much more predictable results than working sequentially up the limb. The lock function in the vertex groups panel was essential here.

An additional complication was that the weight painting was done without the mirror option enabled, meaning the left side had to be mirrored manually afterwards. This was resolved using the Mirror Vertex Group option in the vertex groups dropdown, which mirrored all weight data across the X axis in a single operation. It needed some tweaks, but saved a good chunk of time.

For finer control in problem areas (particularly around the feet where the trouser mesh and shoe mesh meet), the vertex group assignment method was used instead of brush painting. Selecting vertices in edit mode and assigning them directly to a bone with a specific weight value, then feathering the boundary manually, gave much cleaner results than trying to paint the boundary with a brush.

With the body rig working, attention turned to the face. The eyes, teeth and eyebrows are all separate mesh objects rather than part of the main character mesh. Each was parented or connected to the rig individually:

Teeth – parented to the DEF-Spine.006 bone via Ctrl+P – Bone.

Eyes – this was the most problematic part of the whole process. The intended setup was a Damped Track object constraint on each eye mesh, targeting the eye controller bone in the armature, with the eye mesh parented to DEF-spine.006 so it follows the head. In theory straightforward…

The problems encountered included: the Damped Track constraint being accidentally applied to every control bone in the rig rather than just the eye mesh (caused by having multiple objects selected when the constraint was added); and a corrupted file, where the Rigify UI script was being blocked from executing, which froze all facial controls and caused materials to go black when trying to pose.

The corrupted file issue was resolved by going back several incremental saves – a reminder that saving incrementally is vital. The Rigify script warning (which had been dismissed on opening the file, rather than allowed) turned out to be the root cause of the frozen controls. Once an earlier incremental save was loaded and the script was allowed to execute, the remaining eye issue was resolved simply by correcting the origin points of the eyes – Object menu – Set Origin – Origin to Geometry. With the origin sitting correctly at the centre of each eye mesh, the Parent Inverse Transform calculated correctly and both eyes worked as intended.

NOTE: Be absolutely certain what is selected before applying any constraint or parent operation. The correct sequence is to select the target bone in edit mode on the armature first, return to object mode, then select the mesh object and perform the parent operation, ensuring only the intended object is selected at each stage.

Eyebrows – each eyebrow already had an armature modifier from a previous iteration. These just needed to be pointed at the new rig, and since the vertex groups were already named correctly to match the eyebrow bones, they connected automatically.

With the clothing updated to reflect John’s retired era attire, his face and hands aged through sculpting, the rig stable and all facial controls working to produce the different expressions outlined in the Alpha animatic, this character is now ready to animate.

Coming up – 40/50s John:

The next age variant needed is a 40/50s version of John, appearing briefly in scene 3 – walking to the car, polishing the IAM badge and driving away. Given the short screen time, the plan is to duplicate 30s John and make adjustments rather than building a new character from scratch. The changes needed are primarily hair (less of it and greying) and a less seventies suit.

A few potential pitfalls for me to remember when doing this:

  • When making any mesh modifications, always confirm the Basis shape key is active and selected before going into edit mode. Any geometry changes made while a non-Basis shape key is active will be stored in that shape key’s offset data rather than the base mesh, causing distortion across all other shape keys. All non-Basis shape key values should be set to 0 before touching any geometry.
  • When replacing clothing – since John’s mesh has no body underneath, the clothing IS the mesh. Removing and replacing it means being careful about vertex groups. The new clothing mesh will need its vertex groups set up from scratch and weight painted to the existing rig. Taking the time to do this cleanly is faster than trying to fix broken deformation later.
  • When adding or modifying hair, make the changes on the duplicate only – never on the original 30s John. Keeping the original intact means there is always a clean version to fall back on.

What I learned:

Weight painting rewards a methodical approach over speed. The alternating lock method is significantly more reliable than working sequentially. The mirror vertex group tool should be used from the start rather than as an afterthought.

Incremental saves are not optional. This session required rolling back multiple versions to recover a working state, and without those saves, the damage would have been far worse. The Rigify security script warning should always be allowed, not dismissed — ignoring it breaks the entire rig UI.

Next:

With ‘Retired John’ complete, the next step is creating 40/50s John from the 30s base mesh, followed by animation across all scenes.