Korgel Virtual Reality-Spiele entwickeln mit Unity®
1. Auflage 2017
ISBN: 978-3-446-45372-2
Verlag: Carl Hanser
Format: PDF
Kopierschutz: 1 - PDF Watermark
Grundlagen, Beispielprojekte, Tipps & Tricks
E-Book, Deutsch, 587 Seiten
ISBN: 978-3-446-45372-2
Verlag: Carl Hanser
Format: PDF
Kopierschutz: 1 - PDF Watermark
Dieser praktische Leitfaden bietet dir einen fundierten Einstieg in die Entwicklung von Virtual Reality-Welten. Von den VR- und Unity-Grundlagen über die fortgeschrittene Unity-Programmierung bis hin zu kompletten Beispielprojekten für unterschiedliche VR-Headsets erhältst du hier das nötige Know-how für deine eigene VR-App. Berücksichtigt werden u. a. Oculus Rift, SteamVR (z. B. HTC Vive), GearVR und GoogleVR (z. B. Daydream). Alle Beispielprojekte stehen online zum Download zur Verfügung.
Folgende Themen erwarten dich:
- Eine Einführung in Virtual Reality, die unterstützten VR-Headsets und die wichtigsten Funktionen der Unity Engine.
- Das Kapitel 'Quickstart' führt in die Grundlagen der 3D-Entwicklung mit Unity ein und ist die Basis für die darauffolgenden Kapitel.
- Do´s and Don´ts bei der Entwicklung von VR-Spielen werden anhand von Praxisbeispielen erklärt, wobei du die meisten der beschriebenen Beispiele einfach nachbauen kannst.
- Du erhältst einen tieferen Einblick in Unity, dessen interne VR-Unterstützung sowie in die verschiedenen VR-Entwicklerwerkzeuge für VR-Headsets wie Oculus Rift, HTC Vive, GearVR und Daydream u. a.
- Schließlich wird für jedes VR-Headset ein Beispielprojekt gezeigt, mit dem du dein neu erworbenes Wissen umsetzen kannst - und du erfährst natürlich auch, wie du dein Spiel mit Anderen teilst und VR-tauglich präsentierst.
- Tipps, wie du Ideen für eigene Projekte findest und Tricks zur Spieleentwicklung runden das Buch ab.
Autoren/Hrsg.
Fachgebiete
Weitere Infos & Material
1;Inhalt;7
2;Vorwort;17
3;1 Einleitung;19
3.1;1.1 Virtual Reality;20
3.2;1.2 Ziel des Buches;20
3.3;1.3 Unterstützte Virtual-Reality-Brillen;21
3.4;1.4 Unity;22
3.4.1;1.4.1 Welche Unity-Version benötige ich?;23
3.5;1.5 Was brauche ich?;24
3.6;1.6 Weiterentwicklung der Technik;25
3.7;1.7 Online-Zusatzmaterial;25
4;2 Einführung in Virtual Reality;27
4.1;2.1 Begriffserklärungen;27
4.2;2.2 Augmented Reality, Mixed Reality und Virtual Reality;29
4.3;2.3 Virtual Reality ist tot – lang lebe Virtual Reality;30
4.4;2.4 Unterstützte Virtual-Reality-Brillen;33
4.4.1;2.4.1 Oculus Rift;34
4.4.2;2.4.2 HTC Vive;35
4.4.3;2.4.3 Samsung GearVR;36
4.4.4;2.4.4 Google Cardboard (nur teilweise unterstützt);37
4.4.5;2.4.5 Google Daydream;38
4.5;2.5 Andere VR-Brillen;39
4.5.1;2.5.1 Microsoft Mixed Reality;39
4.5.2;2.5.2 PlayStation VR;40
4.5.3;2.5.3 Razer OSVR;41
4.6;2.6 Spiele, Anwendungen, Demos und Erfahrungen;42
4.7;2.7 Seated, Standing & Room Scale;43
4.8;2.8 „Bekannte“ Probleme;44
4.8.1;2.8.1 Auflösung & Fliegengitter-Effekt;45
4.8.2;2.8.2 Hardwareanforderungen;45
4.8.3;2.8.3 Kurz- und Weitsichtigkeit;46
4.8.4;2.8.4 Simulator Sickness;46
5;3 Quickstart: 3D-Entwicklung mit Unity;49
5.1;3.1 Installation;49
5.1.1;3.1.1 Die Unity ID;51
5.1.2;3.1.2 Android SDK & Java Development Kit(GearVR, GoogleVR);52
5.2;3.2 Der erste Start;56
5.3;3.3 Ein neues Projekt anlegen;57
5.4;3.4 Die Unity-Oberfläche;58
5.4.1;3.4.1 Drag & Drop;59
5.4.2;3.4.2 Project Browser;60
5.4.3;3.4.3 Console;61
5.4.4;3.4.4 Hierarchy;62
5.4.5;3.4.5 Scene View;64
5.4.6;3.4.6 Inspector;66
5.5;3.5 Scenes;72
5.5.1;3.5.1 Unity in der dritten Dimension;72
5.5.2;3.5.2 GameObjects;73
5.5.3;3.5.3 Prefabs;75
5.6;3.6 Die wichtigsten Components;76
5.6.1;3.6.1 Camera und Audio Listener;76
5.6.2;3.6.2 Lights;77
5.6.3;3.6.3 Mesh Filter und Mesh Renderer;78
5.6.4;3.6.4 Collider;79
5.6.5;3.6.5 Rigidbody;80
5.6.6;3.6.6 Audio Source;81
5.6.7;3.6.7 Scripts/Behaviours;82
5.7;3.7 Assets;82
5.7.1;3.7.1 Dateien importieren;85
5.7.2;3.7.2 Unity Packages;86
5.7.3;3.7.3 Asset Store;89
5.7.4;3.7.4 Import Settings;90
5.8;3.8 Projektvorbereitung (GearVR, GoogleVR);90
5.8.1;3.8.1 Zielplattform zu Android wechseln;91
5.8.2;3.8.2 Externe Tools angeben (Android SDK, JDK);92
5.9;3.9 Test Scene erstellen und starten;94
5.9.1;3.9.1 Rohbau für den Raum erstellen;96
5.9.2;3.9.2 Scene speichern;99
5.9.3;3.9.3 Licht anpassen;100
5.9.4;3.9.4 Collider hinzufügen;101
5.9.5;3.9.5 Möbelstücke einräumen;102
5.9.6;3.9.6 Bücher hinzufügen;105
5.9.7;3.9.7 Weitere Details;109
5.9.8;3.9.8 Lichter und Lichteinstellungen optimieren;110
5.9.9;3.9.9 Spieler positionieren;113
5.10;3.10 VR-Unterstützung aktivieren;114
5.10.1;3.10.1 Unitys VR-Unterstützung aktivieren;114
5.11;3.11 Player Settings anpassen (GearVR, GoogleVR);115
5.12;3.12 Anti-Aliasing aktivieren;117
5.13;3.13 Die Scene in VR testen;118
5.13.1;3.13.1 Am PC in VR testen (Oculus Rift, SteamVR);119
5.13.2;3.13.2 Auf dem Smartphone in VR testen (GearVR, GoogleVR);120
5.14;3.14 So geht es weiter;129
6;4 Dos and Don’ts – Game-Design für Virtual Reality;131
6.1;4.1 Beispielprojekt;132
6.2;4.2 Immersion;132
6.2.1;4.2.1 Immersion brechen;136
6.3;4.3 Positional Tracking;136
6.3.1;4.3.1 Mobile VR-Brillen;138
6.4;4.4 Locomotion;139
6.4.1;4.4.1 Klassische Locomotion;139
6.4.2;4.4.2 Teleport Locomotion;142
6.4.3;4.4.3 Ohne künstliche Locomotion;143
6.4.4;4.4.4 Andere Eingabemethoden für das Laufen;146
6.5;4.5 Lebendige Spielwelt erschaffen;147
6.6;4.6 User Interface;151
6.6.1;4.6.1 Distanz und Größe;154
6.7;4.7 Aufmerksamkeit lenken;155
6.7.1;4.7.1 Objekte untersuchen;156
6.7.2;4.7.2 Ereignisse nicht verpassen;159
6.8;4.8 Uncanny Valley;160
6.8.1;4.8.1 Auswirkung für dich;163
6.9;4.9 Sound Design und Spatial Sound;164
6.9.1;4.9.1 Spatial Sound;164
6.9.2;4.9.2 Spatial-Audio-Engines;167
7;5 C#-Scripte für Unity programmieren;169
7.1;5.1 C#, .Net und Mono;170
7.2;5.2 Grundlagen;170
7.2.1;5.2.1 C#-Syntax;170
7.2.2;5.2.2 Kommentare;171
7.2.3;5.2.3 Variablen;172
7.2.4;5.2.4 Methoden;179
7.2.5;5.2.5 Klassen;182
7.2.6;5.2.6 Dynamische Datentypen;183
7.2.7;5.2.7 Statische Methoden und statische Variablen;185
7.2.8;5.2.8 Vererbung;186
7.2.9;5.2.9 Namespaces;189
7.2.10;5.2.10 Lebenszyklus von Variablen;190
7.2.11;5.2.11 Sichtbarkeiten;191
7.2.12;5.2.12 Ausnahmen ? „Exceptions“;192
7.3;5.3 Erster Test;193
7.3.1;5.3.1 Microsoft Visual Studio 2017;193
7.3.2;5.3.2 Script, Behaviour, Component und ihr Aufbau;197
7.3.3;5.3.3 Debug-Ausgaben in die Console;198
7.3.4;5.3.4 Eigenes Script testen;199
7.3.5;5.3.5 Notation von Methoden und Variablen in diesem Buch;201
7.4;5.4 Erweiterte Grundlagen;201
7.4.1;5.4.1 Bedingungen und Verzweigungen;201
7.4.2;5.4.2 Schleifen;204
7.4.3;5.4.3 Eigenschaften;209
7.4.4;5.4.4 Dynamische Listen;210
7.5;5.5 Unity-spezifische Grundlagen;214
7.5.1;5.5.1 Zufallswerte;214
7.5.2;5.5.2 Editor-Eigenschaften;215
7.5.3;5.5.3 MonoBehaviour Lebenszyklus-Methoden;218
7.5.4;5.5.4 MonoBehaviour-Event-Methoden;220
7.5.5;5.5.5 Auf GameObjects zugreifen;221
7.5.6;5.5.6 GameObjects via Code erstellen;224
7.5.7;5.5.7 GameObjects zerstören;225
7.5.8;5.5.8 Transforms: GameObjects bewegen;225
7.5.9;5.5.9 Auf andere Components zugreifen;227
7.5.10;5.5.10 Components zu GameObject hinzufügen;230
7.5.11;5.5.11 Components entfernen;231
7.5.12;5.5.12 Parallele Methoden mit Coroutines;231
7.5.13;5.5.13 Scripted-Event-Beispiel;232
7.5.14;5.5.14 Methoden verzögert aufrufen mit Invoke;233
7.6;5.6 Problemlösung;234
7.6.1;5.6.1 Wort im Code ist rot unterstrichen;234
7.6.2;5.6.2 Fehler in der Console im Editor;235
7.6.3;5.6.3 Fehler in der Console, während das Spiel läuft;235
7.6.4;5.6.4 „Can't add script“-Meldung oder Script ist nicht im „Add Component“-Menü vorhanden;236
7.6.5;5.6.5 Sonstige Fehler;237
8;6 Erweiterte Unity-Einführung;239
8.1;6.1 Licht, Schatten und Lightmapping;239
8.1.1;6.1.1 Global Illumination;240
8.1.2;6.1.2 Farbräume;250
8.1.3;6.1.3 Environment Light;251
8.1.4;6.1.4 Lichter in der Scene;252
8.1.5;6.1.5 Emissive Materials;258
8.1.6;6.1.6 Light Probes;258
8.1.7;6.1.7 Reflexionen;261
8.1.8;6.1.8 Lighting-Fenster;264
8.1.9;6.1.9 Light Explorer;266
8.2;6.2 Shader;267
8.2.1;6.2.1 Der Standard Shader;268
8.2.2;6.2.2 Mobile Shader;273
8.3;6.3 Audio;276
8.3.1;6.3.1 AudioSources;277
8.3.2;6.3.2 AudioSources via Script steuern;280
8.3.3;6.3.3 Temporäre AuidoSource via Script;282
8.3.4;6.3.4 Reverb Zones;282
8.3.5;6.3.5 Audio Mixer;283
8.4;6.4 Tastatur und Gamepad-Eingaben lesen;287
8.4.1;6.4.1 Der Input-Manager;288
8.4.2;6.4.2 Virtuelle Tasten und Achsen;288
8.4.3;6.4.3 Konfiguration einer Achse;289
8.4.4;6.4.4 Gamepad- und Tastatureingaben erfassen;291
8.5;6.5 Physik;293
8.5.1;6.5.1 Collider;293
8.5.2;6.5.2 Rigidbody;296
8.5.3;6.5.3 Kräfte und Beschleunigung;298
8.5.4;6.5.4 Physics Joints ? Verknüpfungen;299
8.5.5;6.5.5 Kollisionen und Trigger erkennen;303
8.5.6;6.5.6 Raycasts;309
8.5.7;6.5.7 Character Controller;310
8.6;6.6 Partikeleffekte;313
8.6.1;6.6.1 Partikelsysteme;314
8.6.2;6.6.2 Particle-Effect-Steuerung;315
8.6.3;6.6.3 Module des Particle Systems;316
8.6.4;6.6.4 Particle Effect Editor;323
8.6.5;6.6.5 Particle Systems via Script steuern;323
8.6.6;6.6.6 Standard-Partikeleffekte;324
8.7;6.7 Landschaften mit Terrains erstellen;324
8.8;6.8 Animation System;327
8.8.1;6.8.1 Animation Workflow;328
8.8.2;6.8.2 Humanoide Animationen und Avatare;330
8.8.3;6.8.3 Modelle & Animationen importieren;331
8.8.4;6.8.4 Animation Controller;335
8.9;6.9 Wegfindung;339
8.9.1;6.9.1 Wegfindungssystem einrichten;339
8.9.2;6.9.2 Grundlagen;341
8.9.3;6.9.3 NavMeshs berechnen;343
8.9.4;6.9.4 NavMeshs verbinden;344
8.9.5;6.9.5 Dynamische Hindernisse;344
8.9.6;6.9.6 NavMeshAgent erstellen;345
8.9.7;6.9.7 NavMeshAgent über Script steuern;345
8.9.8;6.9.8 Erweiterte Beispiele;346
8.10;6.10 Savegames ? Daten speichern und laden;347
8.11;6.11 Performance optimieren;348
8.11.1;6.11.1 Batching;348
8.11.2;6.11.2 Performance im Auge behalten;349
8.11.3;6.11.3 VR-Optimierungs-Checkliste und Grenzen;353
8.12;6.12 User Interface ? Quickstart;355
8.12.1;6.12.1 User Interface im World Space erstellen;355
8.12.2;6.12.2 User Interface in VR bedienen;360
9;7 Die Virtual-Reality-SDKs;363
9.1;7.1 Unitys-interne VR-Unterstützung;364
9.1.1;7.1.1 Unitys interne VR-Unterstützung aktivieren;364
9.1.2;7.1.2 Interne VR-Unterstützung in der Scripting-API;366
9.1.3;7.1.3 InputTracking;366
9.1.4;7.1.4 VRDevice;367
9.1.5;7.1.5 VRSettings;368
9.2;7.2 Oculus Integration for Unity (Rift und Gear);370
9.2.1;7.2.1 Download und Import;370
9.2.2;7.2.2 Prefabs;372
9.2.3;7.2.3 Gamepad-, Headset- und Touch-Eingaben lesen;379
9.2.4;7.2.4 Haptisches Feedback;381
9.2.5;7.2.5 Oculus Avatar SDK;383
9.2.6;7.2.6 Mehr Infos und Hilfe;385
9.3;7.3 SteamVR (u.?a. HTC Vive);386
9.3.1;7.3.1 Download und Import;387
9.3.2;7.3.2 Prefabs;389
9.3.3;7.3.3 Eingaben der Controller lesen;396
9.3.4;7.3.4 Haptisches Feedback;397
9.3.5;7.3.5 Interaktionsbeispiel aus The Lab (u.?a. Longbow, Teleport);398
9.3.6;7.3.6 Mehr Infos und Hilfe;398
9.4;7.4 GoogleVR SDK;399
9.4.1;7.4.1 Download und Import;399
9.4.2;7.4.2 Prefabs;400
9.4.3;7.4.3 Eingaben des Daydream Controllers lesen;404
9.4.4;7.4.4 Erweiterte Editorfunktionen fürs Testen;405
10;8 Beispielprojekte ? Einleitung;409
11;9 Bow and Arrow Castle Defense – GoogleVR mit Controller;411
11.1;9.1 Der Start;412
11.2;9.2 Die Kernmechanik ? Bogenschießen;414
11.2.1;9.2.1 Scene vorbereiten;414
11.2.2;9.2.2 Einfaches Scene-Design;414
11.2.3;9.2.3 Spieler konfigurieren und Daydream Controller einbinden;417
11.2.4;9.2.4 Schusskraft für den Bogen;419
11.2.5;9.2.5 Ein Pfeil für den Bogen;421
11.2.6;9.2.6 Pfeile nachladen;424
11.2.7;9.2.7 Dynamische Schusskraft;426
11.2.8;9.2.8 Flugkurve Vorschau – Add-on;428
11.2.9;9.2.9 Schaden und zerstörbare Ziele;431
11.3;9.3 Game- & Level-Design;432
11.4;9.4 Game Manager;434
11.5;9.5 Gegner – Orks!;439
11.5.1;9.5.1 NavMesh erstellen;439
11.5.2;9.5.2 Ork-Animator Controller;439
11.5.3;9.5.3 Die künstliche Intelligenz;441
11.5.4;9.5.4 Der Ork;442
11.5.5;9.5.5 Prefab erstellen und platzieren;444
11.6;9.6 Abschluss;444
11.6.1;9.6.1 Umsetzung dieses Beispiels für andere VR-Brillen;445
12;10 Space Battle ? Oculus Rift & SteamVR;447
12.1;10.1 Der Start;448
12.1.1;10.1.1 Scene vorbereiten;449
12.2;10.2 Die Kernmechanik ? ein Raumschiff fliegen;452
12.2.1;10.2.1 Spieler-Raumschiff erstellen;453
12.2.2;10.2.2 Raumschiff-Steuerung;456
12.2.3;10.2.3 Starfield/Weltraumstaub;463
12.2.4;10.2.4 Schadenssystem & Plasmakanone;466
12.3;10.3 Feinde und Verbündete;474
12.3.1;10.3.1 KI-Raumschiff;474
12.3.2;10.3.2 Die künstliche Intelligenz;476
12.4;10.4 Abschluss;485
12.4.1;10.4.1 Umsetzung dieses Beispiels für andere VR-Brillen;486
13;11 Dungeon Crawler ? GearVR;487
13.1;11.1 Der Start;488
13.1.1;11.1.1 Osig und Unity2017.1.0f3-Patch einfügen;490
13.2;11.2 Einen Dungeon bauen;490
13.2.1;11.2.1 Die Bauteile;491
13.2.2;11.2.2 Level-Design;491
13.2.3;11.2.3 Audio: Environment-Loop;494
13.3;11.3 Occlusion Culling;494
13.4;11.4 Kernmechanik ? Laufen, Kämpfen, Interagieren;496
13.4.1;11.4.1 Spieler erstellen;497
13.4.2;11.4.2 Bewegungen entlang des Gitters;499
13.4.3;11.4.3 Interaktive und lebendige Objekte;502
13.4.4;11.4.4 Die Spielerfunktionen;504
13.4.5;11.4.5 Spielereingaben lesen;509
13.4.6;11.4.6 Player fertigstellen;512
13.5;11.5 Gegner: Goblins;513
13.5.1;11.5.1 Die künstliche Intelligenz;514
13.5.2;11.5.2 Das GameObject und Prefab;516
13.5.3;11.5.3 Bevölkerung des Dungeons mit Goblins;517
13.6;11.6 Pickups: Kristalle;518
13.7;11.7 Dungeon-Ausgang;520
13.8;11.8 Interaktive Hindernisse;522
13.8.1;11.8.1 Falle: Stacheln;522
13.8.2;11.8.2 Rätsel: Schalter und Tore;524
13.9;11.9 Abschluss;527
13.9.1;11.9.1 Umsetzung dieses Beispiels für andere VR-Brillen;528
14;12 Sci-Fi-Stealth-Shooter ? Oculus Rift mit Oculus Touch und SteamVR;529
14.1;12.1 Der Start;530
14.2;12.2 Trainings-Areal anlegen;532
14.3;12.3 Player-GameObject erstellen;534
14.3.1;12.3.1 Oculus SDK: Player-GameObject erstellen;534
14.3.2;12.3.2 SteamVR SDK: Player-GameObject erstellen;535
14.3.3;12.3.3 Character Controller;536
14.3.4;12.3.4 Locomotion – klassisch und teleportieren;539
14.3.5;12.3.5 Eingaben lesen und Methoden aufrufen;543
14.3.6;12.3.6 Nach Gegenständen greifen;548
14.4;12.4 Lebensenergie verwalten;558
14.4.1;12.4.1 Lebensenergie des Spielers und Game Over;559
14.5;12.5 Laserpistole;560
14.5.1;12.5.1 Das GameObject vorbereiten;560
14.5.2;12.5.2 Die Laserpistolen-Funktion;561
14.5.3;12.5.3 Der Laserstrahl;563
14.6;12.6 Roboter-Gegner;565
14.6.1;12.6.1 EnemyAi – wie funktioniert die KI?;565
14.6.2;12.6.2 Roboter-GameObject anlegen;566
14.6.3;12.6.3 Trigger Collider ignorieren;568
14.7;12.7 Level erstellen;569
14.7.1;12.7.1 Level-Ende;570
14.8;12.8 Abschluss;571
15;13 VR-Spiele teilen, präsentieren und Feedback erhalten;573
15.1;13.1 Spieleidee entwickeln;573
15.2;13.2 VR-Spiele Builds erstellen und teilen;574
15.3;13.3 Feedback erhalten und Spiel bewerben;576
15.3.1;13.3.1 Tipps für das Präsentieren von Virtual Reality;577
15.4;13.4 Spiel veröffentlichen;578
15.5;13.5 Kostenlose Assets;579
16;14 Schlusswort;581
17;Index;583
18;Leere Seite;2
1 | Einleitung |
Mit einer selbst gebauten und von Klebeband zusammengehaltenen Virtual-Reality-Brille überzeugte der 19-jährige Palmer Luckey 2011 einige wichtige Personen aus der Videospiel-Branche und erweckte so Virtual Reality aus dem Winterschlaf. Zu den überzeugten Personen gehörte unter anderem auch -Erfinder , was Luckey viel Vertrauen von Kollegen und Fans eingebracht hat. 2012 erhielt Luckey über die Crowdfunding-Plattform fast 2,5 Millionen US Dollar, um seine Virtual-Reality-Brille Oculus Rift zu finanzieren.
Heute, mehr als fünf Jahre später, wurde Palmer Luckeys Firma von Facebook gekauft. Neben Oculus bieten einige weitere bekannte Technikfirmen, darunter , , , und , ihre eigenen Virtual-Reality-Brillen für Computer, Spielekonsolen und Smartphones an. Erstmals ist es jedem möglich, gute Virtual-Reality-Hardware, zu einem bezahlbaren Preis, zu kaufen. Virtual Reality wird das nächste große Ding in der Unterhaltungsindustrie.
Für viele Gamer und Technikfans wird mit bezahlbarer Virtual-Reality-Hardware ein Traum wahr. Aber einigen reicht das reine Erleben von Virtual Reality nicht: Die völlig neuen Möglichkeiten wecken den Wunsch, eigene virtuelle Welten zu erschaffen ? und das genau zur richtigen Zeit: Virtual Reality ist ein so junges Thema, dass die App Stores noch nicht überfüllt sind mit Kopien von bekannten Spielen. Wenn du jetzt ein innovatives VR-Spiel veröffentlichst, ist die Chance, dass du dich von der Masse der Spiele-Apps abhebst, deutlich höher als zum Beispiel mit einem 2D-Spiel für Smartphones oder den PC.
Durch moderne 3D-Engines wie Unity und Unreal ist dies heutzutage sogar ein relativ leicht realisierbarer Traum. Vor einigen Jahren hättest du noch bei null anfangen und zunächst eine eigene Grafikengine schreiben müssen. Dank dieser Engines, welche auch von großen Studios genutzt werden, kannst du dich heute vollkommen auf das eigentliche Spiel konzentrieren.
Möchte man allerdings ein gutes Virtual-Reality-Spiel veröffentlichen, muss man auch einiges beachten: Nicht jedes existierende 2D-Videospiel kann 1:1 in Virtual Reality realisiert werden. Viele jahrelang genutzte Techniken müssen neu überdacht werden, damit sie in Virtual Reality die gewünschte Wirkung erzielen. Dazu gehören zum Beispiel das Storytelling und die Art und Weise, wie man mit der virtuellen Welt interagiert. Auch etablierte Spielmechaniken, die du in jedem PC- und Konsolenspiel findest, müssen neu überdacht werden: Klebt die Waffe zum Beispiel, wie in Egoshootern üblich, an deinem Kopf, fühlt sich das in Virtual Reality komisch an.
Bei diesem immer noch jungen Thema gilt es also, ausgetretene Pfade zu verlassen und neue Wege zu ergründen.
1.1 | Virtual Reality |
Vergleichst du die neusten technologischen Entwicklungen mit dem, was schon vor Jahrzehnten in Science-Fiction beschrieben wurde, stellst du einige auffällige Parallelen fest: Seien es automatische Schiebetüren oder Mobiltelefone, sie existierten zuerst in Science-Fiction-Büchern und -Serien, teilweise lange bevor die Technik überhaupt denkbar war. Es war also nur eine Frage der Zeit, bis auch massenmarkttaugliche Virtual-Reality-Hardware den Sprung aus Büchern wie oder in die Realität schafft.
Doch wie sieht Virtual Reality derzeit aus? Nun, wir sind noch nicht so weit wie in dem Film , wo ein Anschluss im Nacken des Helden die Schnittstelle zu einer virtuellen Welt darstellt. In erster Linie werden heutzutage verwendet, welche wie eine große Brille aufgesetzt werden. Virtual-Reality-Headsets werden deshalb häufig auch „Brillen“ genannt. In der werden für dein linkes und dein rechtes Auge zwei getrennte Bilder angezeigt und wie bei einem 3D-Film entsteht hierdurch ein 3D-Effekt. Durch spezielle Linsen ist das Blickfeld so groß, dass es so wirkt, als würde dich die virtuelle Welt vollkommen umgeben. Dieser Eindruck entsteht zusätzlich auch dadurch, dass du dich in der virtuellen Welt umschauen kannst, indem du dich tatsächlich mit dem Kopf umsiehst. Anders als bei traditionellen Videospielen werden kein Gamepad und keine Maus hierfür benötigt.
Dieses Gefühl, wirklich in der Welt zu sein, unterscheidet Virtual Reality von einem gewöhnlichen Monitor. Es ist der Grund, warum diese Plattform, trotz der anfangs noch nicht optimalen Hardware, schon früh sehr viele Anhänger hatte. Auf keiner anderen Plattform lassen sich Ängste, Emotionen und Abenteuerlust so auf den Spieler übertragen wie in Virtual Reality.
1.2 | Ziel des Buches |
Mithilfe dieses Buches wirst du deine ersten Virtual-Reality-Spiele mit der Unity-Engine entwickeln und dabei lernen, wie du zukünftig eigene Ideen völlig ohne fremde Hilfe umsetzen kannst. In diesem Buch wird dir nicht nur die Handhabung von Unity und diversen VR-Entwicklerwerkzeugen erklärt, sondern auch, was du bei der Entwicklung für ein Virtual-Reality-Headset beachten musst. Zum Beispiel erhältst du auch die Antworten auf Fragen wie „Welche Effekte sind besonders beeindruckend?“, „Wie designe ich ein Virtual-Reality-taugliches Menü?" und „Was sollte ich unbedingt vermeiden?“.
Bei Virtual Reality und auch in der Softwareentwicklung allgemein ist es meiner Ansicht nach sehr wichtig, dass du nicht nur über die Dinge liest, sondern sie auch selber ausprobierst. Deswegen wirst du in den späteren Kapiteln sowohl positive als auch negative Beispiele selber auf deiner eigenen Brille ausprobieren können. Häufig versteht man erst durch Ausprobieren der Beispiele, warum sie in Virtual Reality gut funktionieren, oder warum nicht.
Der Fokus dieses Buches liegt darauf, dir zu zeigen, wie du ohne große Umwege eine gute Virtual-Reality-Erfahrung entwickeln kannst. Du wirst in diesem Buch Beschreibungen zu allen Funktionen finden, die du benötigst, um ein gutes Virtual Reality-Spiel zu entwickeln. Lange Erklärungen zu jedem einzelnen Menüpunkt in Unity wirst du in diesem Buch jedoch nicht finden.
Nach einer kurzen Einführung in Virtual Reality und das wichtigste Vokabular, beginnen wir auch schon mit dem Quickstart-Kapitel, welches dir den schnellsten Weg von einem neuen Unity-Projekt zu einer selbst erstellten Virtual-Reality-Erfahrung zeigt. Danach sehen wir uns auch schon die positiven und negativen Beispiele für die VR-Entwicklung an. In den darauffolgenden Kapiteln werde ich dir sowohl einen tieferen Einblick in Unity und der Programmiersprache C# geben als auch die Entwicklerwerkzeuge () für die VR-Brillen vorstellen. An dieser Stelle hast du dann ausreichend Wissen und Erfahrung gesammelt, um die Beispielprojekte anzugehen und deine ersten eigenen Virtual-Reality-Spiele zu entwickeln.
1.3 | Unterstützte Virtual-Reality-Brillen |
In diesem Buch beschreibe ich dir nicht, wie man nur für eine einzige Virtual-Reality-Brille entwickelt, sondern wie man für alle von Unity unterstützten VR-Brillen entwickelt. Dabei werde ich dir natürlich nicht nur die Funktionen beschreiben, die alle Brillen gemeinsam haben, sondern auch auf die individuellen Details jeder Brille eingehen. Dies hat den Vorteil, dass du dir nicht eine bestimmte Brille kaufen musst, um diesem Buch folgen zu können, sondern dass du einfach die Brille verwenden kannst, die du am besten findest.
Unterstützte Virtual-Reality-Brillen:
-
Oculus Rift
-
Oculus Rift mit Oculus Touch
-
Steam VR (z.B. HTC Vive)
-
Samsung GearVR
-
Google VR: Daydream (Hinweis: Cardboard wird teilweise unterstützt) 1
Da diese Brillen alle von Unity offiziell unterstützt werden, können sie ohne spezielle Anpassungen direkt in Unity verwendet werden. Wenn möglich, beschreibe ich daher alle Inhalte dieses Buches so, dass du sie mit jedem der Headsets nachvollziehen kannst. Das gilt vor allem für die Grundlagen und die Einführung in die VR-Entwicklung.
Im Laufe des Buches zeige ich dir jedoch auch, wie du die speziellen Eigenschaften jeder der VR-Brillen verwenden kannst. Da manche der Brillen individuelle Besonderheiten haben (Hand Controller, Touch Pads etc.), sind manche Abschnitte deswegen nur für einzelne der unterstützten Geräte relevant. Es wird jedoch keine bestimmte Virtual-Reality-Brille in diesem Buch bevorzugt, sodass du mit jeder Brille auf deine Kosten kommst.
Ich werde mich in diesem Buch zudem nicht nur auf die Unity-interne Unterstützung für die VR-Brillen beschränken, da diese nur eine Schnittmenge der Funktionen aller Brillen abdeckt. Ich werde dir deshalb auch die einzelnen Entwicklungswerkzeuge () für die VR-Brillen vorstellen. Spätestens hier lernst du dann die Fähigkeiten von jeder unterstützten VR-Brille...