Création de votre première application HoloLens UnrealCreating your first HoloLens Unreal application

Ce guide vous permet de créer votre première application de réalité mixte s’exécutant sur HoloLens dans Unreal Engine.This guide will walk you through getting your first Mixed Reality app running on the HoloLens in Unreal Engine. Dans la tradition de « Hello World », vous allez créer une application simple qui affiche un cube à l’écran.In the tradition of "Hello World", you'll create a simple app that displays a cube on the screen. Pour la rendre plus utile, vous allez également créer votre premier geste pour faire pivoter le cube et pour quitter l’application.To make it more useful, you'll also create your first gesture to rotate the cube and quit the application.

ObjectifsObjectives

  • Démarrer un projet HoloLensStart a HoloLens Project
  • Activer les plug-ins correctsEnable the correct plugins
  • Créer une ressource de données ARSessionConfigCreate an ARSessionConfig Data Asset
  • Configurer les entrées de gesteSet up gesture inputs
  • Créer un niveau de baseBuild a basic level
  • Implémenter un geste de pincementImplement a pinch gesture

Création d’un projetCreating a new project

La première chose dont vous avez besoin est un projet avec lequel travailler.The first thing you need is a project to work with. Si vous commencez juste à développer dans Unreal, vous devez télécharger les fichiers de prise en charge auprès d’Epic Launcher.If you're a first-time Unreal developer, you'll need to download supporting files from the Epic Launcher.

  1. Lancer Unreal EngineLaunch Unreal Engine
  2. Dans New Project Categories, sélectionnez Games, puis cliquez sur Next :In the New Project Categories, select Games and click Next:

Fenêtre des projets récents ouverte avec Games mis en évidence

  1. Sélectionnez le modèle Blank, puis cliquez sur Next :Select the Blank template and click Next:

Fenêtre du navigateur de projet Unreal avec le modèle Blank mis en évidence

  1. Dans Project Settings, définissez C++, Scalable 3D or 2D, Mobile/Tablet et No Starter Content, puis choisissez un emplacement d’enregistrement et cliquez sur Create Project.In the Project Settings, set C++, Scalable 3D or 2D, Mobile/Tablet, and No Starter Content, then choose a save location and click Create Project

Notes

Vous utilisez un projet C++ au lieu d’un projet Blueprint pour être prêt à utiliser le plug-in OpenXR ultérieurement.You're using a C++ rather than a Blueprint project in order to be ready to use the OpenXR plugin later. Ce guide de démarrage rapide utilise le plug-in OpenXR par défaut qui est fourni avec Unreal Engine.This QuickStart uses the default OpenXR plugin that comes with Unreal Engine. Il est cependant recommandé de télécharger et d’utiliser le plug-in Microsoft OpenXR officiel.However, downloading and using the official Microsoft OpenXR plugin is recommended. Cela nécessite que le projet soit un projet C++.That requires the project to be a C++ project.

Fenêtre des paramètres de projet avec les choix pour le projet, les performances, la plateforme cible et le contenu au démarrage mis en évidence

Votre nouveau projet doit s’ouvrir automatiquement dans l’éditeur Unreal, ce qui signifie que vous êtes prêt à passer à la section suivante.Your new project should open up automatically in the Unreal editor, which means you're ready for the next section.

Activation des plug-ins nécessairesEnabling required plugins

Vous devez activer deux plug-ins pour pouvoir commencer à ajouter des objets à la scène.You'll need to enable two plugins before you can start adding objects to the scene.

  1. Ouvrez Edit > Plugins et sélectionnez Augmented Reality dans la liste des options prédéfinies.Open Edit > Plugins and select Augmented Reality from the built-in options list.
  • Faites défiler vers le bas jusqu’à HoloLens et cochez la case Enabled.Scroll down to HoloLens and check Enabled

Fenêtre des plug-ins avec la section de la réalité augmentée ouverte et HoloLens mis en évidence

  1. Tapez OpenXR dans la zone de recherche en haut à droite et activez les plug-ins OpenXR et OpenXRMsftHandInteraction :Type OpenXR in the search box at the top right and enable the OpenXR and OpenXRMsftHandInteraction plugins:

Fenêtre des plug-ins avec OpenXR activé

Fenêtre des plug-ins avec Open XR Msft Hand Interaction activé

  1. Redémarrer votre éditeurRestart your editor

Notes

Ce tutoriel utilise OpenXR, mais les deux plug-ins que vous avez installés ci-dessus ne fournissent actuellement pas l’ensemble complet de fonctionnalités pour le développement HoloLens.This tutorial uses OpenXR, but the two plugins you've installed above don't currently provide the full feature set for HoloLens development. Le plug-in HandInteraction sera suffisant pour le geste de pincement que vous allez utiliser plus tard, mais si vous voulez aller plus loin, vous devez télécharger le 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.

Une fois les plug-ins activés, vous pouvez vous concentrer sur le remplissage du contenu.With the plugins enabled, you can focus on filling it with content.

Création d’un niveauCreating a level

La tâche suivante consiste à créer une configuration de joueur avec un point de départ, et un cube pour la référence et la mise à l’échelle.Your next task is to create a player setup with a starting point and a cube for reference and scale.

  1. Sélectionnez File > New Level, puis choisissez Empty Level.Select File > New Level and choose Empty Level. La scène par défaut dans la fenêtre d’affichage doit maintenant être vide.The default scene in the viewport should now be empty
  2. Sous l’onglet Mode, sélectionnez Basic, puis faites glisser PlayerStart dans la scène.From the Modes tab, select Basic and drag PlayerStart into the scene
  • Sous l’onglet Details, définissez Location sur X = 0, Y = 0 et Z = 0 pour placer l’utilisateur au centre de la scène lors du démarrage de l’application.In 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

Scène de l’éditeur Unreal avec l’emplacement et le joueur ajoutés

  1. Sous l’onglet Basic, faites glisser un Cube dans la scène.From the Basic tab, drag a Cube into the scene
  • Définissez Location pour le cube sur X = 50, Y = 0 et Z = 0 pour positionner le cube à 50 cm du joueur au démarrage.Set the cube's Location to X = 50, Y = 0, and Z = 0 to position the cube 50 cm away from the player at start
  • Changez Scale pour le cube en X = 0,2, Y = 0,2 et Z = 0,2.Change the cube's Scale to X = 0.2, Y = 0.2, and Z = 0.2

Vous ne pouvez pas voir le cube, sauf si vous ajoutez une lumière à votre scène, ce qui constitue votre dernière tâche avant de tester la scène.You can't see the cube unless you add a light to your scene, which is your last task before testing the scene.

  1. Dans le panneau Modes, passez à l’onglet Lights, puis faites glisser une Directional Light dans la scène.In the Modes panel, switch to the Lights tab and drag a Directional Light into the scene
  • Positionnez la lumière au-dessus de PlayerStart pour pouvoir la voir.Position the light above PlayerStart so you can see it

Scène de l’éditeur Unreal avec le cube et la lumière directionnelle ajoutés

  1. Accédez à File > Save Current, nommez votre niveau Main, puis sélectionnez Save.Go to File > Save Current, name your level Main, and select Save

Une fois la scène définie, appuyez sur Play dans la barre d’outils pour voir votre cube en action !With the scene set, press Play in the toolbar to see your cube in action! Lorsque vous avez fini d’admirer votre travail, appuyez sur Échap pour arrêter l’application.When you're finished admiring your work, press Esc to stop the application.

Scène en mode lecture avec le cube au milieu de l’écran

Maintenant que la scène est configurée, préparons-la pour quelques interactions simples dans AR.Now that the scene is set up, lets get it ready for some basic interactions in AR. Tout d’abord, vous devez créer une session AR, et vous pouvez aussi ajouter des blueprints pour permettre une interaction manuelle.First, you need to create an AR Session and can add blueprints to enable hand interaction.

Ajout d’une ressource de sessionAdding a session asset

Les sessions de réalité augmentée n’arrivent pas toutes seules.AR sessions in Unreal don't happen by themselves. Pour utiliser une session, vous devez créer une ressource de données ARSessionConfig, ce qui est d’ailleurs votre tâche suivante :To use a session, you need an ARSessionConfig data asset to work with, which is your next task:

  1. Dans le Content Browser, sélectionnez Add New > Miscellaneous > Data Asset et vérifiez que vous êtes au niveau du dossier Content racine.In the Content Browser, select Add New > Miscellaneous > Data Asset and make sure you're at the root Content folder level
  2. Sélectionnez ARSessionConfig, cliquez sur Select, puis nommez la ressource ARSessionConfig :Select ARSessionConfig, click Select, and name the asset ARSessionConfig:

Fenêtre de sélection d’une classe de ressources de données ouverte avec la ressource de configuration de session AR mise en évidence

  1. Double-cliquez sur ARSessionConfig pour l’ouvrir, choisissez Save avec toutes les valeurs par défaut, puis revenez à la fenêtre principale :Double-click ARSessionConfig to open it, Save with all default settings, and return to the Main window:

Fenêtre des détails des ressources de configuration de session AR

Une fois cette opération effectuée, l’étape suivante consiste à faire en sorte que la session de réalité augmentée démarre et s’arrête quand le niveau se charge et se termine.With that done, your next step is to make sure the AR session starts and stops when the level loads and ends. Unreal comprend un blueprint spécial appelé Level Blueprint (« Blueprint de niveau ») qui joue le rôle de graphe d’événements global à l’échelle du niveau.Luckily, Unreal has a special blueprint called a Level Blueprint that acts as a level-wide global event graph. Le fait de connecter la ressource ARSessionConfig dans le blueprint de niveau garantit que la session de réalité augmentée se déclenchera juste au début du jeu.Connecting the ARSessionConfig asset in the Level Blueprint guarantees the AR session will fire right when the game starts playing.

  1. Dans la barre d’outils de l’éditeur, sélectionnez Blueprints > Open Level Blueprint :From the editor toolbar, select Blueprints > Open Level Blueprint:

Menu Blueprint ouvert avec l’option Open Level Blueprint en évidence

  1. Faites glisser le nœud d’exécution (la flèche pointant vers la gauche) en dehors de Event BeginPlay, puis relâchez.Drag the execution node (left-facing arrow icon) off Event BeginPlay and release
  • Recherchez le nœud Start AR Session, puis appuyez sur Entrée.Search for the Start AR Session node and hit enter
  • Cliquez sur la liste déroulante Select Asset sous Session Config, puis sélectionnez la ressource ARSessionConfig.Click the Select Asset dropdown under Session Config and choose the ARSessionConfig asset

Graphique de blueprint avec Event BeginPlay connecté à la fonction Start AR Session

  1. Cliquez avec le bouton droit n’importe où dans l’EventGraph et créez un nœud Event EndPlay.Right-click anywhere in the EventGraph and create a new Event EndPlay node.
  • Faites glisser la broche d’exécution et relâchez le bouton, puis recherchez le nœud Stop AR Session et appuyez sur Entrée.Drag the execution pin and release, then search for a Stop AR Session node and hit enter
  • Cliquez sur Compile, puis sur Save, et revenez à la fenêtre principale.Hit Compile, then Save and return to the Main window

Important

Si la session de réalité augmentée est toujours en cours quand le niveau se termine, certaines fonctionnalités peuvent cesser de fonctionner si vous redémarrez votre application lors du streaming sur un casque.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.

Nœud Event EndPlay attaché à la fonction Stop AR Session

Configuration des entréesSetting up inputs

  1. Sélectionnez Edit > Project Settings, puis accédez à Engine > Input.Select Edit > Project Settings and go to the Engine > Input
  2. Sélectionnez l’icône + à côté de Action Mappings, puis créez des actions RightPinch et LeftPinch :Select the + icon next to Action Mappings and create RightPinch and LeftPinch actions:

Liaison des paramètres d’entrée avec les mappages des actions de pincement droit et gauche mis en évidence

  1. Mappez les actions RightPinch et LeftPinch aux actions OpenXR Msft Hand Interaction correspondantes :Map the RightPinch and LeftPinch actions the to the respective OpenXR Msft Hand Interaction actions:

Mappages d’actions avec les options Open XR Msft Hand Interaction en évidence

Configuration des gestesSetting up gestures

Maintenant que nous avons configuré les entrées, nous pouvons accéder à la partie intéressante : L’ajout de gestes !Now that we have setup the inputs, we can get to the exciting part: Adding gestures! Faisons pivoter le cube sur le pincement à droite et quitter l’application sur le pincement à gauche.Lets rotate the cube on the right pinch and quit the application on left pinch.

  1. Ouvrez le Level Blueprint et ajoutez un InputAction RightPinch et un InputAction LeftPinch.Open the Level Blueprint and add an InputAction RightPinch and InputAction LeftPinch
  • Connectez l’événement pincement droit à une AddActorLocalRotation avec votre Cube comme cible, et Delta Rotation défini sur X = 0, Y = 0 et 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. Le cube va maintenant pivoter de 20 degrés chaque fois que vous pincez.The cube will now rotate by 20 degrees every time you pinch
  • Connectez l’événement de pincement gauche à Quit Game.Connect the left pinch event to Quit Game

Blueprint de niveau ouvert avec des actions d’entrée pour les événements de pincement droit et gauche

  1. Dans les paramètres Transform du cube, définissez Mobility sur Movable pour qu’il puisse se déplacer dynamiquement :In the cube's Transform settings, set Mobility to Movable so it can move dynamically:

Paramètres de transformation avec la propriété de mobilité mis en évidence

À ce stade, vous êtes prêt à déployer et à tester l’application !At this point, you're ready to deploy and test the application!