Windows Mixed Reality: Ein Entwicklerhandbuch (Teil 1)

Hallo Habr! Heute starten wir eine Reihe von Artikeln über Windows Mixed Reality. In diesem Rahmen werden wir eine Mixed-Reality-Anwendung für Unity von Grund auf neu entwickeln. All dies geschieht übrigens im Format Laborarbeit (Laborarbeit), dh Sie können parallel zur Veröffentlichung von Artikeln selbst eine solche Anwendung erstellen. Jetzt mitmachen!



Die gesamte Anleitung besteht aus 5 Teilen. Es wird jede Woche aufgefüllt. Unten können Sie zu dem Teil gehen, den Sie benötigen.

Teil 1: Exportieren der UWP-Anwendung für Windows Mixed Reality aus Unity ;
Teil 2: Einrichten der Umgebung (VR) ;
Teil 3: Controller ;
Teil 4: Raumklang ;
Teil 5: HoloLens und Grafik .

Mixed Reality ist eine Kombination aus realer Welt und virtuellem Inhalt, einer hybriden Umgebung, in der physische und digitale Objekte zusammen existieren und miteinander interagieren.

In diesem Lernprogramm erstellen Sie eine Anwendung für immersive Windows Mixed Reality (VR) -Headsets und Microsoft HoloLens (AR) -Geräte. Mit Unity erstellen Sie einen virtuellen Raum, in dem Benutzer mit einem Lautsprecher interagieren, der räumlichen Klang wiedergibt. Benutzer hören den Ton, indem sie sich zu verschiedenen Punkten im Raum teleportieren oder den Lautsprecher selbst im Raum bewegen.

Die Anwendung wird mit dem Mixed Reality Toolkit erstellt, um maximale Kompatibilität mit HoloLens zu gewährleisten. Gegen Ende der Lektion werden Sie einige Änderungen an der Anwendung vornehmen, um die für das HoloLens-Gerät optimierte Erfahrung aus der Virtual-Reality-Anwendung heraus zu optimieren.

Nach Abschluss der Lektion haben Sie:

  • Erfahren Sie, wie Sie mit Unity Virtual-Reality-Anwendungen erstellen und dieses Wissen festigen.
  • Erfahren Sie, wie Sie Unity so konfigurieren, dass UWP-Anwendungen für Mixed Reality erstellt werden.
  • Erfahren Sie, wie Sie die Standardfunktionen von Mixed Reality (MR) wie Kameraeinstellungen, Eingabeverarbeitung (Blicksteuerung, Bewegungs- und Gestensteuerung) und räumliche Klangwiedergabe in MR-Anwendungen verwenden.
  • Erfahren Sie, wie Sie Mixed Reality-Apps erstellen, die sowohl für VR-Brillen als auch für HoloLens geeignet sind.

Hardwareanforderungen


  • MR-fähiger Computer
  • [Optional] Immersives Windows Mixed Reality-Headset mit Motion Controllern
  • [Optional] HoloLens-Gerät

Hinweis Wenn Sie keinen Zugriff auf ein immersives Headset oder ein HoloLens-Gerät haben, können Sie im Mixed Reality-Simulator oder HoloLens-Emulator sehen, wie Ihre Anwendung funktioniert. Siehe Links unten.

Softwareanforderungen


Visual Studio 2017 . Jede Edition reicht aus, einschließlich der kostenlosen Community Edition. Während der Installation müssen die folgenden Komponenten und Workloads ausgewählt werden:


Hinweis In Visual Studio können Sie über das Menü Extras -> Tools und Funktionen abrufen (Tools -> Tools und Komponenten abrufen) auf verschiedene Toolkits zugreifen.

Unity 2017.4.3 (bei der Auswahl von Komponenten während der Installation müssen Sie das .Net Scripting Backend hinzufügen);

• Betriebssystem Windows 10 Fall Creators Update (oder höher);

  • Um den Entwicklermodus zu aktivieren, gehen Sie zu Einstellungen -> Update & Sicherheit -> Für Entwickler.

• [Optional] Emulator HoloLens oder Simulator Mixed Reality .

Exportieren Sie die UWP Windows Mixed Reality App aus Unity


1. Erstellen Sie ein Unity-Projekt und importieren Sie Ressourcen


Für diese Praxis müssen wir einige notwendige Ressourcen importieren. Laden Sie diese beiden Unity-Pakete herunter und speichern Sie sie auf Ihrem Computer.

  • Holotoolkit.Unitypackage
    Dies ist eine Momentaufnahme des Microsoft Mixed Reality Toolkit , einer Reihe von Skripten und Komponenten, die die Entwicklung von Anwendungen für Microsoft HoloLens und Headsets beschleunigen, die Windows Mixed Reality unterstützen.
  • SpatialSoundLab.Unitypackage
    Ein spezielles Paket für diese praktische Lektion. Enthält Ressourcen (Modelle, Materialien und Soundclips), die für die Arbeit mit räumlichem Sound verwendet werden.

Nach Erhalt der Ressourcendateien können wir ein Unity-Projekt erstellen.

1. Öffnen Sie den Unity-Editor und klicken Sie auf Neu.

2. Wählen Sie einen Namen für das Projekt aus (z. B. SpeakerPlacement).

3. Aktivieren Sie 3D für die Vorlage, deaktivieren Sie die Analyse und klicken Create project .

4. Um Unity-Pakete zu importieren, wählen Sie im Menü Assets -> Import Package -> Custom Package und navigieren Sie zum zuvor gespeicherten Holotoolkit.unitypackage-Paket.



5. Deaktivieren Sie nicht Elemente, um alle Dateien zu importieren. Klicken Sie auf Import .



Der Importvorgang besteht aus mehreren Schritten und kann einige Minuten dauern. Wenn der Paketimport erfolgreich ist, wird im Projektfenster unter dem Ordner "Assets" ein Ordner mit dem Namen "Holotoolkit" angezeigt.



6. Importieren Sie auch die Datei SpatialSoundLab.UnityPackage, indem Sie die obigen Schritte wiederholen.

7. Der Ordner "Assets" sollte jetzt beide Pakete enthalten.



2. Anwendung von Projektparametern


Als Nächstes müssen wir unser Unity-Projekt konfigurieren, um eine Anwendung für Windows Mixed Reality zu erstellen. Diese Aufgabe hilft uns, das Mixed Reality Toolkit zu vervollständigen.

1. Gehen Sie im oberen Menü zum Abschnitt Mixed Reality Toolkit -> Konfigurieren (Mixed Reality Toolkit -> Einstellungen) und wählen Sie Mixed Reality Project Settings anwenden.



2. Aktivieren Sie das Kontrollkästchen Toolkit-spezifische InputManager-Achsen verwenden und klicken Sie auf die Schaltfläche Übernehmen.



Zu Referenzzwecken geben wir eine Beschreibung der einzelnen Parameter:

  • Ziel Windows Universal UWP (Build für Windows Universal UWP) - Gibt die Zielplattform für Unity an. Weitere Optionen für die Zielplattform können durch Auswahl von Datei -> Build-Einstellungen angezeigt werden.
  • Build for Direct3D: Legt den D3D-Wert für den Parameter Build Type im Abschnitt Build Settings fest. Für Mixed Reality-Anwendungen für geschlossene Headsets wird XAML nicht unterstützt.
  • Das Festlegen des Parameters "XR aktivieren" entspricht dem Festlegen des Parameters "Unterstützte virtuelle Realität" im Abschnitt "Player-Einstellungen -> XR-Einstellungen".
  • Das Festlegen des .NET-Skriptparameters aktivieren entspricht dem Festlegen des .NET-Werts für die Player-Einstellungen -> Andere Einstellungen -> Scripting-Backend-Parameter (Player-Einstellungen -> Andere Parameter -> Scripting-Plattform). Die IL2CPP-Option würde ebenfalls funktionieren. Aus Gründen der Konsistenz in dieser Übung empfehlen wir jedoch die Verwendung der .NET-Variante.
  • Der Parameter Use Toolkit-spezifische InputManager-Achse ändert die Achsen des Abschnitts Bearbeiten -> Projekteinstellungen -> Eingabemanager, um die Unterstützung für alle in der Toolbox verwendeten Achsen zu aktivieren . Mit anderen Worten, es unterstützt das Xbox-Gamepad und die Controller für Mixed Reality.
  • Wenn Sie nur Anwendungen für immersive Headsets erstellen, können Sie das Kontrollkästchen Zielverschlossene Geräte aktivieren. Da wir unsere Anwendung auf das HoloLens-Gerät übertragen, wird dieses Kontrollkästchen nicht aktiviert.

Wir haben Unterstützung für Mixed Reality bereitgestellt, es müssen jedoch noch einige weitere Einstellungen für die universelle Windows-Plattform vorgenommen werden.

3. Gehen Sie im oberen Menü zum Abschnitt Mixed Reality Toolkit -> Konfigurieren (Mixed Reality Toolkit -> Einstellungen) und wählen Sie UWP-Fähigkeitseinstellungen anwenden.



4. Aktivieren Sie das Kontrollkästchen Räumliche Wahrnehmung, wenn Sie diese Anwendung auf ein HoloLens-Gerät übertragen möchten. Auf diese Weise können wir die Umgebung abbilden und die Oberflächen für die Lautsprecher finden.

5. Klicken Apply Schaltfläche Apply , um Ihre Änderungen zu speichern.

6. Öffnen Sie als Nächstes das Dialogfeld Datei -> Build-Einstellungen mit der Tastenkombination Strg + Umschalt + B, wählen Sie Universal Windows Platform aus und klicken Sie dann auf Plattform wechseln. Fügen Sie der Baugruppe eine offene Szene hinzu, indem Sie das Kontrollkästchen neben dem Szenennamen aktivieren und auf die Schaltfläche Offene Szenen hinzufügen klicken. Bestätigen Sie das Angebot zum Speichern der Szene und wählen Sie einen geeigneten Namen dafür. Wir haben unsere Szene Main genannt.

3. Wenden Sie Szeneneinstellungen an und fügen Sie Mixed Reality-Objekte hinzu


Jetzt müssen wir die Szene einrichten. Fügen wir Objekte hinzu, die Kamerabewegungen und Signale vom Controller verarbeiten.

1. Gehen Sie im oberen Menü zum Abschnitt Mixed Reality Toolkit -> Konfigurieren (Mixed Reality Toolkit -> Einstellungen) und wählen Sie Mixed Reality Project Settings anwenden.



2. Lassen Sie alle Standardeinstellungen ausgewählt und klicken Sie auf die Schaltfläche Übernehmen.



Zu Referenzzwecken beschreiben wir alle diese Parameter:

  • Das vorgefertigte MixedRealityCameraParent wird der Szene hinzugefügt. Dieses Fertighaus fügt dem Ursprung (0,0,0) eine Standardkamera (Hauptkamera) hinzu und unterstützt auch Bewegungs- und Grenzkontroller.
  • Der vorgefertigte InputManager wird der Szene hinzugefügt. Es bietet Eingabeunterstützung (Blick, Gestensteuerung, Berührungseingabe oder ein Xbox-Gamepad).
  • Der vorgefertigte DefaultCursor wird der Szene hinzugefügt.

Alle hinzugefügten Objekte werden im Bereich "Einheitshierarchie" angezeigt.

Damit ist die Einrichtung und Vorbereitung des Projekts und der Szene zum Erstellen der UWP-Anwendung für MR abgeschlossen.

Speichern Sie die Szene und das Design.

3. Klicken Sie auf Datei -> Szenen speichern. Wenn Sie aufgefordert werden, einen Namen für die Szene auszuwählen, nennen Sie ihn Main (oder lassen Sie sich einen anderen geeigneten Namen einfallen).

4. Klicken Sie auf Datei -> Projekt speichern.

Hinweis Eine detaillierte Beschreibung aller hier verwendeten Parameter finden Sie in diesem Mixed Reality-Projekt-Setup- Handbuch .

4. Bereitstellen von Anwendungen auf Headsets


Jetzt müssen Sie dies nicht mehr tun. Wenn Sie jedoch ein Projekt erstellen möchten, befolgen Sie die folgenden Anweisungen, um es zu starten.

Bereitstellen eines Projekts auf einem immersiven Headset

1. Gehen Sie zum Mixed Reality Toolkit -> Build Window (Mixed Reality Toolkit -> Build Window).

2. Klicken Sie Open in Visual Studio . Diese Aktion dauert einige Minuten. Während dieser Zeit werden alle Ressourcen kompiliert und eine Lösung für Visual Studio erstellt oder aktualisiert.

Hinweis Wenn in Unity die Meldung angezeigt wird, dass für das Projekt keine offene Lösung vorhanden ist und Sie gefragt werden, ob Sie die Assembly abschließen müssen, wählen Sie Ja, Erstellen.

3. Nach Abschluss des Builds startet Unity Visual Studio.

4. Ändern Sie in der Standard-Visual Studio-Symbolleiste die aktive Lösungsplattform von ARM in x64. Für das Bereitstellungsziel müssen Sie Lokaler Computer auswählen.



Wenn Sie nicht debuggen, empfehlen wir, dass Sie auch den Build-Typ von Debug in Release ändern, da Unity-Debug-Builds meistens langsamer sind.

5. Starten Sie die Anwendung durch Drücken der Wiedergabetaste.

Bereitstellen eines Projekts auf einem HoloLens-Gerät

Das Verfahren zum Bereitstellen eines Projekts auf einem HoloLens-Gerät ist dem obigen Verfahren für immersive Headsets sehr ähnlich, mit der einzigen Ausnahme, dass Sie ein anderes Zielgerät auswählen und x86 als Plattform auswählen müssen.

1. Gehen Sie zum Mixed Reality Toolkit -> Build Window (Mixed Reality Toolkit -> Build Window).

2. Klicken Sie Open in Visual Studio . Diese Aktion dauert einige Minuten. Während dieser Zeit werden alle Ressourcen kompiliert und eine Lösung für Visual Studio erstellt oder aktualisiert.

Hinweis Wenn in Unity die Meldung angezeigt wird, dass für das Projekt keine offene Lösung vorhanden ist und Sie gefragt werden, ob Sie die Assembly abschließen müssen, wählen Sie Ja, Erstellen.

3. Nach Abschluss des Builds startet Unity Visual Studio.

4. Ändern Sie in der Standard-Visual Studio-Symbolleiste die aktive Lösungsplattform von ARM in x86 und wählen Sie das entsprechende Ziel für die Bereitstellung aus:

  • Wenn die Bereitstellung über USB erfolgt, wählen Sie Gerät.
  • Wenn die Bereitstellung über WLAN erfolgt, wählen Sie Remotecomputer aus und konfigurieren Sie den Remotecomputer.



Wenn Sie nicht debuggen, empfehlen wir, dass Sie auch den Build-Typ von Debug in Release ändern, da Unity-Debug-Builds meistens langsamer sind.

5. Starten Sie die Anwendung durch Drücken der Wiedergabetaste.

Informationen zum Veröffentlichen von Apps im Microsoft Store finden Sie auf der Windows Developer-Website .

Lautsprecherplatzierungs-App


In unserer Anwendung zum Platzieren von Lautsprechern zum Platzieren von Lautsprechern stehen dem Benutzer folgende Optionen zur Verfügung:

  • Mit Motion Controllern kann sich der Benutzer zu verschiedenen Punkten des virtuellen Wohnzimmers teleportieren oder sich darin bewegen.
  • Sie können auch Lautsprecher auswählen, bewegen, drehen, ein- und ausschalten und räumlichen Klang im gesamten Raum hören.

Unten finden Sie eine Liste unserer Modell- und Musikressourcen.

  • Prefabs -> RoomPrefab.prefab - ein virtuelles Wohnzimmer für ein immersives Headset.
  • Modelle -> Speaker.3DS - ein Modell unserer Lautsprecher, das wir in ein funktionierendes Fertighaus verwandeln werden.
  • Audio -> ChillBlueLagoon.mp3 - Musikdatei (Sie können jede Datei im MP3-, OGG-, WAV- oder AIFF-Format verwenden).

Weitere Funktionen werden mit dem Mixed Reality Toolkit implementiert. Die Komponenten dieses Kits werden verwendet, um die Interoperabilität zu verbessern.

Das Original
Autoren: Eric Ahlstrom, cbarkerms, Madison Hight

Source: https://habr.com/ru/post/de418655/


All Articles