Creazione della prima applicazione HoloLens Unreal
Questa guida illustra come ottenere la prima app Realtà mista in esecuzione in HoloLens in Unreal Engine. Nella tradizione di "Hello World", creerai una semplice app che visualizza un cubo sullo schermo. Per renderlo più utile, si creerà anche il primo movimento per ruotare il cubo e chiudere l'applicazione.
Obiettivi
- Avviare un progetto HoloLens
- Abilitare i plug-in corretti
- Creare un asset di dati ARSessionConfig
- Configurare gli input dei movimenti
- Creare un livello di base
- Implementare un movimento di avvicinamento delle dita
Creazione di un nuovo progetto
Prima di tutto, è necessario un progetto su cui lavorare. Se si sviluppa in Unreal per la prima volta, è necessario scaricare i file di supporto dal launcher Epic.
- Avvia Unreal Engine
- In Nuove categorie di progetti selezionare Giochi e fare clic su Avanti:
- Selezionare il modello Vuoto e fare clic su Avanti:
- In Impostazioni progetto impostare C++, Scalabile 3D o 2D, Mobile/Tablet e Nessun contenuto iniziale, quindi scegliere un percorso di salvataggio e fare clic su Crea progetto
Nota
Si sta usando un progetto C++ anziché un progetto Blueprint per poter usare il plug-in OpenXR in un secondo momento. Questa guida introduttiva usa il plug-in OpenXR predefinito fornito con Unreal Engine. Tuttavia, è consigliabile scaricare e usare il plug-in Microsoft OpenXR ufficiale. Ciò richiede che il progetto sia un progetto C++.
Il nuovo progetto dovrebbe essere aperto automaticamente nell'editor Unreal, il che significa che si è pronti per la sezione successiva.
Abilitazione dei plug-in necessari
Prima di iniziare ad aggiungere oggetti alla scena, è necessario abilitare due plug-in.
- Aprire Modifica > plug-in e selezionare Realtà aumentata dall'elenco delle opzioni predefinite.
- Scorrere verso il basso fino a HoloLens e selezionare Abilitato
- Digitare OpenXR nella casella di ricerca in alto a destra e abilitare i plug-in OpenXR e OpenXRMsftHandInteraction:
- Riavviare l'editor
Nota
Questa esercitazione usa OpenXR, ma i due plug-in installati in precedenza non forniscono attualmente il set completo di funzionalità per lo sviluppo di HoloLens. Il plug-in HandInteraction sarà sufficiente per il gesto "Pinch" che verrà usato in un secondo momento, ma se vuoi andare oltre le nozioni di base dovrai scaricare il plug-in Microsoft OpenXR.
Con i plug-in abilitati, è possibile concentrarsi sulla compilazione del contenuto.
Creazione di un livello
L'attività successiva consiste nel creare una configurazione di gioco con un punto iniziale e un cubo per riferimento e scala.
- Selezionare File > Nuovo livello e scegliere Livello vuoto. La scena predefinita nel riquadro di visualizzazione dovrebbe ora essere vuota
- Nella scheda Modalità selezionare Basic e trascinare PlayerStart nella scena
- Nella scheda Dettagli impostare Posizione su X = 0, Y = 0 e Z = 0 per posizionare l'utente al centro della scena all'avvio dell'app
- Dalla scheda Basic trascinare un cubo nella scena
- Impostare La posizione del cubo su X = 50, Y = 0 e Z = 0 per posizionare il cubo a 50 cm di distanza dal giocatore all'inizio
- Modificare la scala del cubo in X = 0.2, Y = 0.2 e Z = 0.2
Il cubo non sarà visibile finché non viene aggiunta una luce alla scena, che è l'ultima attività da eseguire prima del test.
- Nel pannello Modalità passare alla scheda Luci e trascinare una luce direzionale nella scena
- Posizionare la luce sopra PlayerStart in modo da poterla visualizzare
- Passare a Salva > file corrente, denominare il livello Principale e selezionare Salva
Una volta impostata la scena, seleziona Play (Riproduci) sulla barra degli strumenti per vedere il cubo in azione. Quando avrai terminato di ammirare il tuo lavoro, premi ESC per arrestare l'applicazione.
Ora che la scena è configurata, è possibile prepararla per alcune interazioni di base in AR. Prima di tutto, è necessario creare una sessione AR e aggiungere progetti per abilitare l'interazione manuale.
Aggiunta di un asset di sessione
Le sessioni AR in Unreal non funzionano da sole. Per usare una sessione, è necessario un asset di dati ARSessionConfig con cui interagire, che costituisce l'attività successiva:
- Nel Browser contenuto selezionare Aggiungi nuovo > asset di dati esterni > e assicurarsi di essere a livello di cartella contenuto radice
- Selezionare ARSessionConfig, fare clic su Seleziona e assegnare all'asset il nome ARSessionConfig:
- Fare doppio clic su ARSessionConfig per aprirlo, salva con tutte le impostazioni predefinite e tornare alla finestra principale:
Al termine, il passaggio successivo consiste nell'assicurarsi che la sessione AR venga avviata e arrestata quando il livello si carica e termina. In Unreal è disponibile un particolare progetto denominato Level Blueprint (Progetto livello) che svolge la funzione di grafico eventi globale che prende come riferimento il livello. La connessione dell'asset ARSessionConfig in Level Blueprint (Progetto livello) garantisce l'avvio della sessione nel momento in cui viene avviato il gioco.
- Nella barra degli strumenti dell'editor selezionare Blueprints > Open Level Blueprint (Progetto a livello aperto):
- Trascinare il nodo di esecuzione (icona a forma di freccia sinistra) fuori Event BeginPlay e release
- Cercare il nodo Avvia sessione AR e premere INVIO
- Fare clic sull'elenco a discesa Seleziona asset in Configurazione sessione e scegliere l'asset ARSessionConfig
- Fai clic con il pulsante destro del mouse in un punto qualsiasi di EventGraph e crea un nuovo nodo Event EndPlay.
- Trascinare il pin di esecuzione e il rilascio, quindi cercare un nodo Stop AR Session (Arresta sessione AR ) e premere INVIO
- Premere Compila, quindi Salva e tornare alla finestra principale
Importante
Se la sessione AR è ancora in esecuzione al termine del livello, alcune funzionalità potrebbero smettere di funzionare se l'app viene riavviata durante lo streaming a un visore VR.
Configurazione degli input
- Selezionare Modifica > impostazioni progetto e passare all'input del motore >
- Selezionare l'icona + accanto a Mapping azioni e creare azioni RightPinch e LeftPinch :
- Eseguire il mapping delle azioni RightPinch e LeftPinch alle rispettive azioni Di interazione manuale di OpenXR Msft :
Configurazione dei movimenti
Ora che abbiamo configurato gli input, possiamo arrivare alla parte interessante: Aggiunta di gesti! Consente di ruotare il cubo a destra e di chiudere l'applicazione con il pizzicamento sinistro.
- Aprire il progetto level e aggiungere inputAction RightPinch e InputAction LeftPinch
- Connettere l'evento di avvicinamento delle dita destro a un addActorLocalRotation con il cubo come destinazione e la rotazione differenziale impostata su X = 0, Y = 0 e Z = 20. Il cubo ora ruota di 20 gradi ogni volta che si avvicina il dito
- Connettere l'evento di avvicinamento delle dita a sinistra a Quit Game
- Nelle impostazioni Di trasformazione del cubo impostare Mobility su Movable in modo che possa spostarsi dinamicamente:
A questo punto, è possibile distribuire e testare l'applicazione.