Anzeige
Anzeige
Verpasse keine News mehr!

Wie VR-Applikationen in Unity entstehen: Entwickeln für die virtuelle Realität

Virtual Reality gilt als das nächste große Ding in der Technologiebranche. Mit Oculus Rift und HTC Vive sind die großen High-End-Lösungen schon erschienen, auch im mobilen Bereich tut sich viel. Aber wie entwickelt man eigentlich Virtual-Reality-Applikationen und welche Tools helfen dabei? Ein Einstieg in die Entwicklung der virtuellen Realität.

8 Min.
Artikel merken
Anzeige
Anzeige

Ob Videospiele, Geschäftsanwendungen, 360-Grad-Filme oder Panorama-Ansichten – Virtual Reality (VR) soll einmal unser heutiges Verständnis des Sehens und Erlebens verändern. Das ist zumindest die Vision von Konzernen wie Facebook, HTC und Valve, die mit ihren virtuellen Brillen Oculus Rift und Vive nun die ersten High-End-Lösungen auf den Markt gebracht haben. Tauglich für den Massenmarkt machen Virtual Reality aber vor allem Firmen wie Google oder Samsung, die die einfache Nutzung der neuen Technik mit mobilen Geräten versprechen.

Anzeige
Anzeige

Mit der neuen Technologie stellen sich auch neue Herausforderungen für die entsprechende Applikationsentwicklung: Grob unterscheidet man dabei zwischen Game Engines wie Unity, Unreal oder Crytek und den Integrated-Development-Environments (IDE) entsprechender Plattformen. Die meisten Entwickler und Unternehmen, die eine Virtual-Reality-App bauen, setzen in der Regel auf Game Engines.

Dabei handelt es sich um eine Art von Content-Management-Systemen, deren Inhalte auf Basis von 2D-Grafiken oder 3D-Modellen erstellt werden. Die Systeme fügen diese schnellstmöglich zu einer Szene oder einem Level zusammen. Das sind klassischerweise Videospiele – oder eben auch VR-Applikationen jeglicher Couleur.

Anzeige
Anzeige

Die Unity-Philosophie: „Build once, run anywhere“

Zu einem der am häufigsten verwendeten Entwickler-Tools für VR zählt Unity. Dort ist die Personal Edition kostenlos und beinhaltet bereits alles, mit dem sich Anwendungen für alle gängigen Betriebssysteme bauen lassen – sowohl für mobile Versionen wie Gear VR und Google Cardboard als auch für die Highend-Lösungen Oculus Rift, HTC Vive und Playstation VR. Der Slogan „Build once, run anywhere“ trifft es hier ziemlich gut.

Anzeige
Anzeige

Wer eine Anwendung bauen will, muss Unity zunächst herunterladen und installieren. Schon zu diesem Zeitpunkt ist es wichtig, zu wissen, für welche Zielplattform das Produkt entwickelt werden soll – der Nutzer muss diese bereits bei der Installation auswählen.

Hinzu kommt die Wahl zwischen weiteren Software-Developer-Kits (SDK): Für eine Anwendung, die einmal auf Oculus Rift laufen soll, sollte der Nutzer die SDK für Windows-Computer nehmen; für die Entwicklung für Gear VR ist eine Installation der Android-SDK notwendig. Baut ein Entwickler eine Anwendung für die Playstation VR, muss er noch ein dediziertes „Developer Kit“ bestellen, das mit zusätzlichen Kosten verbunden ist.

Anzeige
Anzeige

Um eine Cardboard-App zu entwickeln, muss das Unity-Paket von der
Cardboard-Developer-Website heruntergeladen und in das Unity-Projekt
eingefügt werden. Zusätzlich ist für Cardboard-Android und Gear VR das
Android-SDK und für iOS XCode nötig.

Seit Version 5.1 müssen Entwickler das Oculus-Mobile-SDK für die Gear-VR-Entwicklung nicht mehr integrieren. Dafür gibt es jetzt einen „Virtual Reality Supported“-Haken in dem Menü „Build Settings“. Unter dem Punkt „Player Settings (Inspector)“ und dem Unterpunkt „Other Settings“ kann der Entwickler den Haken einfach anticken, bevor er die VR-Anwendung als APK-Datei für die Zielplattform erstellt.

Zwar lassen sich in Unity Cardboard-Applikationen sowohl für Android- als auch für iOS-Plattformen entwickeln. Das spart Zeit und Geld im Vergleich zum nativen Programmieren, bei dem der Nutzer die Anwendungen separat entwickeln müsste. Trotzdem gilt es, plattformspezifische Unterschiede mitzuberücksichtigen und gegebenenfalls anzupassen. Mehr Informationen dazu finden sich unter anderem in den Cardboard-Dokumentation „Unity für iOS“ [1] und „Unity für Android“ [2].

Anzeige
Anzeige

Programmieren oder Visual Scripting?

Bei einigen Game Engines kann man entweder direkt programmieren oder über ein Visual-Scripting-Plugin die gewünschte Funktion zusammenstellen. Visual Scripting funktioniert wie ein Baukastensystem: Die benötigten Variablen oder Funktionen kann der Nutzer visuell miteinander verlinken. Im Hintergrund wird der Source Code erzeugt, den man als Programmierer normalerweise mühsam per Hand schreiben müsste. Bei Unreal Engine nennt sich die Erweiterung „Blueprint“, bei Unity heißt das Plugin „PlayMaker“ und wird von der Firma Hutong Games angeboten.

Aus Sicht eines Programmierers kann Visual Scripting allerdings eine Blackbox darstellen, da sich nicht einsehen lässt, wie genau der Programmcode aussieht und wie er strukturiert ist. Auch die Performance könnte bei größeren Projektvorhaben zum Problem werden. Für Leute ohne Programmier-Kenntnisse kann Visual Scripting aber eine Alternative bieten.

Mit Unity lassen sich VR-Applikationen für die verschiedenen Plattformen entwickeln. Die Personal Edition ist kostenlos und lädt somit zum Experimentieren und Probieren ein.
Mit Unity lassen sich VR-Applikationen für die verschiedenen Plattformen entwickeln. Die Personal Edition ist kostenlos und lädt somit zum Experimentieren und Probieren ein.

Wer den Weg der Programmierung verfolgt, kann bei Unity zwischen Programmiersprachen wie C#, JavaScript und Boo wählen. Viele Webentwickler starten mit JavaScript, weil sie die Syntax der Programmiersprachen bereits kennen. Die meisten Unity-Entwickler bevorzugen jedoch C#.

Anzeige
Anzeige

Grundzüge der Entwicklung: So funktioniert’s!

Sind Unity und die relevanten Software-Developer-Kits installiert, kann die Entwicklung der VR-App beginnen. Dazu erstellt der Entwickler zunächst ein neues Projekt und fügt die Dateien, die er für seine Applikation braucht – beispielsweise Bilder, Ton oder 3D-Modelle –, in das Projekt ein. Das geht ganz simpel per Drag-and-Drop.

Dann verbindet er die Assets als Objekt in einer Szene. Ein Objekt kann beispielsweise ein Knopf in einem Menü sein. Um einem Objekt eine Funktionalität zuzuweisen, muss der Entwickler ein Skript erstellen und die gewünschte Funktion programmieren. Dadurch kann der Knopf dann zum Beispiel eine Audio-Datei abspielen.

Anschließend lässt sich die Szene – im Fall der Android-Zielplattform – als Binär-Datei kompilieren. Wenn das Android-Smartphone mit dem USB-Kabel und dem Rechner, auf dem Unity läuft, verbunden ist, kann die Binär-Datei mit der „Build and Run“-Funktion direkt gestartet werden.

Anzeige
Anzeige

What you see is what you get? Nicht unbedingt!

Bei der Entwicklung von Virtual-Reality-Applikationen gilt es für Programmierer, einige grundsätzliche Dinge zu beachten. So sollten sie ihre Funktionen nach der Implementierung unbedingt ausgiebig testen. Das mag banal klingen, ist aber essentiell, da gewisse Dinge in der virtuellen Realität anders aussehen als im Editor. So wirkt der mittlere Teil des Sichtbereichs bei einem Head-Mounted-Display (HMD) durch die eingebauten Linsen beispielsweise größer. Zum Rand hin werden zudem weniger Details erkennbar.

Head-Up-Display-Elemente (HUD), wie sie Luftfahrt-Unternehmen oder BMW in ihren neuesten Autos verwenden, sollte ein Nutzer daher relativ zentral um den mittleren Teil des Sichtbereiches anordnen. Das projizierte virtuelle Bild oder die relevanten Informationen müssen für das Auge in optimaler Position „schweben“. Dabei gilt es, die Größe und dadurch die Lesbarkeit der Schriftart in der virtuellen Welt zu testen, um ein buchstäblich klareres Bild davon zu bekommen.

Navigieren – aber wie?

Wer sich mit der virtuellen Realität beschäftigt, muss sich auch anschauen, wie er durch diese Welt navigieren will. Dabei gibt es unterschiedliche Varianten. Einige Google Cardboards haben Magneten oder physische Schalter eingebaut. Der Magnet simuliert eine Berührung des Smartphone-Bildschirms. Der Schalter drückt direkt auf den Bildschirm und suggeriert der Anwendung, dass die Berührung vom Finger des Benutzers stammt.

Anzeige
Anzeige

Nicht alle Modelle von Google Cardboard haben allerdings einen Magnet oder Schalter installiert, da die Brillen von verschiedenen Firmen hergestellt werden. Das sollten Entwickler bei der Programmierung mitberücksichtigen.

Anstarren erwünscht!

Da es für den Entwickler nicht ersichtlich ist, welchen VR-Brillen-Typ der Nutzer verwendet, hat sich ein De-facto-Standard herauskristallisiert. Der Nutzer muss für die Navigation nur seinen Kopf bewegen, indem er zum Beispiel bei einer Multiple-Choice-Auswahl für einige Sekunden auf einen Menüpunkt „starrt“ (vom Englischen „gaze“), mit dem er weitermachen will. Entweder füllt sich der Menüpunkt dabei, oder es erscheint ein Kreis, dessen äußerer Rand sich langsam füllt.

Häufig hilft auch ein Fadenkreuz, das in der Mitte zu sehen ist und der Kopfbewegung des Benutzers folgt. Das bezeichnet man als „activating the trigger input“, die Eingabe wird also durch Stillhalten des Fadenkreuzes aktiviert.

Anzeige
Anzeige

Bei den mobilen Anwendungen der großen Anbieter hat Samsung die Navigation am elegantesten gelöst. Bei der Gear VR kann der Nutzer mit einem rechteckigen Touchpad auf der rechten Seite der Brille navigieren. Der Zurück-Knopf über dem Touchpad hat zudem zwei Funktionsweisen: Mit kurzem Drücken kommt der Nutzer zurück zum Hauptmenü oder kann die Auswahl abbrechen. Mit langem Drücken kann er die Anwendung beenden. Bei der Navigation von Oculus Rift, HTC Vive, Fove und Playstation VR
reicht die Palette in Sachen Eingabemöglichkeiten von Maus und Tastatur
über Gamepads, Eye-Tracking bis hin zur Gestensteuerung bei Oculus Touch
und Vive- beziehungsweise Move-Controllern.

Bei der Gear VR von Samsung bietet das Touchpad an der Seite einfache Möglichkeiten für Navigationseingaben.
Bei der Gear VR von Samsung bietet das Touchpad an der Seite einfache Möglichkeiten für Navigationseingaben.

Tipps für den Prototyp

Bei Oculus Rift kann es sich lohnen, die mobilen Software-Developer-Kits zu installieren, da sie einige Beispiel-Projekte enthalten, die als Grundlage für die Prototypen-Entwicklung genutzt werden können.

Genau dort zeigt Unity seine Stärken: Mit dem Programm lassen sich Prototypen erstellen, um eine Idee oder ein Konzept zu visualisieren und zu testen. Dabei helfen die Plugins und Assets, die zum Teil kostenlos im integrierten Unity-Asset-Store erworben werden können. Wie bei App-Stores können Entwickler dort auch Plugins kaufen, die wiederum Zeit sparen.

Obwohl es für Projekte, die unter 100.000 US-Dollar pro Jahr einbringen, keine Verpflichtung gibt, eine professionelle Lizenz pro Entwickler zu erweben, kann diese im Fall von Prototyping eine Hilfe sein. Das gilt vor allem dann, wenn der Prototyp auf mehreren Zielplattformen und Betriebssystemen getestet werden soll. Auf der Unity Webseite können die Lizenzkosten und -modelle eingesehen und verglichen werden.

Zusätzlich stehen auf der Unity-Seite einige Tutorials in der Learn-Sektion [3] zur Verfügung. Zu den Tutorials zählen Videos, die auch auf Youtube oder Vimeo zu finden sind. Andere verfügen über Beispielcodes oder sogar fertige Produkte. Letztere können in Unity getestet und angepasst werden.

Fragen beantwortet auch die Community in den Unity-Foren. Je nach Inhalt schalten sich bei Problemen auch Unity-Mitarbeiter ein, auch die Support-E-Mail funktioniert. Die meisten Fragen lassen sich über die beispielhafte Online-Dokumentation [4] mit Skript-Beispielen beantworten.

Fazit: Testen, testen, testen!

Obwohl sich VR-Anwendungen mit Tools wie Unity schneller erstellen lassen als noch vor einigen Jahren, ist der Aufwand immer noch groß. Vor allem für das Testen sollten Entwickler viel Zeit einplanen. Ebenso muss bei der Erstellung der Binär-Daten oder des Source-Code-Output – beispielsweise bei iOS – mit Zeit für Anpassung oder erneutes Kompilieren gerechnet werden.

Auch wenn die Entwicklung noch sehr komplex ist, dürfte Unity künftig noch weiter an Bedeutung gewinnen. Für die nächste Version 5.4, die derzeit in der Betaphase steckt, ist zu erwarten, dass die VR-Entwicklung noch weiter optimiert wird. In der ersten Optimierungsrunde widmet sich Unity nun vor allem der besseren Unterstützung der Plattformen Oculus Rift und Playstation VR. Auch ein verbesserter Support für das Cardboard-SDK ist in Planung.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Kommentare

Community-Richtlinien

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Kommentar abgeben

Melde dich an, um Kommentare schreiben und mit anderen Leser:innen und unseren Autor:innen diskutieren zu können.

Anmelden und kommentieren

Du hast noch keinen t3n-Account? Hier registrieren

Anzeige
Anzeige