Hui, that is quite a task.
Ther are ways to define vertex groups and weights dynamically. See some of the modifier in the most left column of the modifier list:
- data transfer
- vertex weight edit
- vertex weight mix and esp.
- vertex weight proximity
The problem is, that I don’t see how that helps in mixing materials, as the materials are manually assigned to faces (no vertex weight?). And on the other hand I can’t find a vertex weight node within the shader so that one can mix them there.
Perhaps it’s time for an Addon:
I recently was impressed by blendit: it merges texturs based on proximity (so it seems). Is that something, that you can utilize?