1. Azure Cloud Services für HoloLens 21. Azure Cloud Services for HoloLens 2

Willkommen zu dieser Reihe von Tutorials, die sich darauf konzentrieren, Azure Cloud Services in eine HoloLens 2 Anwendung einzubinden.Welcome to this series of tutorials focused on bringing Azure Cloud services into a HoloLens 2 application. In dieser fünfteiligen Tutorialserie erfahren Sie, wie Sie mehrere Azure Cloud Services in ein Unity-Projekt für HoloLens 2 integrieren können.In this five-part tutorial series, you will learn how to integrate several Azure Cloud services into a Unity project for HoloLens 2. Mit jedem weiteren Kapitel fügen Sie neue Azure Cloud Services hinzu, um die Anwendungsfunktionen und die Benutzererfahrung zu erweitern, während Sie die Grundlagen jedes Azure Cloud Service kennenlernen.With each consecutive chapter, you will add new Azure Cloud services to expand the application features and user experience, while teaching you the fundamentals of each Azure Cloud service.

Hinweis

Diese Tutorialserie konzentriert sich auf HoloLens 2, aber aufgrund des plattformübergreifenden Charakters von Unity gelten die meisten Lerninhalte auch für Desktop- und Smartphoneanwendungen.This tutorial series will focus on the HoloLens 2 but due the cross-platform nature of Unity, most of your learnings will also apply for Desktop and Smartphone applications.

In diesem ersten Tutorial machen wir Sie mit den Zielen der Reihe und den einzelnen Azure Cloud-Diensten, die Sie benutzen werden, sowie mit dem Einrichten des Unity-Ausgangsprojekts bekannt.In this first tutorial, you'll be introduced to the goals of the series and each Azure Cloud service you'll be using, as well as setting up the initial Unity project.

Im zweiten Tutorial, Integrieren von Azure Storage, beginnen Sie, indem Sie Azure Storage als Persistenzlösung für die Demoanwendung integrieren.In the second tutorial, Integrating Azure Storage, you'll start off by integrating Azure Storage as the persistence solution for the demo application. Darüber hinaus lernen Sie die Unterschiede zwischen Blob-Speicher und Tabellenspeicher kennen, bereiten die erforderlichen Projektressourcen vor und richten die Szene ein.You'll also learn the differences between Blob Storage and Table Storage, prepare the needed project resources, setup the scene. Schließlich erfahren Sie, wie Sie die Datenoperationen zum Lesen, Aktualisieren und Löschen überprüfen.Finally, you'll learn how to verify the read, update, and delete data operations.

Im dritten Tutorial, Integrieren von Azure Custom Vision, verwenden Sie Azure Custom Vision zum Trainieren und Erkennen von Bildern in der HoloLens 2-Anwendung.Continuing with the third tutorial, Integrating Azure Custom Vision, you will use Azure Custom Vision to train and detect images in the HoloLens 2 application. Das Kapitel beginnt mit dem Einrichten Ihrer eigenen Azure Custom Vision-Ressource, dem Vorbereiten der Szenekomponenten und der Umsetzung durch Trainieren und Erkennen Ihrer eigenen Bilder aus der Anwendung heraus.The chapter starts off with setting up your own Azure Custom Vision resource, preparing the scene components and getting into action by training and detecting your own images from inside the application.

Im vierten Tutorial, Integrieren von Azure Spatial Anchors, fahren Sie fort, indem Sie den Azure Spatial Anchors-Dienst erkunden, um Positionen zu speichern und zu finden. Sie lernen die grundlegenden Konzepte kennen, bereiten die erforderlichen Ressourcen vor, richten die Szene ein und verwenden das neue Feature in der Anwendung.Next you advance in the fourth tutorial, Integrating Azure Spatial Anchors, with exploring Azure Spatial Anchors service to save and find locations, learn the core concepts, prepare necessary resources, setup the scene and start using the new feature in the application.

Im fünften Tutorial, Integrieren von Azure Bot Service mit LUIS, finalisieren Sie die vorherigen Schritte, indem Sie der Anwendung eine neue Methode für die Benutzerinteraktion zur Verfügung stellen: natürliche Sprache!With the fifth tutorial, Integrating Azure Bot Service with LUIS, you finalize by giving the application a new method of user interaction: natural language! Diese Funktion wird durch die Verwendung von Azure Bot Framework und Language Understanding (LUIS) umgesetzt.This feature will be realized by using the Azure Bot Framework together with Language Understanding (LUIS). In diesem letzten Kapitel werden die Grundlagen von Azure Bot Service erläutert, und Sie erfahren, wie Sie den Prozess beschleunigen können, indem Sie Bot Framework Composer als codefreie Lösung verwenden.This final chapter teaches you the basics of Azure Bot Service and to speed up the process you will be using the Bot Framework Composer as a zero code solution. Nachdem der Bot erstellt wurde, integrieren Sie ihn in die Szene und führen ihn mit der letzten Phase der HoloLens 2-Anwendung aus.Once the bot is created, you will integrate it into the scene and give it a run with the final stage of the HoloLens 2 application.

AnwendungszieleApplication goals

In dieser Tutorialserie erstellen Sie eine HoloLens 2 Anwendung, mit der Objekte aus Bildern erkannt und die räumliche Position gefunden werden kann.In this tutorial series, you will build a HoloLens 2 application that can detect objects from images and find its spatial location. Um einen Fachbegriff festzulegen, nennen wir diese Entitäten von nun an nachverfolgtes Objekt.To set a domain language, you call such entities from now Tracked Object. Der Benutzer kann ein nachverfolgtes Objekt erstellen, indem er entweder eine Reihe von Bildern über maschinelles Sehen und/oder eine räumliche Position zuordnet.The user can create a Tracked Object to either or both associate a set of images via computer vision and/or a spatial location. Alle Daten müssen in der Cloud persistent gespeichert werden.All data must be persisted into the cloud. Darüber hinaus werden einige Aspekte der Anwendung optional durch natürliche Spracheingaben gesteuert, die über einen Bot unterstützt werden.Furthermore some aspects of the application will be optionally controlled by natural language assisted through a bot.

FeaturesFeatures

  • Grundlegende Verwaltung von Daten und BildernBasic managing of data and images
  • Bildtraining und -erkennungImage training and detection
  • Speichern einer räumlichen Position sowie zugehörige AnleitungenStoring a spatial location and guidance to it
  • Bot-Assistent, um einige Features über natürliche Sprache zu nutzenBot assistant to use some features via natural language

Azure Cloud ServicesAzure Cloud services

Sie verwenden die folgenden Azure Cloud-Dienste, um die oben genannten Features zu implementieren:You'll use the following Azure Cloud services to implement the above features:

Azure StorageAzure Storage

Sie verwenden Azure Storage für die Persistenzlösung.You will use Azure Storage for the persistence solution. Der Dienst ermöglicht es Ihnen, Daten in einer Tabelle zu speichern und große Binärdateien wie Bilder hochzuladen.It allows you to store data on a table and upload large binaries like images.

Azure Custom VisionAzure Custom Vision

Mit Azure Custom Vision (Teil von Azure Cognitive Services) können Sie nachverfolgten Objekten eine Gruppe von Bildern zuordnen, ein Machine Learning-Modell für diese Gruppe trainieren und das nachverfolgte Objekt erkennen.With Azure Custom Vision (part of the Azure Cognitive Services) you can associate to Tracked Objects a set of images, train a machine learning model on the set and detect the Tracked Object.

Azure Spatial AnchorsAzure Spatial Anchors

Um die Position eines nachverfolgten Objekts zu speichern und eine Anleitung zur Suche zu erhalten, verwenden Sie Azure Spatial Anchors.To store a Tracked Object location and give a guided directions to find it, you use Azure Spatial Anchors.

Azure Bot ServiceAzure Bot Service

Die Anwendung wird hauptsächlich durch herkömmliche Benutzeroberfläche gesteuert, sodass Sie Azure Bot Service verwenden, um etwas mehr Persönlichkeit hinzuzufügen und eine neue Interaktionsmethode einzuführen.The application is mainly driven by traditional UI, so you use the Azure Bot Service to add some personality and act as a new interaction method.

VoraussetzungenPrerequisites

Tipp

Wenn Sie die Reihe Tutorials zu den ersten Schritten noch nicht abgeschlossen haben, empfiehlt es sich, zunächst diese Tutorials abzuschließen.If you have not completed the Getting started tutorials series yet, it's recommended that you complete those tutorials first.

  • Ein Windows 10-PC, der mit den richtigen Tools konfiguriert istA Windows 10 PC configured with the correct tools installed
  • Windows 10 SDK (10.0.18362.0 oder höher)Windows 10 SDK 10.0.18362.0 or later
  • Grundlagenkenntnisse in der C#-ProgrammierungSome basic C# programming ability
  • Ein für die Entwicklung konfiguriertes HoloLens 2-GerätA HoloLens 2 device configured for development
  • Eine verbundene Webcam, wenn Sie über den Unity-Editor testen möchtenA connected webcam if you like to test from Unity editor
  • Unity Hub mit installiertem Unity 2019 LTS und hinzugefügtem Buildunterstützungsmodul für die Universelle Windows-PlattformUnity Hub with Unity 2019 LTS installed and the Universal Windows Platform Build Support module added

Achtung

Die empfohlene Unity-Version für diese Tutorialserie ist Unity 2019 LTS.The recommended Unity version for this tutorial series is Unity 2019 LTS. Diese übertrifft alle Versionsanforderungen oder -empfehlungen, die in den oben verlinkten Voraussetzungen angegeben sind.This supersedes any Unity version requirements or recommendations stated in the prerequisites linked above.

Erstellen und Vorbereiten des Unity-ProjektsCreating and preparing the Unity project

In diesem Abschnitt erstellen Sie ein neues Unity-Projekt und bereiten es für die MRTK-Entwicklung vor.In this section, you will create a new Unity project and get it ready for MRTK development.

Befolgen Sie zunächst die Anweisungen unter Initialisieren des Projekts und der ersten Anwendung– jedoch ohne die Anweisungen zum Erstellen Ihrer Anwendung auf Ihrem Gerät –, die die folgenden Schritte beinhalten:First, follow the Initializing your project and first application, excluding the Build your application to your device instructions, which includes the following steps:

  1. Erstellen des Unity-Projekts, das mit einem passenden Namen bezeichnet wird, beispielsweise Azure-CloudtutorialsCreating the Unity project and give it a suitable name, for example, Azure Cloud Tutorials
  2. Wechseln der BuildplattformSwitching the build platform
  3. Importieren der TextMeshPro Essential-RessourcenImporting the TextMeshPro Essential Resources
  4. Importieren des Mixed Reality-ToolkitsImporting the Mixed Reality Toolkit
  5. Konfigurieren des Unity-ProjektsConfiguring the Unity project
  6. Erstellen und Konfigurieren der Szene und Bezeichnen der Szene mit einem passenden Namen, z. B. AzureCloudServicesCreating and configuring the scene and give the scene a suitable name, for example, AzureCloudServices

Befolgen Sie dann die Anweisungen unter Ändern der Anzeigeoption der räumlichen Wahrnehmung, um das DefaultHoloLens2ConfigurationProfile als MRTK-Konfigurationsprofil für Ihre Szene festzulegen, und ändern Sie die Anzeigeoptionen für das Gittermodell zur räumlichen Wahrnehmung in Occlusion (Verdeckung).Then follow the Changing the Spatial Awareness Display Option instructions to change the MRTK configuration profile for your scene to the DefaultHoloLens2ConfigurationProfile and change the display options for the spatial awareness mesh to Occlusion.

Installieren von integrierten Unity-PaketenInstalling inbuilt Unity packages

Wählen Sie im Unity-Menü Fenster > Package Manager (Paket-Manager) aus, um das Fenster „Package Manager“ zu öffnen, wählen Sie AR Foundation aus, und klicken Sie auf die Schaltfläche Install (Installieren), um das Paket zu installieren:In the Unity menu, select Window > Package Manager to open the Package Manager window, then select AR Foundation and click the Install button to install the package:

Unity-Paket-Manager-Fenster mit ausgewählter AR Foundation

Hinweis

Sie installieren das AR Foundation-Paket, da es für das Azure Spatial Anchor SDK erforderlich ist, das Sie im nächsten Abschnitt importieren.You are installing the AR Foundation package because the Azure Spatial Anchors SDK requires it, which you will import in the next section.

Importieren der TutorialressourcenImporting the tutorial assets

Laden Sie die folgenden benutzerdefinierten Unity-Pakete herunter, und importieren Sie sie in der Reihenfolge, in der sie aufgelistet sind:Download and import the following Unity custom packages in the order they are listed:

Tipp

Wenn Sie eine Auffrischung zum Importieren eines benutzerdefinierten Unity-Pakets benötigen, lesen Sie die Anweisungen unter Importieren des Mixed Reality-Toolkits.For a reminder on how to import a Unity custom package, you can refer to the Import the Mixed Reality Toolkit instructions.

Nach dem Importieren der Tutorialressourcen sollte Ihr Projektfenster ähnlich wie die folgende Abbildung aussehen:After you have imported the tutorial assets your Project window should look similar to this:

Unity-Fenster „Hierarchie“, „Szene“ und „Projekt“ nach dem Importieren der Tutorialressourcen

Hinweis

Wenn CS0618-Warnungen angezeigt werden, dass „WorldAnchor.SetNativeSpatialAnchorPtr(IntPtr)“ und „WorldAnchor.GetNativeSpatialAnchorPtr()“ veraltet sind, können Sie diese Warnungen ignorieren.If you see any CS0618 warnings regarding 'WorldAnchor.SetNativeSpatialAnchorPtr(IntPtr)' and 'WorldAnchor.GetNativeSpatialAnchorPtr()' being obsolete, you can ignore these warnings.

Erstellen und Vorbereiten der SzeneCreating and preparing the scene

In diesem Abschnitt bereiten Sie die Szene vor, indem Sie einige der Tutorial-Prefabs hinzufügen.In this section, you will prepare the scene by adding some of the tutorial prefabs.

Navigieren Sie im Projektfenster zum Ordner Assets > MRTK.Tutorials.AzureCloudServices > Prefabs > Manager.In the Project window, navigate to Assets > MRTK.Tutorials.AzureCloudServices > Prefabs > Manager folder. Klicken Sie mit gedrückter STRG-Taste auf SceneController, RootMenu und DataManager, um die drei Prefabs auszuwählen:While holding down the CTRL button, click on SceneController, RootMenu and DataManager to select the three prefabs:

Unity mit ausgewählten Prefabs SceneController, RootMenu und DataManager

SceneController (Prefab) enthält zwei Skripts: SceneController (Script) und UnityDispatcher (Script) .The SceneController (prefab) contains two scripts, SceneController (script) and UnityDispatcher (script). Die SceneController-Skriptkomponente enthält mehrere UX-Funktionen und ermöglicht die Fotoerfassungsfunktionalität, während UnityDispatcher eine Hilfsklasse ist, um Execute-Aktionen für den Unity-Hauptthread zuzulassen.The SceneController script component contains several UX functions and facilitates the photo capture functionality while UnityDispatcher is a helper class to allow execute actions on the Unity main thread.

RootMenu (Prefab) ist das primäre UI-Prefab, das alle Benutzeroberflächenfenster enthält, die über verschiedene kleine Skriptkomponenten miteinander verbunden sind und den allgemeinen UX-Fluss der Anwendung steuern.The RootMenu (prefab) is the primary UI prefab that holds all UI windows that are connected to each other through various small script components and control the general UX flow of the application.

DataManager (Prefab) ist für die Kommunikation mit Azure Storage zuständig und wird im nächsten Tutorial ausführlicher erläutert.The DataManager (prefab) is responsible for talking to Azure storage and will be explained further in the next tutorial.

Ziehen Sie die drei noch ausgewählten Prefabs nun auf das Hierarchiefenster, um sie der Szene hinzuzufügen:Now with the three prefabs still selected, drag them into the Hierarchy window to add them to the scene:

Unity mit noch ausgewählten, neu hinzugefügten Prefabs SceneController, RootMenu und DataManager

Um sich auf die Objekte in der Szene zu konzentrieren, können Sie auf das RootMenu-Objekt doppelklicken und die Ansicht dann etwas verkleinern:To focus in on the objects in the scene, you can double-click on the RootMenu object, and then zoom slightly out again:

Unity mit ausgewähltem RootMenu-Objekt

Tipp

Wenn Sie die großen Symbole in Ihrer Szene, beispielsweise die mit großen Rahmen umgebenen 'T'-Symbole, irritierend finden, können Sie diese ausblenden, indem Sie die Gizmos umschalten (in die Aus-Position).If you find the large icons in your scene, for example, the large framed 'T' icons distracting, you can hide these by toggling the Gizmos to the off position.

Konfigurieren der SzeneConfiguring the scene

In diesem Abschnitt verbinden Sie SceneManager, DataManager und RootMenu, um eine funktionierende Szene zu erhalten, die für das folgende Tutorial Integrieren von Azure Storage bereit ist.In this section, you will connect SceneManager, DataManager and RootMenu together to have a working scene to be ready for the following Integrating Azure storage tutorial.

Verbinden der ObjekteConnect the objects

Wählen Sie im Hierarchiefenster das DataManager-Objekt aus:In the Hierarchy window, select the DataManager object:

Unity mit ausgewähltem DataManager-Objekt

Suchen Sie im Inspektor-Fenster die Komponente DataManager (Script) . Sie sehen einen leeren Slot für das Ereignis On Data Manager Ready () .In the Inspector window, locate the DataManager (Script) component and you will see an empty slot on the On Data Manager Ready () event. Ziehen Sie nun das SceneController-Objekt aus dem Hierarchiefenster in das On Data Manager Ready () -Ereignis.Now from the Hierarchy window drag the SceneController object into the On Data Manager Ready () event.

Unity mit hinzugefügtem DataManager-Ereignislistener

Sie werden feststellen, dass das Dropdownmenü des Ereignisses aktiviert wurde. Klicken Sie auf das Dropdownmenü, navigieren Sie zu SceneController, und wählen Sie im Untermenü die Option Init () aus:You will notice that the dropdown menu of the event became active, click on the dropdown menu and navigate to SceneController and in the sub menu select the Init () option:

Unity mit hinzugefügter DataManager-Ereignisaktion

Wählen Sie im Hierarchyfenster das SceneController-Objekt aus. Im Inspektor finden Sie dort die Komponente SceneController (Script) .From the Hierarchy window, select the SceneController object, there in the Inspector you will find the SceneController (script) component.

Unity mit ausgewähltem SceneController

Sie werden feststellen, dass es mehrere nicht mit Daten aufgefüllte Felder gibt. Ändern Sie dies nun.You will see that there are several unpopulated fields, let's change that. Verschieben Sie das DataManager-Objekt aus der Hierarchie in das Feld Data Manager, und verschieben Sie das RootMenu-GameObject aus der Hierarchie in das Feld Main Menu (Hauptmenü).Move the DataManager object from the Hierarchy into the Data Manager field and move the RootMenu GameObject from the Hierarchy into the Main Menu field.

Unity mit konfiguriertem SceneController

Ihre Szene ist nun für die bevorstehenden Tutorials bereit.Now your scene is ready for the upcoming tutorials. Vergessen Sie nicht, sie in Ihrem Projekt zu speichern.Don't forget to save it into your project.

Vorbereiten der ProjektbuildpipelinePrepare project build pipeline

Obwohl das Projekt noch mit Inhalt gefüllt werden muss, müssen Sie einige Vorbereitungen treffen, damit das Projekt für den Buildvorgang für HoloLens 2 bereit ist.While the project yet has to be filled with content, you have to perform some preparations, so the project is ready for building for HoloLens 2.

1. Hinzufügen zusätzlicher erforderlicher Funktionen1. Add additional required capabilities

Wählen Sie im Unity-Menü Edit > Project Settings... (Bearbeiten > Projekteinstellungen...) aus, um das Fenster „Project Settings“ (Projekteinstellungen) zu öffnen:In the Unity menu, select Edit > Project Settings... to open the Project Settings window:

Öffnen der Projekteinstellungen in Unity

Wählen Sie im Fenster „Project Settings“ (Projekteinstellungen) die Option Player und dann Publishing Settings (Veröffentlichungseinstellungen) aus:In the Project Settings window, select Player and then Publishing Settings:

Veröffentlichungseinstellungen in Unity

Scrollen Sie in den Publishing Settings nach unten zum Abschnitt Capabilities (Funktionen), und vergewissern Sie sich, dass die Funktionen InternetClient, Microphone und SpatialPerception, die Sie im Rahmen der Erstellung des Projekts zu Beginn des Tutorials erstellt haben, aktiviert sind.In the Publishing Settings, scroll down to the Capabilities section and double-check that the InternetClient, Microphone and SpatialPerception capabilities, which you enabled when you created the project at the beginning of the tutorial, are enabled. Aktivieren Sie dann die Funktionen InternetClientServer, PrivateNetworkClientServer und Webcam:Then, enable the InternetClientServer, PrivateNetworkClientServer, and Webcam capabilities:

Unity-Funktionen

2. Bereitstellen der App auf Ihrer HoloLens 22. Deploy the app to your HoloLens 2

Nicht alle Funktionen, die Sie in dieser Tutorialreihe verwenden werden, können innerhalb des Unity-Editors ausgeführt werden. Dies bedeutet, dass Sie mit der Bereitstellung der Anwendung auf Ihrem HoloLens 2-Gerät vertraut sein müssen.Not all features that you will use in this tutorial series can run inside the Unity editor, this means that you need to be familiar with deploying the application to your HoloLens 2 device.

Tipp

Falls Sie eine Auffrischung zum Erstellen und Bereitstellen Ihres Unity-Projekts auf HoloLens 2 benötigen, lesen Sie in den Tutorials mit den ersten Schritten die Anweisungen unter Erstellen Ihrer Anwendung auf Ihrem Gerät.For a reminder on how to build and deploy your Unity project to HoloLens 2, you can refer to the Getting started tutorials - Build your application to your device instructions.

3. Führen Sie die App auf Ihrer HoloLens 2 aus, und folgen Sie den Anweisungen in der App3. Run the app on your HoloLens 2 and follow the in-app instructions

Achtung

Alle Azure-Dienste verwenden das Internet. Stellen Sie daher sicher, dass Ihr Gerät mit dem Internet verbunden ist.All Azure Services uses the internet, so make sure your device is connected to the internet.

Wenn die Anwendung auf Ihrem Gerät ausgeführt wird, stimmen Sie dem Zugriff auf die folgenden angeforderten Funktionen zu:When the application is running on your device, accept access to the following requested capabilities:

  • MikrofonMicrophone
  • KameraCamera

Diese Funktionen sind für Dienste wie Chat Bot und Custom Vision erforderlich, damit diese ordnungsgemäß funktionieren.These capabilities are required for services like Chat Bot and Custom Vision to function properly.

Herzlichen Glückwunsch!Congratulations

In diesem Tutorial wurde Ihnen die Tutorialreihe vorgestellt, Sie haben erfahren, welche Funktionen Sie implementieren und wie Azure Cloud Services an die Realisierung Ihrer HoloLens  2-Anwendung anknüpfen.In this tutorial, you were introduced to the tutorial series, learned about the features you will implement and how Azure Cloud services tie in to making your HoloLens 2 application happen. Sie haben dem Projekt die erforderlichen Komponenten hinzugefügt und die Szene für diese Tutorialreihe vorbereitet.You added the required components into the project and prepared the scene for this tutorial series.

In der nächsten Lektion verwenden Sie Azure Storage als cloudbasierte Persistenzlösung zum Speichern von Daten und Bildern.In the next lesson, you will use Azure storage as a cloud based persistence solution for storing data and images.