To create a good base for weight painting you can a dummy model, calculate automatic weights, and transfer the weights to the original model with the menu entry Object > Link/Transfer Data > Transfer Mesh Data (in Object mode).
This operation does the same as the Data Transfer modifier and copies the weights from the active to all selected objects. The advantage is that it's only one operation and you don't need one Data Transfer modifier for each target object.
Note that in Weight Paint mode, the menu entry Weights > Transfer Weights copies the weights in the opposite direction (all selected to active object). It's a known issue.
So when you have a model that consists of a lot of objects that have modifiers on them you can try the following:
- make a copy of all model parts and move them to a collection
- keep them selected and use the menu entry Object > Convert to Mesh in Object mode to apply all modifiers to every object
- join all objects into one (Ctrl+J). That's your dummy for the bone weights.
- open mesh areas (like sleeves, neck & bottom of clothes) can be closed with the Mesh > Convex Hull operation if you select the area of it. On more complex mesh this is easier than a fill/bridge/grid fill.
- add & apply a Remesh modifier or use the voxel remesh operation in Sculpt mode to merge all loose mesh parts together and turn the object into one solid mesh
- alternatively, you can use Merge > By Distance with a fairly high distance value.
The result is a "simplified one-mesh model" that you can bind to the armature with Automatic Weights.
- bind the dummy to the armature with Automatic Weights
- clear its parent with Alt+P because we only need the weights that are stored now in the vertex groups
- select all parts of the original model and the dummy object last. The dummy must be the active object, highlighted in orange.
- transfer the weights in Object mode with the menu entry Object > Link/Transfer Data > Transfer Mesh Data. Then choose Vertex Group(s) in the popup.
- in the next popup (Adjust Last Operation, F9 if you dismissed it), select Source Layer Selection =
All Layers and *Destination Layers Match =
- note that the original model and the dummy model must be at the same location so the vertices can match (Vertex Mapping =
- finally, bind all objects of the original model to the armature with Ctrl+P. Choose With Empty Groups to keep the transferred weights.
A drawback is that the fingers often get merged together and need manual corrections of the weights. The eyes and the mouth also can have weight problems if you have a more complex model.
Tight clothes should work fine, but wide clothes like a skirt, dress, robe, or cloak often need extra bones on the armature so you can control it better.