This project sets up a Unity VR multiplayer experience using:
- Photon Fusion (Shared Mode)
- Ready Player Me avatars
- Final IK for realistic VR body tracking
- XR Interaction Toolkit for VR interactions
- Unity 2022.3 LTS or newer
- Universal Render Pipeline (URP)
Install these packages via Unity Package Manager:
-
Photon Fusion SDK
- Download from Photon Dashboard
- Import
Fusion2.unitypackage
-
Ready Player Me Unity SDK
https://github.com/readyplayerme/rpm-unity-sdk-core.git
-
Final IK
- Available on Unity Asset Store
- Required for realistic VR body tracking
-
XR Interaction Toolkit
com.unity.xr.interaction.toolkit
-
XR Plugin Management
com.unity.xr.management
-
Oculus XR Plugin (for Meta Quest)
com.unity.xr.oculus
- Create new Unity 3D URP project
- Install all required packages listed above
- Set up XR settings:
- Go to Edit > Project Settings > XR Plug-in Management
- Enable Oculus provider
- Configure XR Interaction Toolkit settings
- Create Photon account and get App ID
- Go to Fusion > Realtime Settings
- Enter your App ID
- Set App ID Fusion field
- Create Ready Player Me account at readyplayer.me
- Get your Application ID from RPM Studio
- Configure in Ready Player Me > Settings
- Create ConvAI account at convai.com
- Create AI character and get API Key + Character ID
- Configure in ConvAIManager component
- See
ConvAI_Integration_Guide.md
for detailed setup
- Create new scene named "VRMultiplayerScene"
- Add the provided prefabs and scripts
- Configure XR Origin with interaction setup
- Set up network spawn points
- Add scenes to build settings
- Set platform to Android for Quest builds
- Configure player settings for VR
Assets/
├── Scripts/
│ ├── Network/
│ │ ├── NetworkVRPlayer.cs
│ │ ├── VRConnectionManager.cs
│ │ └── VRInputProvider.cs
│ ├── Avatar/
│ │ ├── VRAvatarController.cs
│ │ ├── VRIKSetup.cs
│ │ └── AvatarAnimationHelper.cs
│ ├── VR/
│ │ ├── VRHandController.cs
│ │ └── VRLocomotion.cs
│ ├── AI/
│ │ ├── ConvAIManager.cs
│ │ ├── NetworkConvAICharacter.cs
│ │ └── VRConvAIVoiceHandler.cs
│ └── UI/
│ ├── VRMenuManager.cs
│ └── VRConvAIUI.cs
├── Prefabs/
│ ├── NetworkVRPlayer.prefab
│ ├── VRAvatar.prefab
│ └── NetworkManager.prefab
└── Scenes/
└── VRMultiplayerScene.unity
- VR Body Tracking: Full body representation in VR using Final IK
- Avatar Customization: Ready Player Me avatar integration
- Hand Tracking: Natural hand movements and interactions
- Conversational AI: ConvAI integration for interactive AI characters
- Voice Spatial Audio: 3D positional voice chat
- Cross-Platform: Support for various VR headsets
- Build and deploy to multiple VR devices
- Test local multiplayer with multiple headsets
- Verify avatar synchronization and IK solving
- Test voice chat and interactions
- Avatar not loading: Check RPM Application ID and internet connection
- IK solving issues: Verify Final IK setup and bone assignments
- Network sync problems: Check Photon Fusion tick rate and interpolation settings
- VR tracking issues: Ensure proper XR Origin setup and room-scale tracking