I'm aware a similar question exists. There is no proper answer and I'll elaborate why I ask this again.
I'd like to show only the upper body of my character, so when I weight paint the arm, I won't accidentally paint the leg or other parts.
I tried the following methods:
Mask modifier. It's horrible because the hidden part still gets painted. You can paint the upperbody than find the lower body's weight is all over the place. And there is absolutely no visual clue telling you're messed up.
Select unwanted vertex, H to hide them in Edit mode. It simply doesn't work at all. Weight paint mode doesn't respect the visiblilty set in Edit mode. (the answer posted on the other question)
Paint Mask of weight paint mode. It kind of separates the unwanted part, which is good, but in this mode I can no longer select bone. With Paint Mask disabled, ⌃ Ctrl+LMB selects a bone. But with Paint Mask enabled, ⌃ Ctrl+LMB selects a face (or vertex).
There must be a more proper way to do this, without sacrificing the ability to select bones, right? I just can't figure it out.