Yes, it is a hack, but it's a very good one.
dondo wrote:Great technique. I'd come up with something close, but my assets were different enough that I could just leave the bones in place. I was trying to figure out how to use "shy bones" to hide the things I didn't want to see (with a keyframe so they'd show up and disappear at the appropriate times), and came up empty.
I use shy bones all the time for control bones that I absolutely don't want the animator to touch. This is because these bones are only meant to be driven by other SBDs, and if the animator keyframes these 'shy-ed' bones, the rig will break. Shy is also good for hiding parts of a face rig that aren't meant to be touched by the animator, or simply to reduce screen clutter.
Shy isn't keyframeable though, so it doesn't have much use for rig-swapping. This is why we move the bones off-screen and hide the artwork layers, both of which are keyframeable. If the rig is all parented correctly, the 'outside' bones never get in the way when you're animating the character and you can just ignore them.
It's not actually necessary to move the bones off-screen...this is only done to reduce screen clutter and make rig editing and animation more manageable. But If we had keyframeable bone visibility, it wouldn't be necessary to move them off screen.