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.
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.
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:
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
Weitere Beiträge
von Markus Höfer & Dominik Averesch
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Weitere Artikel in diesem Themenbereich
Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.
Gemeinsam bessere Projekte umsetzen.
Wir helfen deinem Unternehmen.
Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.
Hilf uns, noch besser zu werden.
Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.
Blog-Autor*innen
Markus Höfer
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Dominik Averesch
Team Lead & IT Consultant
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.