"I don't want to have to do an armature deform and then have to paint each part hard red/hard blue, unless there is some non-manual way to do it (?)."
Yeah so I ended up doing that but found some tricks that made it take barely 5 minutes (for ~20 bones).
Here's a guide for anyone who is in the same situation I was in.
- Select all of your meshes and Alt+P to unparent without transform
- With all your meshes still selected, join them with Ctrl+J
- If you've posed your mesh, select all the bones and Alt+G and Alt+R to reset pose
- In object mode, select your conglomerate mesh and the armature and Ctrl+P to parent them, selecting Armature Deform with Automatic Weights
To optimise the repainting process:
a. In Weight Paint mode, set your brush to Draw, and set the Weight and Strength of the brush to 1
b. Next to the brush's Strength slider, there is a dropdown called Brush, in it, disable Front Faces Only
c. Next to the Mode dropdown (where it should currently say Weight Paint), there is an icon of a cube with a highlighted face, hovering over it should say Paint Mask; enable it
Flipping back to Edit Mode, select a face of the loose part of the mesh you wish to paint, and hold down Ctrl+[+] to Select More until the full part is selected
Back in Weight Paint mode, select the corresponding vertex group of the part you selected. Everything but the corresponding mesh should be wireframe (this means the Paint Mask is working)
Paint all over the part until it is entirely hard red
Hit Ctrl+I to invert selection, turn the weight of your brush down to 0, and paint over everywhere else until it is all hard blue
Rinse and repeat from step 5 with each part, remebering to flip back your brush's Weight to 1 each time
As we say in the industry, bada bing bada boom.
Once you get into a flow of things, you can do your whole model super quick because unless you have a very intricate mesh, there is no precision involved, you can stay in one view the whole time.
Hope that helps anyone else!