How to render child object separately from parent?

For example if I have a fully rigged 3D humanoid model, how would I only render the “LeftHand” and “RightHand” of that model in game view so that the rest of the player is not visible to me (but is visible to others)?

I have tried several methods. I tried using two cameras, one to render only the Player, and the other to render Hands, using culling masks, depth and so on. This didn’t work I think because of the hands being child objects of the model.

I also tried going into Blender, editing vertexes of the hands and then duplicating them, so that I get Alpha_Joints001 and 002. When importing into Unity, the hands would not move at all and would not mimic my inverse kinematics or any simple animations.

I know there’s a method to do with creating a custom shader but I would not know where to start with that. Is it not possible to just use layers to somehow disconnect the hands from the rest of the model despite being child objects of it? I have the entire Player mesh set to “Player” layer, including the parent. However I changed the layers of both hands and fingers to “Hands”. This hasn’t done anything though.

My hierarchy is:

Player (empty GameObject, parent)
→ RiggedModelMesh (child of Player, this is my imported rigged humanoid character)
→ Alpha_Joints, Alpha_Surface (child of RiggedModelMesh)
→ All the bones such as hips, leftleg, rightleg, spine, neck, etc (child of RiggedModelMesh)

You should be able to solve this specific requirement by using Graphics.RenderMesh manually to bypass the hierarchy altogether. However, you have to be able to isolate the desired mesh parts (ideally as a submesh because you can pass it as an argument). Submeshes all belong to the same mesh, but their vertices are partitioned into submesh regions, which is perfect for what you need. When you do this, you have to supply the proper matrix, which is something you can fetch from the parent object.