- Technical Info
- Before You Start
- Handling Input
- Folder Structure
- Architecture Overview
- Third Party Components
This sample demonstrates an approach on how to develop a simple Metaverse.
To do so, the application illustrates several use cases around music, art and games. The player can move from one scene to another at will by using portals. The player has the possibility to enjoy these different spaces with his friends only by setting up a personal group.
Here are the different scenes integrated to this sample:
- Avatar selection : the first step is to select an avatar and a nickname.
- Hub : this is the player's starting point. This scene is mainly used to navigate to the other spaces.
- Picazoo : this scene is a little game consisting in finding and identifying the animals hidden in a park using paint guns.
- Music : if you feel like a DJ, this scene is for you !
- Art gallery : we illustrate here how to use an API to display artworks dynamically.
- This sample uses the Shared Mode topology,
- Builds are available for PC, Mac & Meta Quest,
- The project has been developed with Unity 2021.3.17f1, Fusion 1.1.6, Photon Voice 2.50,
- 2 avatars solutions are supported (home made simple avatars & Ready Player Me 1.9.0 avatars),
Before You Start
To run the sample :
Create a Fusion AppId in the PhotonEngine Dashboard and paste it into the
App Id Fusionfield in Real Time Settings (reachable from the Fusion menu).
Create a Voice AppId in the PhotonEngine Dashboard and paste it into the
App Id Voicefield in Real Time Settings
Then load the
AvatarSelectionscene and press
|1.1.6||Apr 17, 2023||Fusion Metaverse 1.1.6 Build 185|
- Move : WASD or ZQSD to walk
- Rotate : QE or AE to rotate
- Move : left click with your mouse to display a pointer. You will teleport on any accepted target on release
- Rotate : keep the right mouse button pressed and move the mouse to rotate the point of view
- Move & rotate : keep both the left and right button pressed to move forward. You can still move the mouse to rotate
- Grab : put the mouse over the object and grab it using the left mouse button.
- Teleport : press A, B, X, Y, or any stick to display a pointer. You will teleport on any accepted target on release
- Touch (ie for chat bubbles lock buttons) : simply put your hand over a button to toggle it
- Grab : first put your hand over the object and grab it using controller grab button
The main folder
/Metaverse contains all elements specific to this sample. There is a sub-folder dedicated to each use case.
/IndustriesComponents contains component shared with the fusion stage sample or the fusion expo sample.
/Photon folder contains the Fusion and Photon Voice SDK.
/Photon/FusionXRShared folder contains the rig and grabbing logic coming from the VR shared sample, creating a FusionXRShared light SDK that can be shared with other projects.
/Photon/FusionXRShared/Extensions folder contains extensions for FusionXRShared, for reusable features like synchronized rays, locomotion validation, ...
/Plugins folder contains the Ready Player Me SDK
/XR folder contain configuration files for virtual reality.
The Metaverse sample rely on the same code base than the one described in the vr shared page, notably for the rig synchronization.
The grabbing system used here is the alternative "local rig grabbing" implementation described in the vr shared - local rig grabbing page.
Aside from this base, the sample, like the Expo sample, contains some extensions to the FusionXRShared, to handle some reusable features like synchronized rays, locomotion validation, touching, teleportation smoothing or a gazing system.
Third Party Components
- Oculus Integration
- Oculus Lipsync
- Oculus Sample Framework hands
- Ready player me
- 3D assets :
- Low poly elephant by MrEliptik is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/)
- Audio Vizualization :