Creazione della prima applicazione HoloLens UnrealCreating your first HoloLens Unreal application

Questa guida illustra come ottenere la prima app per la realtà mista in esecuzione in HoloLens in Unreal Engine.This guide will walk you through getting your first Mixed Reality app running on the HoloLens in Unreal Engine. Nella tradizione di "Hello World", verrà creata una semplice app che visualizza un cubo sullo schermo.In the tradition of "Hello World", you'll create a simple app that displays a cube on the screen. Per renderlo più utile, verrà creato anche il primo gesto per ruotare il cubo e uscire dall'applicazione.To make it more useful, you'll also create your first gesture to rotate the cube and quit the application.

ObiettiviObjectives

  • Avviare un progetto HoloLensStart a HoloLens Project
  • Abilitare i plug-in correttiEnable the correct plugins
  • Creare un asset di dati ARSessionConfigCreate an ARSessionConfig Data Asset
  • Configurare gli input del movimentoSet up gesture inputs
  • Creazione di un livello di baseBuild a basic level
  • Implementare un movimento di pizzicoImplement a pinch gesture

Creazione di un nuovo progettoCreating a new project

Prima di tutto, è necessario un progetto su cui lavorare.The first thing you need is a project to work with. Se si sviluppa in Unreal per la prima volta, è necessario scaricare i file di supporto dal launcher Epic.If you're a first-time Unreal developer, you'll need to download supporting files from the Epic Launcher.

  1. Avvia Unreal EngineLaunch Unreal Engine
  2. Nelle categorie nuovo progetto selezionare giochi e fare clic su Avanti:In the New Project Categories, select Games and click Next:

Finestra progetti recenti aperta con giochi evidenziati

  1. Selezionare il modello vuoto e fare clic su Avanti:Select the Blank template and click Next:

Finestra del browser del progetto non reale con modello vuoto evidenziato

  1. Nelle impostazioni del progetto impostare C++, Scalable 3D o 2D, mobile/tablet e nessun contenuto iniziale, quindi scegliere un percorso di salvataggio e fare clic su Crea progettoIn the Project Settings, set C++, Scalable 3D or 2D, Mobile/Tablet, and No Starter Content, then choose a save location and click Create Project

Nota

Per essere pronti a usare il plug-in OpenXR in un secondo momento, si usa un progetto C++ anziché un progetto di progetto.You're using a C++ rather than a Blueprint project in order to be ready to use the OpenXR plugin later. Questa Guida introduttiva usa il plug-in OpenXR predefinito incluso in Unreal Engine.This QuickStart uses the default OpenXR plugin that comes with Unreal Engine. È tuttavia consigliabile scaricare e usare il plug-in Microsoft OpenXR ufficiale.However, downloading and using the official Microsoft OpenXR plugin is recommended. Per questo è necessario che il progetto sia un progetto C++.That requires the project to be a C++ project.

Finestra Impostazioni progetto con opzioni di progetto, prestazioni, piattaforma di destinazione e contenuto iniziale evidenziato

Il nuovo progetto dovrebbe aprirsi automaticamente nell'editor Unreal, il che significa che si è pronti per la sezione successiva.Your new project should open up automatically in the Unreal editor, which means you're ready for the next section.

Abilitazione dei plug-in necessariEnabling required plugins

Prima di iniziare ad aggiungere oggetti alla scena, è necessario abilitare due plug-in.You'll need to enable two plugins before you can start adding objects to the scene.

  1. Apri Edit > Plugins (Modifica > Plug-in) e seleziona Augmented Reality (Realtà aumentata) nell'elenco di opzioni predefinite.Open Edit > Plugins and select Augmented Reality from the built-in options list.
  • Scorrere fino a HoloLens e selezionare abilitatoScroll down to HoloLens and check Enabled

Finestra plug-in con la sezione della realtà aumentata aperta e HoloLens evidenziata

  1. Digitare OpenXR nella casella di ricerca in alto a destra e abilitare i plug-in OpenXR e OpenXRMsftHandInteraction :Type OpenXR in the search box at the top right and enable the OpenXR and OpenXRMsftHandInteraction plugins:

Finestra plug-in con OpenXR abilitato

Finestra plug-in con l'interazione della mano Open XR MSFT abilitata

  1. Riavviare l'editorRestart your 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.This tutorial uses OpenXR, but the two plugins you've installed above don't currently provide the full feature set for HoloLens development. Il plug-in HandInteraction sarà sufficiente per il gesto "pizzico" che verrà usato in un secondo momento, ma se si vogliono superare le nozioni di base, è necessario scaricare il plug-in OpenXR.The HandInteraction plugin will suffice for the "Pinch" gesture you'll use later, but if you want to go beyond the basics you'll need to download the OpenXR plugin.

Con i plug-in abilitati, è possibile concentrarsi sulla compilazione con contenuto.With the plugins enabled, you can focus on filling it with content.

Creazione di un livelloCreating a level

L'attività successiva consiste nel creare una configurazione di gioco con un punto iniziale e un cubo per riferimento e scala.Your next task is to create a player setup with a starting point and a cube for reference and scale.

  1. Seleziona File > New Level (File > Nuovo livello) e scegli Empty Level (Livello vuoto).Select File > New Level and choose Empty Level. La scena predefinita nel viewport ora è vuotaThe default scene in the viewport should now be empty
  2. Dalla scheda modalità selezionare Basic e trascinare PlayerStart nella scenaFrom the Modes tab, select Basic and drag PlayerStart into the scene
  • Nella scheda Dettagli impostare percorso su X = 0, Y = 0 e Z = 0 per inserire l'utente al centro della scena all'avvio dell'appIn the Details tab, set Location to X = 0, Y = 0, and Z = 0 to place the user at the center of the scene when the app starts

Scena dell'editor non reale con la posizione e l'avvio del giocatore aggiunti

  1. Dalla scheda di base trascinare un cubo nella scenaFrom the Basic tab, drag a Cube into the scene
  • Imposta la posizione del cubo su X = 50, Y = 0 e Z = 0 per posizionare il cubo 50 cm dal lettore all'inizioSet the cube's Location to X = 50, Y = 0, and Z = 0 to position the cube 50 cm away from the player at start
  • Modificare la scala del cubo in X = 0,2, Y = 0,2 e Z = 0,2Change the cube's Scale to X = 0.2, Y = 0.2, and 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.You can't see the cube unless you add a light to your scene, which is your last task before testing the scene.

  1. Nel pannello modalità passare alla scheda luci e trascinare una luce direzionale nella scenaIn the Modes panel, switch to the Lights tab and drag a Directional Light into the scene
  • Posizionare la luce sopra PlayerStart in modo che sia possibile visualizzarlaPosition the light above PlayerStart so you can see it

Scena dell'editor non reale con aggiunta di cubo e luce direzionale

  1. Passare a File > Salva corrente, assegnare un nome al livello principale e selezionare Salva .Go to File > Save Current, name your level Main, and select Save

Una volta impostata la scena, seleziona Play (Riproduci) sulla barra degli strumenti per vedere il cubo in azione.With the scene set, press Play in the toolbar to see your cube in action! Quando avrai terminato di ammirare il tuo lavoro, premi ESC per arrestare l'applicazione.When you're finished admiring your work, press Esc to stop the application.

Scena in modalità di riproduzione con il cubo al centro della schermata

Ora che la scena è configurata, consente di prepararsi per alcune interazioni di base in AR.Now that the scene is set up, lets get it ready for some basic interactions in AR. Prima di tutto, è necessario creare una sessione AR ed è possibile aggiungere progetti per abilitare l'interazione manuale.First, you need to create an AR Session and can add blueprints to enable hand interaction.

Aggiunta di un asset della sessioneAdding a session asset

Le sessioni AR in Unreal non funzionano da sole.AR sessions in Unreal don't happen by themselves. Per usare una sessione, è necessario un asset di dati ARSessionConfig con cui interagire, che costituisce l'attività successiva:To use a session, you need an ARSessionConfig data asset to work with, which is your next task:

  1. Nel browser del contenuto selezionare Aggiungi nuovo > varie > asset di dati e verificare di essere al livello della cartella del contenuto radiceIn the Content Browser, select Add New > Miscellaneous > Data Asset and make sure you're at the root Content folder level
  2. Selezionare ARSessionConfig, fare clic su Seleziona e denominare l'asset ARSessionConfig:Select ARSessionConfig, click Select, and name the asset ARSessionConfig:

Selezionare la finestra classe di asset di dati aperta con l'asset di configurazione della sessione AR evidenziato

  1. Fare doppio clic su ARSessionConfig per aprirlo, salvare con tutte le impostazioni predefinite e tornare alla finestra principale:Double-click ARSessionConfig to open it, Save with all default settings, and return to the Main window:

Finestra Dettagli asset di configurazione della sessione AR

Al termine, il passaggio successivo consiste nell'assicurarsi che la sessione AR venga avviata e arrestata quando il livello si carica e termina.With that done, your next step is to make sure the AR session starts and stops when the level loads and ends. 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.Luckily, Unreal has a special blueprint called a Level Blueprint that acts as a level-wide global event graph. La connessione dell'asset ARSessionConfig in Level Blueprint (Progetto livello) garantisce l'avvio della sessione nel momento in cui viene avviato il gioco.Connecting the ARSessionConfig asset in the Level Blueprint guarantees the AR session will fire right when the game starts playing.

  1. Dalla barra degli strumenti dell'editor selezionare Blueprints > progetto Open level:From the editor toolbar, select Blueprints > Open Level Blueprint:

Menu progetto aperto con l'opzione progetto Open level evidenziato

  1. Trascinare il nodo di esecuzione (icona a sinistra) dell' evento BeginPlay e ReleaseDrag the execution node (left-facing arrow icon) off Event BeginPlay and release
  • Cercare il nodo di avvio della sessione AR e premere INVIOSearch for the Start AR Session node and hit enter
  • Fare clic sull'elenco a discesa Seleziona asset in configurazione della sessione e scegliere l'asset ARSessionConfigClick the Select Asset dropdown under Session Config and choose the ARSessionConfig asset

Grafico del progetto con inizio riproduzione evento connesso alla funzione Avvia sessione AR

  1. Fai clic con il pulsante destro del mouse in un punto qualsiasi di EventGraph e crea un nuovo nodo Event EndPlay.Right-click anywhere in the EventGraph and create a new Event EndPlay node.
  • Trascinare il pin di esecuzione e il rilascio, quindi cercare un nodo di sessione stop AR e premere INVIODrag the execution pin and release, then search for a Stop AR Session node and hit enter
  • Premere Compila, quindi salvare e tornare alla finestra principaleHit Compile, then Save and return to the Main window

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.If the AR session is still running when the level ends, certain features may stop working if you restart your app while streaming to a headset.

Nodo evento finale associato alla funzione di sessione stop AR

Impostazione degli inputSetting up inputs

  1. Selezionare Modifica impostazioni progetto > e passare al motore > inputSelect Edit > Project Settings and go to the Engine > Input
  2. Selezionare l' + icona accanto a mapping azioni e creare azioni RightPinch e LeftPinch :Select the + icon next to Action Mappings and create RightPinch and LeftPinch actions:

Associazione delle impostazioni di input con i mapping delle azioni di tocco a destra e a sinistra evidenziati

  1. Eseguire il mapping delle azioni RightPinch e LeftPinch alla rispettiva azione di interazione della mano OpenXR MSFT :Map the RightPinch and LeftPinch actions the to the respective OpenXR Msft Hand Interaction actions:

Mapping delle azioni con opzioni di interazione della mano Open XR MSFT evidenziate

Impostazione di movimentiSetting up gestures

Ora che sono stati impostati gli input, è possibile arrivare alla parte interessante: aggiungere movimenti.Now that we have setup the inputs, we can get to the exciting part: Adding gestures! Consente di ruotare il cubo a destra e uscire dall'applicazione in un pizzico di sinistra.Lets rotate the cube on the right pinch and quit the application on left pinch.

  1. Aprire il progetto Level e aggiungere un InputAction RightPinch e InputAction LeftPinchOpen the Level Blueprint and add an InputAction RightPinch and InputAction LeftPinch
  • Connettere l'evento Pinch a destra a un AddActorLocalRotation con il cubo come destinazione e rotazione delta impostati su X = 0, Y = 0 e Z = 20.Connect the right pinch event to an AddActorLocalRotation with your Cube as the target and Delta Rotation set to X = 0, Y = 0, and Z = 20. Il cubo verrà ora ruotato di 20 gradi ogni volta che si pizzicaThe cube will now rotate by 20 degrees every time you pinch
  • Connetti l'evento di tocco a sinistra per chiudere il giocoConnect the left pinch event to Quit Game

Livello Bluprint aperto con azioni di input per gli eventi di pizzico a destra e a sinistra

  1. Nelle impostazioni di trasformazione del cubo impostare mobilità su mobile in modo che possa essere spostata dinamicamente:In the cube's Transform settings, set Mobility to Movable so it can move dynamically:

Impostazioni trasformare con proprietà Mobility evidenziate

A questo punto, si è pronti per distribuire e testare l'applicazione.At this point, you're ready to deploy and test the application!