Correct way to hide a part of mesh in weight paint mode?

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:

  1. 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.
  2. 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)
  3. Paint Mask of weight paint mode. It kinda separate 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.

strange it works for me 2.93.4
vertex_weight_hide

Didn’t worked for me first… but look at Weight Paint mode, upper left to View, right to Paint Mask: Vertex Selection … then only the in edit mode selected vertices are paintable and if hidden then they are not shown (doesn’t have to be the same)…