Oculus Unity: diferència entre les revisions

De FFAWiki
Línia 162: Línia 162:
# Li assignem Photon Voice Network i Recorder a l'objecte anterior amb les configuracions de l'imatge
# Li assignem Photon Voice Network i Recorder a l'objecte anterior amb les configuracions de l'imatge
## [[Fitxer:NetworkVoice.jpg|sense marc|457x457px]]
## [[Fitxer:NetworkVoice.jpg|sense marc|457x457px]]
==Configurar Audio Listener==
# Afegim en el CenterEyeAnchor (on hi ha la camera) el Audio Listener (Si no és que ja el té)
==Reconfigurar prefab NetworkPlayer==
# Afegim en el prefab NetworkPlayer un Empty anomenat Speaker com a fill i li afegim la propietat Speaker
# Modifiquem les propietats de AudioSource del objecte anterior com a la imatge
# Afegim la propietat Photon Voice View i li asignem el Speaker

Revisió del 18:32, 9 març 2022

Un Jugador

Importar Paquets

  • Posar el Package Manager amb mode prova:
  • Package Manager -> Icona de configuració -> Advanced Project Settings -> enable Preview Packages
PackageManagerProva.png
  • Entrar a Package Manager, filtrar per Unity Registry:
  1. XR Interaction Toolit
  2. XR Plug-in Management
  3. Instal·lar SDK Oculus per Unity
  4. Prefab de les mans (entre altres)

Activar Suport de oculus

  1. Canviar la plataforma a Android
    1. SW Android.png
  2. Edit -> Project Settings -> XR Plug-in Management
    1. Habilitar Oculus a la pestanya de PC i Android
    2. ActivarSuportAndroid.png
  3. Edit -> Project Settings -> XR Plug-in Management -> Oculus
    1. Editar preferències segons necessitats.
    2. ActivarSuportAndroidOculus.png

Afegir l'esquelet (l'entorn VR)

  1. Eliminar la càmera per defecte de l'escena a la finestra Hierarchy
  2. A la finestra de Project, anar a:
    1. Assets -> Oculus -> VR -> Prefab -> OVRCameraRig
    2. Arrossegar OVRCameraRig a l'escena (Hierarchy).
  3. Al objecte OVRCameraRig -> Inspector -> OVR Manager (Script)
    1. Al paràmetre Quest Features el posem en mode General.
    2. L'opció Render Model Suport la canviem a Enabled.
      1. RenderModelAndroid.png
  4. Afegir el controlador de les mans:
    1. A Project anar a: Assets -> Oculus -> VR -> Prefabs -> OVRRuntimeControllerPrefab
    2. Arrossegar OVRRuntimeControllerPrefab a LeftControllerAnchor i a RightControllerAnchor
    3. Tant a LeftControllerAnchor com a RightControllerAnchor assignar a l'script (ja afegit), OVR Runtime Controller i posar el paràmetre Controller L Touch/ R Touch respectivament.
      1. ControladorMansOculus.png
    4. Afegir el prefab de les mans respectivament:
      1. En la finestra de project i anar a: Assets -> Prefabs
      2. Arrossegar Left Hand Presence a LeftControllerAnchor i el mateix amb Right Hand Presence però a RightControllerAnchor
      3. PrefabMansOculus.png

Crear Objectes interactius

  • Farem un entorn de prova, després cadascú pot utilitzar l'exemple com a base.
  1. Creem un terra, un quadrat que farà de taula i un altre quadrat que farà d'objecte interactiu:
    1. Creem una carpeta a Assets anomenada Materials on guardarem els materials
      1. Crearem els materials Vermell i Negre.
    2. A l'escena (Hierarchy) fem clic dret -> 3D Object -> Plane
      1. Li assignem el material negre.
    3. A l'escena (Hierarchy) fem clic dret -> 3D Object -> Cube i posicionar-lo al gust.
    4. A l'escena (Hierarchy) fem clic dret -> 3D Object -> Cube, el fem més petit i el posicionem sobre el cub creat anteriorment.
      1. Li afegim un Box Colider (si no el te ja), un Rigidbody, i l'script OVRGrabbable
    5. Assignem a les mans (LeftHandAnchor i RightHandAnchor) un Sphere Collider:
      1. Posar Radius a 0.05.
      2. Activar Trigger
    6. Assignem a les mans (LeftHandAnchor i RightHandAnchor) l'script OVRGrabber:
      1. Activar Parent Held Object
      2. Assignar RightControllerAnchor a Grip Transform i repetir el procés amb l'altra mà.
      3. Afegir el Sphere Collider del mateix objecte com a nou element de Grap Volumes.
      4. Seleccionar L Tocuh/R Touch respectivament (la ma dreta i l'esquerra) en el paràmetre Controller.
      5. ObjecteInteractuaOculus.png

Multi Jugador

Importar Paquets

Configurar Photon (WEB)

  • T'has de crear un compte a Photon
  • Crearem una nova app (Create a new app):
  1. Posem tipus PUN en la primera opció
  2. Posem un nom
  3. Li donem a CREATE
  4. CrearPun.png
  5. Anem al Dashboard i ens situem a les nostres app
  6. Copiem el APP id de l'app que acabem de crear
  7. APPidPun.png

Configurar Photon (UNITY)

  • Posarem l'id de l'APP a unity
  1. Window -> Photon Unity networking -> Highlight Server Settings
  2. Posar la id anteriorment copiada a App Id PUN
  3. APPidPunUnity.png

Configurar/Crear NetworkManager

  1. Creem un Empty a l'escena anomenat NetworkManager
  2. Creem i assignem a l'objecte anterior l'script NetworkManager
    1. ScriptNetworkManager.png
  3. Creem i assignem a l'objecte anterior l'script NetworkPlayerSpawner
    1. ScriptNetworkPlayerSpawner.png

Crear el Prefab del player dels clients de la xarxa

  1. Creem un Script anomenat NetworkPlayer:
    1. ScriptNetwoekPlayer.png
  2. Creem un Empty anomenat Network Player.
    1. Li assignem l'script Photon View i l'script creat anteriorment NetworkPlayer
    2. Posem a dins un Empty que es dirà Head i li assignem l'script Photon Transform View amb els paràmetres que es mostren a la captura:
      1. PhotonTransformView.png
    3. A dins el Head Posem una Sphere amb Scale x0.17 y0.17 z0.17 i Position tot a 0
    4. Dins el Network Player posem dos empty mes amb els noms LeftHand/RightHand
    5. A LeftHand/RightHand li assignem l'script Photon Transform View amb els paràmetres que es mostren a la captura anterior
    6. A la finestra Project anem a Assets -> Models -> prefabs i assignem "Custom Left Hand Model/Custom Right Hand Model" a "LeftHand/RightHand" respectivament
      1. NetworkPlayerPrefab.png
    7. Tan a Custom Left Hand Model com a Custom Right Hand Model li assignem l'script Photon Animator View amb les característiques que es mostren a la captura:
      1. PhotonAnimatorView.png
  3. Assignem els paràmetres de l'script Network Player de l'objecte Network Player d'aquesta manera:
    1. ParametresNetworkPlayerScript.png
  4. Creem una carpeta a Assets que es digui Resources (si no està ja creada).
    1. Arrossegue'm Network Player a la carpeta mencionada anteriorment creant així un prefab

Crear Objectes interactius en línia

  1. En el cub vermell creat anteriorment li afegim els components:
    1. Box Collider (si no el te ja)
    2. RigidBody (si no el te ja)
    3. Photon View
      1. Posar Ownership Transfer a Takeover
    4. Photon Rigidbody View
      1. Activar els tres checkbox i posar teleport if distance grater than a 3
    5. Crearem un script que es digui OVRGrabbableFFA i li assignarem també. (Important, estem creant un fill de OVRGrabbable, per tant, s'ha d'esborrar l'script de l'objecte)
      1. ScriptOVRGrabbableFFA.png
    6. En resum s'ha de veure axi:
      1. Cubinteratuable.png

Implementar Audio

Importar Paquets

Configurar Photon (WEB)

  • T'has de crear un compte a Photon
  • Crearem una nova app (Create a new app):
  1. Posem tipus Voice en la primera opció
  2. Posem un nom
  3. Li donem a CREATE
  4. CrearVoicePun.png
  5. Anem al Dashboard i ens situem a les nostres app
  6. Copiem el APP id de l'app que acabem de crear
  7. APPidVoice.png

Configurar Photon Voice (UNITY)

  • Posarem l'id de l'APP a unity
  1. Window -> Photon Unity networking -> Highlight Server Settings
  2. Posar la id anteriorment copiada a App Id Voice
  3. APPidVoiceUnity.png

Configurar/Crear NetworkVoice

  1. Creem un Empty a l'escena anomenat NetworkVoice
  2. Li assignem Photon Voice Network i Recorder a l'objecte anterior amb les configuracions de l'imatge
    1. NetworkVoice.jpg

Configurar Audio Listener

  1. Afegim en el CenterEyeAnchor (on hi ha la camera) el Audio Listener (Si no és que ja el té)

Reconfigurar prefab NetworkPlayer

  1. Afegim en el prefab NetworkPlayer un Empty anomenat Speaker com a fill i li afegim la propietat Speaker
  2. Modifiquem les propietats de AudioSource del objecte anterior com a la imatge
  3. Afegim la propietat Photon Voice View i li asignem el Speaker