Sie halten die HoloLens noch nicht in eigenen Händen, wollen aber schon anfangen, Apps dafür zu entwickeln? Dank Visual Studio, Unity und dem HoloLens Emulator von Microsoft ist dies bereits heute möglich. In diesem Teil der Blog-Serie HoloLens zeigen wir Ihnen, wie Sie auch ohne Hardware mit der Entwicklung für die HoloLens starten können.
Die nötigen Tools, die vorher installiert werden müssen, und Systemvoraussetzungen befinden sich auf der Microsoft-Seite und können hier nachgelesen werden. Die Tools beinhalten unter anderem das Visual Studio 2015 Update 3, den HoloLens Emulator und Unity.
Bei Visual Studio sollte beachtet werden, dass es sich bei HoloLens-Apps um UWP-Apps handelt. Deshalb müssen die entsprechenden UWP-Features in Visual Studio auch mit installiert werden.
Die Systemvoraussetzungen an den Entwicklungsrechner sind hoch: 64-bit Windows 10, 4-Kern CPU, 8 GB RAM und eine GPU mit DirectX Version 11 oder höher. Zusätzlich muss für den HoloLens-Emulator Hyper-V aktiviert sein.
Wer dies liefern kann und die entsprechenden Tools installiert hat, der kann direkt mit der Entwicklung für die HoloLens beginnen.
Apps
Für die Entwicklung von Anwendungen muss zuerst einmal unterschieden werden, ob eine 2D-App oder eine 3D-App entwickelt werden soll.
HoloLens: 2D-App (Bildquelle) |
HoloLens: 3D-App (Bildquelle) |
2D-Apps können als ganz normale UWP-Apps entwickelt und auch im HoloLens Simulator getestet werden. Diese werden innerhalb der 3D-Welt als rechteckiges Fenster dargestellt (siehe Bild).
3D-Apps wiederum stellen normalerweise 3D-Objekte dar oder agieren direkt mit dem drei dimensionalen Raum.
Wer also nicht mit der 3D-Welt direkt interagieren möchte, dem reicht die Entwicklung einer normalen UWP-App vollkommen aus.
Unity
Unity ist eine 3D-Engine, die zusätzlich noch eine Entwicklungsplattform liefert, mit der nicht nur Spiele sondern auch Augmented Reality (kurz AR) und Virtual Reality (kurz VR) Anwendung erstellt werden können. Dabei fällt die HoloLens in die Kategorie von Augmented Reality, also der erweiterten Realität, da hiermit eine Vermischung der echten Welt mit 3D-Objekten stattfindet.
Da Unity für die Entwicklung von 3D-Welten und auch im Umgang mit AR bereits viel bietet, setzt Microsoft auf diese Technologie in der Entwicklung von Anwendungen für die HoloLens. Wem Unity nicht gefällt, der hat noch die Alternative direkt mit DirectX und C++ oder SharpDX und C# zu arbeiten.
Unity: Der Asset-Manager von Unity
Jedes Projekt in Unity besteht hauptsächlich aus Assets. Diese können z.B. 3D-Models, Skripte, Shader oder Scenes sein.
Die Programmierung der Logik in Unity erfolgt über C#-Skripte. Dabei stellt Unity ein Framework bereit, auf welchem aufgebaut und über welches mit der 3D-Welt interagiert werden kann. Hierzu sollten die Kenntnisse in 3D-Programmierung und auch der Matrizen- und Vektorrechnung aufgefrischt werden, denn an diesen kommen Sie im Normalfall nicht vorbei.
Als Einstieg eignet sich die Galaxy Explorer App, die im Zuge der Share Your Idea Kampagne von Microsoft entwickelt wurde und als Beispiel-App für die HoloLens dient. Diese bietet alle wichtigen Konzepte einer HoloLens-App in Unity wie 3D-Modelle, Sounds, GUI, C#-Skripte, Shader und einer flüssigen Kameraführung.
Zum Abbilden von 3D-Objekten können in Unity verschiedene 3D-Model-Formate importiert werden. Dabei gibt es Unterstützung für 3D-Modelling-Anwendungen wie Maya, 3ds Max oder Blender. Wer nicht selber 3D-Objekte modellieren möchte, wird im Internet fündig. Hier gibt es unterschiedliche Seiten wie z.B. den Unity Asset Store über den man entweder kostenpflichtige aber auch kostenlose 3D-Modelle erwerben kann.
Zu sehr soll in diesem Blogbeitrag zum Thema Unity nicht in die Tiefe gegangen werden. Hier nur ein paar Features zusammengefasst:
Für grafische Effekte können in Unity Shader angelegt werden. Wer innerhalb seiner Anwendung Partikeleffekte oder ein Physik benötigt, für den hat Unity ebenfalls etwas an Bord.
Wer unterschiedliche Darstellungen hat, kann auf Scenes zurückgreifen. Durch Scenes wird definiert, was dargestellt wird. Somit können z.B. unterschiedliche Räume auch unterschiedliche Objekte enthalten. Jeder Raum wird dann durch eine Scene repräsentiert.
Visual Studio
Visual Studio wird hauptsächlich für das Debugging und Deployment der HoloLens-Apps verwendet. Zusätzlich können C#-Skripte aus Unity in Visual Studio bearbeitet werden, wodurch Features wie IntelliSense zur Verfügung stehen.
Visual Studio: HoloLens-Solution (nachdem diese aus Unity exportiert wurde)
Das Debugging von Apps funktioniert über den HoloLens Emulator. Dabei wird die App einfach aus Visual Studio gestartet und die C#-Skripte aus Unity können mit Breakpoints versehen werden.
Das Deployment von Apps funktioniert entweder über den Windows Store, wie eine gewöhnliche UWP-App, oder es kann direkt auf die HoloLens installiert werden.
HoloLens Emulator
Der HoloLens Emulator bietet die Möglichkeit das Heads-Up-Display der HoloLens zu emulieren. Dabei wird alles, was der Benutzer später sieht, auch im Emulator dargestellt. Alle schwarzen Bereiche im Emulator sind später in der HoloLens durchsichtig.
HoloLens Emulator: Galaxy Explorer
Die Steuerung des Emulators funktioniert mit Maus und Tastatur. Dadurch können alle Aktionen und Bewegungen der HoloLens im Emulator nachgespielt werden. Der Emulator bietet ebenfalls die Möglichkeit, verschiedene Räume zu laden. Dadurch kann die HoloLens in einer vorher aufgenommenen reellen Umgebung getestet werden. Dabei ist es auch möglich, eigene Räume mit der HoloLens aufzunehmen und diese im Emulator abzuspielen.
HoloLens Device Portal
Das HoloLens Device Portal kann sowohl für die richtige HoloLens als auch für den Emulator verwendet werden. Dieses bietet aktuelle Informationen zum Zustand der HoloLens wie z.B. die Auslastung, die installierten Apps und sogar einen direkten Einblick in die 3D-Welt, welche die HoloLens gerade sieht. Das HoloLens Device Portal bietet somit eine weitere Debugging-Schnittstelle, mit der wichtige Information während dem Entwickeln angezeigt werden können. Hier enthält der Entwickler Einblick in die Systemperformance, die Systemauslastung oder kann Aufnahmen der Umgebung oder dessen, was die HoloLens sieht, aufzeichnen.
HoloLens Device Portal: Das Webportal der HoloLens inklusive Einsicht in die 3D-Welt
Die wichtigsten Funktionen im Überblick:
- 3D View: Bietet die Möglichkeit die Position und Blickrichtung der HoloLens im 3D-Raum zu verfolgen. Gleichzeitig kann der geladene Raum im Emulator angezeigt werden.
- Mixed Reality Capture: Bietet die Möglichkeit eine Aufnahme zu machen, aus dem was die HoloLens im Moment in der reellen Welt sieht und was in der 3D-Welt abgebildet wird.
- Performance Tracing: Startet ein Performanceprofiler der z.B. die CPU-Auslastung oder die Speicherbelastung mit aufnimmt.
- System Performance: Zeigt die Auslastung des Systems, z.B. für die Auslastung der CPU, GPU oder des Arbeitsspeichers.
- Apps: Bietet eine Liste der installierten Apps und der aktuell laufenden Apps. Diese können entweder gestartet oder gestoppt werden. Zusätzlich können Apps installiert und wieder deinstalliert werden.
- App Crash Dumps: Für Apps können Crash Dumps aktiviert werden, die sich später auch hier abrufen lassen, um ein App Crash zu analysieren.
- Simulation: Über die Simulation können Räume und Bewegungen des Benutzers aufgenommen, die später im Emulator wieder angezeigt und abgespielt werden können. Dadurch kann das Benutzerverhalten zu einem späteren Zeitpunkt noch einmal nachgespielt werden.
Wollen Sie mehr über HoloLens erfahren, dann sprechen Sie uns an oder kommen Sie am 14.09.2016 zu uns nach Stuttgart auf’s Holodeck.