Virtual Reality-Spiele entwickeln mit Unity® - Grundlagen Beispielprojekte Tipps & Tricks

Daniel Korgel

Virtual Reality-Spiele entwickeln mit Unity®

Virtual Reality-Spiele entwickeln mit Unity® - Grundlagen Beispielprojekte Tipps & Tricks

2017

590 Seiten

Format: PDF, ePUB, Online Lesen

E-Book: €  28,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446456235

 

Inhalt

7

Vorwort

17

1 Einleitung

19

1.1 Virtual Reality

20

1.2 Ziel des Buches

20

1.3 Unterstützte Virtual-Reality-Brillen

21

1.4 Unity

22

1.4.1 Welche Unity-Version benötige ich?

23

1.5 Was brauche ich?

24

1.6 Weiterentwicklung der Technik

25

1.7 Online-Zusatzmaterial

25

2 Einführung in Virtual Reality

27

2.1 Begriffserklärungen

27

2.2 Augmented Reality, Mixed Reality und Virtual Reality

29

2.3 Virtual Reality ist tot – lang lebe Virtual Reality

30

2.4 Unterstützte Virtual-Reality-Brillen

33

2.4.1 Oculus Rift

34

2.4.2 HTC Vive

35

2.4.3 Samsung GearVR

36

2.4.4 Google Cardboard (nur teilweise unterstützt)

37

2.4.5 Google Daydream

38

2.5 Andere VR-Brillen

39

2.5.1 Microsoft Mixed Reality

39

2.5.2 PlayStation VR

40

2.5.3 Razer OSVR

41

2.6 Spiele, Anwendungen, Demos und Erfahrungen

42

2.7 Seated, Standing & Room Scale

43

2.8 „Bekannte“ Probleme

44

2.8.1 Auflösung & Fliegengitter-Effekt

45

2.8.2 Hardwareanforderungen

45

2.8.3 Kurz- und Weitsichtigkeit

46

2.8.4 Simulator Sickness

46

3 Quickstart: 3D-Entwicklung mit Unity

49

3.1 Installation

49

3.1.1 Die Unity ID

51

3.1.2 Android SDK & Java Development Kit(GearVR, GoogleVR)

52

3.2 Der erste Start

56

3.3 Ein neues Projekt anlegen

57

3.4 Die Unity-Oberfläche

58

3.4.1 Drag & Drop

59

3.4.2 Project Browser

60

3.4.3 Console

61

3.4.4 Hierarchy

62

3.4.5 Scene View

64

3.4.6 Inspector

66

3.5 Scenes

72

3.5.1 Unity in der dritten Dimension

72

3.5.2 GameObjects

73

3.5.3 Prefabs

75

3.6 Die wichtigsten Components

76

3.6.1 Camera und Audio Listener

76

3.6.2 Lights

77

3.6.3 Mesh Filter und Mesh Renderer

78

3.6.4 Collider

79

3.6.5 Rigidbody

80

3.6.6 Audio Source

81

3.6.7 Scripts/Behaviours

82

3.7 Assets

82

3.7.1 Dateien importieren

85

3.7.2 Unity Packages

86

3.7.3 Asset Store

89

3.7.4 Import Settings

90

3.8 Projektvorbereitung (GearVR, GoogleVR)

90

3.8.1 Zielplattform zu Android wechseln

91

3.8.2 Externe Tools angeben (Android SDK, JDK)

92

3.9 Test Scene erstellen und starten

94

3.9.1 Rohbau für den Raum erstellen

96

3.9.2 Scene speichern

99

3.9.3 Licht anpassen

100

3.9.4 Collider hinzufügen

101

3.9.5 Möbelstücke einräumen

102

3.9.6 Bücher hinzufügen

105

3.9.7 Weitere Details

109

3.9.8 Lichter und Lichteinstellungen optimieren

110

3.9.9 Spieler positionieren

113

3.10 VR-Unterstützung aktivieren

114

3.10.1 Unitys VR-Unterstützung aktivieren

114

3.11 Player Settings anpassen (GearVR, GoogleVR)

115

3.12 Anti-Aliasing aktivieren

117

3.13 Die Scene in VR testen

118

3.13.1 Am PC in VR testen (Oculus Rift, SteamVR)

119

3.13.2 Auf dem Smartphone in VR testen (GearVR, GoogleVR)

120

3.14 So geht es weiter

129

4 Dos and Don’ts – Game-Design für Virtual Reality

131

4.1 Beispielprojekt

132

4.2 Immersion

132

4.2.1 Immersion brechen

136

4.3 Positional Tracking

136

4.3.1 Mobile VR-Brillen

138

4.4 Locomotion

139

4.4.1 Klassische Locomotion

139

4.4.2 Teleport Locomotion

142

4.4.3 Ohne künstliche Locomotion

143

4.4.4 Andere Eingabemethoden für das Laufen

146

4.5 Lebendige Spielwelt erschaffen

147

4.6 User Interface

151

4.6.1 Distanz und Größe

154

4.7 Aufmerksamkeit lenken

155

4.7.1 Objekte untersuchen

156

4.7.2 Ereignisse nicht verpassen

159

4.8 Uncanny Valley

160

4.8.1 Auswirkung für dich

163

4.9 Sound Design und Spatial Sound

164

4.9.1 Spatial Sound

164

4.9.2 Spatial-Audio-Engines

167

5 C#-Scripte für Unity programmieren

169

5.1 C#, .Net und Mono

170

5.2 Grundlagen

170

5.2.1 C#-Syntax

170

5.2.2 Kommentare

171

5.2.3 Variablen

172

5.2.4 Methoden

179

5.2.5 Klassen

182

5.2.6 Dynamische Datentypen

183

5.2.7 Statische Methoden und statische Variablen

185

5.2.8 Vererbung

186

5.2.9 Namespaces

189

5.2.10 Lebenszyklus von Variablen

190

5.2.11 Sichtbarkeiten

191

5.2.12 Ausnahmen ? „Exceptions“

192

5.3 Erster Test

193

5.3.1 Microsoft Visual Studio 2017

193

5.3.2 Script, Behaviour, Component und ihr Aufbau

197

5.3.3 Debug-Ausgaben in die Console

198

5.3.4 Eigenes Script testen

199

5.3.5 Notation von Methoden und Variablen in diesem Buch

201

5.4 Erweiterte Grundlagen

201

5.4.1 Bedingungen und Verzweigungen

201

5.4.2 Schleifen

204

5.4.3 Eigenschaften

209

5.4.4 Dynamische Listen

210

5.5 Unity-spezifische Grundlagen

214

5.5.1 Zufallswerte

214

5.5.2 Editor-Eigenschaften

215

5.5.3 MonoBehaviour Lebenszyklus-Methoden

218

5.5.4 MonoBehaviour-Event-Methoden

220

5.5.5 Auf GameObjects zugreifen

221

5.5.6 GameObjects via Code erstellen

224

5.5.7 GameObjects zerstören

225

5.5.8 Transforms: GameObjects bewegen

225

5.5.9 Auf andere Components zugreifen

227

5.5.10 Components zu GameObject hinzufügen

230

5.5.11 Components entfernen

231

5.5.12 Parallele Methoden mit Coroutines

231

5.5.13 Scripted-Event-Beispiel

232

5.5.14 Methoden verzögert aufrufen mit Invoke

233

5.6 Problemlösung

234

5.6.1 Wort im Code ist rot unterstrichen

234

5.6.2 Fehler in der Console im Editor

235

5.6.3 Fehler in der Console, während das Spiel läuft

235

5.6.4 „Can't add script“-Meldung oder Script ist nicht im „Add Component“-Menü vorhanden

236

5.6.5 Sonstige Fehler

237

6 Erweiterte Unity-Einführung

239

6.1 Licht, Schatten und Lightmapping

239

6.1.1 Global Illumination

240

6.1.2 Farbräume

250

6.1.3 Environment Light

251

6.1.4 Lichter in der Scene

252

6.1.5 Emissive Materials

258

6.1.6 Light Probes

258

6.1.7 Reflexionen

261

6.1.8 Lighting-Fenster

264

6.1.9 Light Explorer

266

6.2 Shader

267

6.2.1 Der Standard Shader

268

6.2.2 Mobile Shader

273

6.3 Audio

276

6.3.1 AudioSources

277

6.3.2 AudioSources via Script steuern

280

6.3.3 Temporäre AuidoSource via Script

282

6.3.4 Reverb Zones

282

6.3.5 Audio Mixer

283

6.4 Tastatur und Gamepad-Eingaben lesen

287

6.4.1 Der Input-Manager

288

6.4.2 Virtuelle Tasten und Achsen

288

6.4.3 Konfiguration einer Achse

289

6.4.4 Gamepad- und Tastatureingaben erfassen

291

6.5 Physik

293

6.5.1 Collider

293

6.5.2 Rigidbody

296

6.5.3 Kräfte und Beschleunigung

298

6.5.4 Physics Joints ? Verknüpfungen

299

6.5.5 Kollisionen und Trigger erkennen

303

6.5.6 Raycasts

309

6.5.7 Character Controller

310

6.6 Partikeleffekte

313

6.6.1 Partikelsysteme

314

6.6.2 Particle-Effect-Steuerung

315

6.6.3 Module des Particle Systems

316

6.6.4 Particle Effect Editor

323

6.6.5 Particle Systems via Script steuern

323

6.6.6 Standard-Partikeleffekte

324

6.7 Landschaften mit Terrains erstellen

324

6.8 Animation System

327

6.8.1 Animation Workflow

328

6.8.2 Humanoide Animationen und Avatare

330

6.8.3 Modelle & Animationen importieren

331

6.8.4 Animation Controller

335

6.9 Wegfindung

339

6.9.1 Wegfindungssystem einrichten

339

6.9.2 Grundlagen

341

6.9.3 NavMeshs berechnen

343

6.9.4 NavMeshs verbinden

344

6.9.5 Dynamische Hindernisse

344

6.9.6 NavMeshAgent erstellen

345

6.9.7 NavMeshAgent über Script steuern

345

6.9.8 Erweiterte Beispiele

346

6.10 Savegames ? Daten speichern und laden

347

6.11 Performance optimieren

348

6.11.1 Batching

348

6.11.2 Performance im Auge behalten

349

6.11.3 VR-Optimierungs-Checkliste und Grenzen

353

6.12 User Interface ? Quickstart

355

6.12.1 User Interface im World Space erstellen

355

6.12.2 User Interface in VR bedienen

360

7 Die Virtual-Reality-SDKs

363

7.1 Unitys-interne VR-Unterstützung

364

7.1.1 Unitys interne VR-Unterstützung aktivieren

364

7.1.2 Interne VR-Unterstützung in der Scripting-API

366

7.1.3 InputTracking

366

7.1.4 VRDevice

367

7.1.5 VRSettings

368

7.2 Oculus Integration for Unity (Rift und Gear)

370

7.2.1 Download und Import

370

7.2.2 Prefabs

372

7.2.3 Gamepad-, Headset- und Touch-Eingaben lesen

379

7.2.4 Haptisches Feedback

381

7.2.5 Oculus Avatar SDK

383

7.2.6 Mehr Infos und Hilfe

385

7.3 SteamVR (u.?a. HTC Vive)

386

7.3.1 Download und Import

387

7.3.2 Prefabs

389

7.3.3 Eingaben der Controller lesen

396

7.3.4 Haptisches Feedback

397

7.3.5 Interaktionsbeispiel aus The Lab (u.?a. Longbow, Teleport)

398

7.3.6 Mehr Infos und Hilfe

398

7.4 GoogleVR SDK

399

7.4.1 Download und Import

399

7.4.2 Prefabs

400

7.4.3 Eingaben des Daydream Controllers lesen

404

7.4.4 Erweiterte Editorfunktionen fürs Testen

405

8 Beispielprojekte ? Einleitung

409

9 Bow and Arrow Castle Defense – GoogleVR mit Controller

411

9.1 Der Start

412

9.2 Die Kernmechanik ? Bogenschießen

414

9.2.1 Scene vorbereiten

414

9.2.2 Einfaches Scene-Design

414

9.2.3 Spieler konfigurieren und Daydream Controller einbinden

417

9.2.4 Schusskraft für den Bogen

419

9.2.5 Ein Pfeil für den Bogen

421

9.2.6 Pfeile nachladen

424

9.2.7 Dynamische Schusskraft

426

9.2.8 Flugkurve Vorschau – Add-on

428

9.2.9 Schaden und zerstörbare Ziele

431

9.3 Game- & Level-Design

432

9.4 Game Manager

434

9.5 Gegner – Orks!

439

9.5.1 NavMesh erstellen

439

9.5.2 Ork-Animator Controller

439

9.5.3 Die künstliche Intelligenz

441

9.5.4 Der Ork

442

9.5.5 Prefab erstellen und platzieren

444

9.6 Abschluss

444

9.6.1 Umsetzung dieses Beispiels für andere VR-Brillen

445

10 Space Battle ? Oculus Rift & SteamVR

447

10.1 Der Start

448

10.1.1 Scene vorbereiten

449

10.2 Die Kernmechanik ? ein Raumschiff fliegen

452

10.2.1 Spieler-Raumschiff erstellen

453

10.2.2 Raumschiff-Steuerung

456

10.2.3 Starfield/Weltraumstaub

463

10.2.4 Schadenssystem & Plasmakanone

466

10.3 Feinde und Verbündete

474

10.3.1 KI-Raumschiff

474

10.3.2 Die künstliche Intelligenz

476

10.4 Abschluss

485

10.4.1 Umsetzung dieses Beispiels für andere VR-Brillen

486

11 Dungeon Crawler ? GearVR

487

11.1 Der Start

488

11.1.1 Osig und Unity2017.1.0f3-Patch einfügen

490

11.2 Einen Dungeon bauen

490

11.2.1 Die Bauteile

491

11.2.2 Level-Design

491

11.2.3 Audio: Environment-Loop

494

11.3 Occlusion Culling

494

11.4 Kernmechanik ? Laufen, Kämpfen, Interagieren

496

11.4.1 Spieler erstellen

497

11.4.2 Bewegungen entlang des Gitters

499

11.4.3 Interaktive und lebendige Objekte

502

11.4.4 Die Spielerfunktionen

504

11.4.5 Spielereingaben lesen

509

11.4.6 Player fertigstellen

512

11.5 Gegner: Goblins

513

11.5.1 Die künstliche Intelligenz

514

11.5.2 Das GameObject und Prefab

516

11.5.3 Bevölkerung des Dungeons mit Goblins

517

11.6 Pickups: Kristalle

518

11.7 Dungeon-Ausgang

520

11.8 Interaktive Hindernisse

522

11.8.1 Falle: Stacheln

522

11.8.2 Rätsel: Schalter und Tore

524

11.9 Abschluss

527

11.9.1 Umsetzung dieses Beispiels für andere VR-Brillen

528

12 Sci-Fi-Stealth-Shooter ? Oculus Rift mit Oculus Touch und SteamVR

529

12.1 Der Start

530

12.2 Trainings-Areal anlegen

532

12.3 Player-GameObject erstellen

534

12.3.1 Oculus SDK: Player-GameObject erstellen

534

12.3.2 SteamVR SDK: Player-GameObject erstellen

535

12.3.3 Character Controller

536

12.3.4 Locomotion – klassisch und teleportieren

539

12.3.5 Eingaben lesen und Methoden aufrufen

543

12.3.6 Nach Gegenständen greifen

548

12.4 Lebensenergie verwalten

558

12.4.1 Lebensenergie des Spielers und Game Over

559

12.5 Laserpistole

560

12.5.1 Das GameObject vorbereiten

560

12.5.2 Die Laserpistolen-Funktion

561

12.5.3 Der Laserstrahl

563

12.6 Roboter-Gegner

565

12.6.1 EnemyAi – wie funktioniert die KI?

565

12.6.2 Roboter-GameObject anlegen

566

12.6.3 Trigger Collider ignorieren

568

12.7 Level erstellen

569

12.7.1 Level-Ende

570

12.8 Abschluss

571

13 VR-Spiele teilen, präsentieren und Feedback erhalten

573

13.1 Spieleidee entwickeln

573

13.2 VR-Spiele Builds erstellen und teilen

574

13.3 Feedback erhalten und Spiel bewerben

576

13.3.1 Tipps für das Präsentieren von Virtual Reality

577

13.4 Spiel veröffentlichen

578

13.5 Kostenlose Assets

579

14 Schlusswort

581

Index

583

Leere Seite

2

 

© 2009-2018 ciando GmbH