Keep in mind that this stuff is not replicated on its own. So if you hide a body in one instance, it won't be hidden in the other instances, unless you explicitly send an rpc. So whenever you spawn the player's own character, you can just hide the body and this change will be local to the players client. When you then spawn characters for other players, e.g. in _player_connected(id)
, you just hide the arms instead of the body.
You could also use entirely different scenes for the local player and other connected players and do the positional updates outside of those scenes.
I was going to suggest to use different render layers for that, but that probably won't scale.