Caution: Fraudulent or imitation websites may appear. Only this site is official. Report concerns on our Report Fraud page.
Syncing hands is one of the core requirements for VR multiplayer.
Hands are the most expressive part of a VR player’s avatar — they show direction, gestures, interactions, and movement.
If hand syncing is smooth, the entire multiplayer experience feels alive.
If it’s jittery or delayed, the game feels broken.
This page explains how to sync VR hands using Photon, how to structure your hand objects, and how to achieve smooth, low‑latency replication.
1. What Hand Syncing Does
Hand syncing ensures that every player sees:
The correct hand positions
The correct hand rotations
Gestures or finger tracking (optional)
Smooth interpolation between updates
Hands must update quickly and consistently to feel natural in VR.
2. How Photon Syncs Hands
Photon uses serialization to send transform data across the network.
Each hand typically has:
A PhotonView
A sync script (PhotonTransformView or custom)
A local VR controller reference (for the owner)
The owner writes the hand’s position/rotation.
Other players read and interpolate it.
3. Recommended Hand Sync Architecture
Your player prefab should include:
Player
│
├── Head (synced)
├── LeftHand (synced)
└── RightHand (synced)
Each hand object should have:
PhotonView
Sync script
Hand model / mesh
Optional finger tracking
Hands should NOT be children of a synced root object — they should sync individually for accuracy.
4. Syncing Position & Rotation
A. Using PhotonTransformView (simple)
Good for beginners, but less smooth.
B. Using a custom sync script (recommended)
Allows:
Interpolation
Extrapolation
Smoothing
Lag compensation
A custom script gives you full control over how hands move on remote players.
5. Interpolation (Why It Matters)
Interpolation smooths out movement between network updates.
Without interpolation:
Hands jitter
Movement looks robotic
Fast swings look choppy
With interpolation:
Hands glide smoothly
Gestures look natural
Movement feels responsive
VR absolutely requires interpolation.
6. Send Rate Recommendations
VR hands move fast — they need higher update rates.
Recommended:
Send Rate: 30–60
Serialization Rate: 30–60
Lower rates cause:
Lag
Teleporting hands
Desync during fast movement
Higher rates use more bandwidth but feel much better.
7. Finger Tracking (Optional)
If your game uses finger tracking (Index controllers, Quest hand tracking):
You can sync:
Trigger value
Grip value
Thumb position
Finger curls
These should be synced using:
Custom Player Properties (for slow‑changing values)
RPCs (for gestures)
Serialization (for continuous finger data)
Most fangames skip finger tracking to save bandwidth
8. What NOT to Sync
To avoid lag and bandwidth issues, do NOT sync:
Physics on hands
Colliders
Rigidbody forces
Full finger bones (too heavy)
Large data packets
Constant RPC spam
Only sync the essentials: position + rotation.
9. Best Practices
Sync each hand separately
Use interpolation for smooth movement
Keep hand models lightweight
Avoid syncing physics
Use high send rates for VR
Use custom scripts for better smoothing
Test with 6–10 players to ensure stability