Hololens mit Unity3D: Projektsetup

Keine Kommentare

Dieser Teil der Blogserie zum Thema Augmented Reality mit der Hololens behandelt, wie ein grundlegendes Unity3D-Projekt aufgebaut wird. Im letzten Blogpost (Augmented Reality mit der Hololens) wurde beschrieben, was die Hololens ist und wie sie funktioniert. Darauf aufbauend wird nun das Aufsetzen eines minimalen Projekts beschrieben. Am Ende dieses Blogposts kann eine einfache 3D-Anwendung erstellt, auf die Hololens deployed und ausgeführt werden.

Verwendete Software

– Windows 10
Unity 2017.4.10f1
Visual Studio 2017 Community
HoloToolkit-Unity-2017.4.1.0

Software für die Hololens wird für die Universelle Windows-Plattform (UWP) entwickelt und ist somit ausschließlich für Windows. Die erstellten Apps werden über den Microsoft Store angeboten. Um 3D-Anwendungen zu erstellen, wird empfohlen, die Unity 3D Engine mit der 2017-LTS-Version zu verwenden. In diesem Tutorial wird die Version 2017.4.10f1 genutzt. Um das Projekt im Anschluss zu kompilieren und zu deployen, ist außerdem die Visual Studio 2017 Community-Version notwendig.

Microsoft stellt mit dem HoloToolkit Erweiterungen für Unity zur Verfügung, mit dem man verschiedene Voreinstellungen für die Scene oder das Projekt anwenden kann. Zudem beinhaltet es verschiedene prefabs, mit denen der Einstieg erleichtert werden soll. prefabs sind dabei templates, mit denen 3D-Modelle, Skripte und Einstellungen zusammengefasst werden und so wiederverwendet werden können.

Setup des Projektes

Wenn Visual Studio und Unity installiert sind, erfolgt die Erstellung eines neuen Unity-3D-Projekts. Es müssen keine Project Assets hinzugefügt werden. Außerdem kann Analytics deaktiviert werden.

New project window screenshot

Nachdem das Unity-Projekt geladen ist, kann das Hololens Toolkit (HoloToolkit-Unity-2017.4.0.0.upackage) per Drag and Drop in den Asset Browser importiert werden. Alternativ kann die Erweiterung über „Assets/Import Package/Custom Package…“ hinzugefügt werden. Dieses Toolkit beinhaltet prefabs und Unity-Erweiterungen, die das Erstellen einer Hololens-Anwendung erleichtern. Wenn der Import fertig ist, steht in der Menüleiste der neue Menüpunkt Mixed Reality Toolkit zur Verfügung. Unity startet zwischenzeitlich neu.

Folgende Einstellungen sollten über das neu hinzugefügte Menü Mixed Reality Toolkit vorgenommen werden:


Die Einstellungen, die für die Hololens notwendig sind, können über den Menüpunkt Apply Mixed Reality Project Settings vorgenommen werden. Sämtliche Einstellungen kann man auch manuell in den Build und Player Settings ändern. Die hier gezeigte Funktion soll dem Entwickler ein paar Extraschritte abnehmen und den Setup-Prozess vereinfachen.


Über den Menüpunkt Apply UWP Capability Settings werden Rechte bzw. der Zugriff auf Resourcen gewährt, welche die Anwendung benötigt. Ohne dieses Menü findet man die Capability Settings in den Player Settings im Bereich der Universal-Windows-Plattform-Einstellungen.

Als nächstes sollte die default Camera aus der Scene entfernt werden. Stattdessen kann das HoloLensCamera prefab verwendet werden. Diese liegt unter „HoloToolkit/Input/Prefabs/“. Dieses prefab stellt eine Camera zur Verfügung, die speziell für holographic headsets eingestellt ist. Dazu gehört beispielsweise, dass der Hintergrund nicht mit einer Skybox, sondern schwarz gerendert wird. Weiter wird die Near Clipping Plane verändert, so dass Objekte nur gerendert werden, wenn sie mindestens 0.85 Einheiten in Unity von der Kamera entfernt positioniert wurden. Diese Einstellung lässt sich ändern, gilt jedoch als empfohlener Maßstab, um ein gutes AR-Ergebnis zu erzielen. Neben diesen Einstellungen bringt das Camera prefab außerdem einen cursor, der in der Mitte des Viewports angezeigt wird und sich durch entsprechende Ausrichtung an die erkannte Umgebung anpasst.

Damit ist das grundlegende Setup abgeschlossen. Um dieses zu testen kann ein Objekt der Scene hinzugefügt und um 5 Einheiten auf der z-Achse verschoben werden (Translation 0, 0, 5). Wenn alles funktioniert hat, sollte dieses nach dem Deployment und dem Starten der Anwendung auf der Hololens sichtbar sein.

Initiale Scene mit Würfel

Deployment auf die Hololens

Um die Scene auf der Hololens zu deployen, muss ein Visual-Studio-Projekt erzeugt werden. Dafür öffnet man die Build Settings und ändert die Einstellungen wie im folgenden Bild dargestellt:

Hololens BuildSettings

Wenn man nun Build anwendet, wird man aufgefordert, einen Speicherort für das Visual-Studio-Projekt auszuwählen. Die erzeugte Solution wird letztendlich zum Bauen und Ausführen der Anwendung benötigt. Öffnet man das gerade erzeugte Projekt in Visual Studio, muss nur noch die Zielarchitektur auf x86 gesetzt werden. Man kann das Deployment über ein USB-Kabel oder über das Netzwerk durchführen. Ist die Hololens per USB-Kabel verbunden, so wählt man Device als Ziel aus. Möchte man ohne Kabel deployen, kann man „Remotecomputer“ auswählen. Im darauffolgenden Fenster kann dann die IP der Hololens eingetragen werden. Anschließend kann man das Projekt über Ctrl+F5 (Starten ohne Debugger), bauen und deployen.

Testen ohne Deployment

Der Umweg über Visual Studio kann bei einfachen Scene-Veränderungen umständlich sein. Um eine Scene direkt auf die Hololens streamen zu können, kann man „Holographic Streaming“ konfigurieren. Um dieses Feature nutzen zu können, muss auf der Hololens die App Holographic Remoting installiert werden. In Unity lässt sich unter Window -> Holographic Emulation eine Streaming-Verbindung einrichten. Mit diesem Setup lässt sich über den Play Button in Unity direkt die Scene auf der Hololens darstellen. Diese Verbindung ist bidirektional. Das heißt, die Scene wird auf die Hololens gestreamt und die Kopfbewegungen werden direkt in Unity angezeigt.

Fazit/Ausblick

In diesem Blogpost wurde beschrieben, wie ein grundlegendes Projekt aufgesetzt werden kann. Im nächsten Teil werden wir anhand eines realen Showcases erläutern, wie reale Objekte um Mixed Reality erweitert werden können. Abschließend wollen wir nicht nur Objekte in den Raum projizieren, sondern auch mit ihnen interagieren.

Quellen:
Hololens Mixed Reality Toolkit

Markus Höfer

Markus arbeitet als Consultant und Entwickler im Bereich Big Data, verteilter Systeme sowie Mixed- und Virtual Reality. Er unterstützt seine Kunden bei der Konzeptionierung und Implementierung von Service Architekturen.

Dominik Schlicher

Dominik arbeitet seit 2016 bei der codecentric in Münster. Er arbeitet als Consultant und Entwickler von Java-Enterprise-Technologien sowie modernen Webanwendungen. Dabei ist er ein Verfechter von agilen Prozessen.

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.