Sviluppo con OpenXR e Oculus Quest 2 

Photo by Remy Gieling on Unsplash

Nel mio tempo libero sto approfondendo lo sviluppo di applicazioni su Oculus Quest 2 utilizzando Unity ed il package Open XR. Dal momento che non ne sapevo proprio nulla di sviluppo sull’engine di Unity la prima cosa da affrontare era il setup di un ambiente di sviluppo che avesse tutto il necessario per permettermi di proseguire nella mia ricerca.

Quello che ho scoperto è che prima di potere scrivere del codice che facesse delle cose più o meno serie era necessario impostare in maniera appropriata l’ambiente di sviluppo in maniera che chiacchierasse in maniera corretta con l’Oculus Quest 2.

Esperimento dopo esperimento mi ritrovavo sempre nella condizione di reimpostare l’ambiente di sviluppo facendomi perdere ogni volta una quindicina di minuti.

Per questo motivo ho deciso due cose. La prima è quella di scrivere una breve guida per chi si trova nelle mi stesse condizioni. La seconda è che rendo disponibile un template su github in modo che non dobbiate seguire la guida se non ne avete voglia.

Importante sottolineare il fatto che questa guida è stata scritta per lo Unity Editor versione 2021.2.10f1 ed il template è strettamente dipendente dalla versione 2021.2.x. Su github vi spiego come utilizzarlo anche su altre versioni.

Per il momento sto utilizzando OpenXR e XR Interaction Toolkit. In futuro migrerò tutto su Oculus Interaction Toolkit che è stato appena rilasciato. Importante notare che XR Interaction Toolkit è un package in stato di pre-release ed ogni volta che ne viene rilasciata una nuova versione cambia un botto. Usate quello che trovate sotto come linea guida e non come una bibbia.

Ecco quello che dovete fare.

Passo 1
Accertarsi che insieme all’editor di Unity siano scaricati i seguenti moduli aggiuntivi:

  • Android Build Support
    • Android SDK & NDK Tools
    • OpenJDK
      Questo ovviamente oltre alla build di default che dovrebbe essere già scaricata automaticamente sulla vostra macchina.

Passo 2
Ora dobbiamo dirigerci verso
File –> Build Settings –> Player Settings –> XR Plugin Management e cliccare sulla voce “Install XR Plugin Management”

Non appena terminerà l’installazione del plugin dovremmo avere a disposizione tre opzioni sotto la voce “Plug-In providers”

  • Oculus
  • Open XR
  • Unity Mock HMD

Clicchiamo sulla voce Open XR per installare quanto necessario. Al termine dell installazione ci verrà esposto un warning e clicchiamo su “Yes”.

Nel momento in cui l’editor ripartirà troveremo un warning che ci dice “At least one interaction profile must be added…”. Clicchiamo sulla icona del warning e subito dopo sulla voce Edit del messaggio di warning che ci era stato proposto.

Vedremo che la voce “Interaction Profiles” è vuota. Clicchiamo sul + che troviamo sul lato destro ed aggiungiamo il profilo del visore che stiamo utilizzando, nel mio caso Oculus Touch Controller Profile.

Sempre in questa pagina di impostazioni cambiamo il campo “Render Mode” a “Multi Pass”.

La stessa cosa va ripetuta nel tab Android.

Passo 3
A questo punto è necessario installare l’XR Interaction Toolkit.

Andare sulla voce di menu Window e cliccare su Package Manager.

Passare dalla visualizzazione “Packages in project” a quella “Unity Registry”, cliccare sulla rotellina delle impostazioni e selezionare la voce “Advanced Project Settings” e spuntare la casella “Enable Pre-release packages” per poi cliccare sul bottone “I Understand”.

In questa versione dello Unity Editor il package XR Interaction Toolkit non viene comunque visualizzato. Per risolvere questo problema cliccare sulla icona “+” in alto a sinistra, cliccare sulla voce “Add package from git url” e digitare “com.unity.xr.interaction.toolkit”

Prima di proseguire Espandere la voce Samples ed installare il package “Default Input Action”.

Chiudere il package manager.

Passo 4
Nel nostro progetto dovremmo avere una cartella samples e dentro di essa una cartella Samples –> XR Interaction Toolkit –> 2.0.0.pre-7 –> Default Input Actions che contiene i seguenti files:

  • XRI Default Continuous Move
  • XRI Default Continuous Turn
  • XRI Default Input Actions
  • XRI Default Left Controller
  • XRI Default Right Controller
  • XRI Default Snap Turn Clicchiamo su tutti questi uno ad uno ad esclusione di XRI Default Input Actions e muoviamo la nostra attenzione sulla finestra dell’Inspector. Per ognuna delle voci selezionate dovremo vedere una voce che recita “Add to ActionBased…” diversa per ognuna delle singole voci che selezioneremo. Cliccare su questa voce per ognuna delle selezioni.

Passo 5
Ora apriamo di nuovo File –> Build Settings.

Selezioniamo la voce Player Settings e poi Presets Manager. Per qualche ragione lo Unity Editor non “battezza” il controller destro ed il controller sinistro.

Cliccate sulle due voci sotto Action Based Controller ed inserite Left and Right.

A questo punto il sistema è pronto per lo sviluppo su Oculus.

Salvate il progetto e siete a posto.

Nel caso non vogliate sbattervi ecco il link al repository github dove troverete il template pronto per essere scaricato ed utilizzato. Inutile dire che imparereste molto di più se seguiste la guida ma questo è solo un suggerimento.

UnityOpenXRTemplate

Il template è pronto all’uso ed in realtà contiene giù una micro applicazione che può essere compilata ed installata sul vostro Oculus Quest 2 per essere sicuri che tutto funziona a dovere.

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Commenti
Inline Feedbacks
View all comments