Hand prefabs
The hand_l and hand_r prefabs are self-contained, glove-driven hand rigs. Each is a complete tracked hand: drop one into a scene, connect a Teslasuit glove, and the fingers follow the glove's finger tracking with no extra wiring.
Each prefab is two things: a hand mesh, rendered by a SkinnedMeshRenderer, and a hand skeleton. On the skeleton's root sit three plugin components that make it glove-driven:
| Component | Role |
|---|---|
TsGloveBehaviour | Resolves the glove device from a glove index and side, and reports connection state. Preset to TsDeviceSide.Left in hand_l and TsDeviceSide.Right in hand_r. Derives from TsDeviceBehaviour, so TsLiveMotionProvider (and a TsHapticPlayer, if you add one) can require it on the same GameObject. |
TsLiveMotionProvider | Starts the glove's mocap stream and exposes the live skeleton. |
TsHandAnimator | Reads the skeleton each frame and rotates the finger bones to match. |
Using a prefab#
- Drag
hand_lorhand_rfromTS/Examples/Prefabsinto your scene. - On the root, set the glove index and side on
TsGloveBehaviourto match your hardware. The defaults areGlove0and the side matching the prefab. - Enter play mode with a glove connected. The hand tracks immediately.
Note. The prefabs are not bound to the example scene. They carry everything they need, so they work as-is in a fresh scene once a glove is connected.
Retargeting to your own hand mesh#
The prefabs use their own bundled skeleton and mesh. To drive a different hand model, create a new TsHandAvatarSettings asset (menu Assets/Create/Teslasuit/Motion/Hand avatar settings), assign your hand model and side so the finger transforms map automatically, then point a TsHandAnimator on your rig at that asset and at a TsLiveMotionProvider.
What to read next#
- Glove mocap example: the scene these prefabs are built for.
- Mocap concept: how tracking and retargeting work.
TsMotionProvider: the base class the live provider extends.
