Spiele entwickeln mit Unreal Engine 4 (eBook)
512 Seiten
Carl Hanser Verlag GmbH & Co. KG
978-3-446-45625-9 (ISBN)
Ihr Einstieg in die Welt der Spieleentwicklung mit Unreal Engine 4
Umfassend lernen Sie das Arbeiten mit der Engine, die visuelle Programmierung mit Blueprints und viele weitere Aspekte der Spieleentwicklung. Sie werden sehen, dass Sie alles, was Sie sich vorstellen, auch umsetzen können. Diese zweite Auflage wurde um neue Features und Beispiele zu den Themen Landscape, Multiplayer, Static Mesh und Widget erweitert. Darüber hinaus enthält sie ein umfangreiches Kapitel zur Entwicklung von Virtual Reality-Apps von Benedikt Engelhard.
Schritt für Schritt werden Sie in die Welt der Spiele-Entwicklung eingeführt. Folgende Themen erwarten Sie:
Teil I: Einstieg in die Unreal-Oberfläche und die Blueprint-Programmierung inklusive Programmiergrundlagen (bool, Integer, float, if, array, Actors ...).
Teil II: Alle wichtigen Unreal- und Blueprint-Techniken wie z.B. Objekte im 3D- Raum, Steuerung (Tastatur/Maus/Touch), Physik, Audio, Licht und Schatten, Partikel, Landschaften, Whiteboxing, Unreal-Interne Datenbanken, Animationen usw.
Teil III: Komplexere Techniken wie z.B. Netzwerk, Debugging, Optimierung (für Performance), KI und das Packaging für Desktop, Konsole, Web und Mobile
Teil IV: Entwicklung eines kompletten Spiels, in dem die beschriebenen Techniken zum Einsatz kommen sowie eines kompletten VR-Games.
Viele kleinere Beispiele und Aufgaben zwischendurch helfen Ihnen, das Gelernte umzusetzten und zu evaluieren. Auf der Website zum Buch finden Sie die Spiele, sämtliche Projektdateien der Spiele sowie Videotutorials.
Jonas Richartz ist Game Designer und hat eine Ausbildung als Game Designer und Game Programmer an der Games Academy in Frankfurt absolviert. Auf seinem YouTube-Kanal veröffentlicht er regelmäßig Tutorials zu Unreal 4.
Benedikt Engelhard ist VR-Entrepreneur und teilt sein Know-How in einem umfangreichen Kapitel über Virtual Reality mit der Unreal Engine 4.
Jonas Richartz ist Game Designer und hat eine Ausbildung als Game Designer und Game Programmer an der Games Academy in Frankfurt absolviert. Auf seinem YouTube-Kanal veröffentlicht er regelmäßig Tutorials zu Unreal 4.Benedikt Engelhard ist VR-Entrepreneur und teilt sein Know-How in einem umfangreichen Kapitel über Virtual Reality mit der Unreal Engine 4.
Inhalt 6
Vorwort 12
1 Einleitung 14
1.1 Was brauche ich? 14
1.2 Was lerne ich? 15
1.3 Lizenzen 16
1.4 Weiterentwicklung der Engine 17
2 Erste Schritte 18
2.1 Wie fange ich an? 18
2.2 Motivation 19
2.3 Planung 19
2.4 Sicherheitskopien 20
2.5 Learning by Doing 21
3 Grundlagen 22
3.1 Installation 22
3.2 Epic Games Launcher 24
3.3 Erstellung eines Projekts 25
3.4 Oberfläche 27
3.4.1 Game/Editor View 28
3.4.2 Content Browser 32
3.4.3 World Outliner 34
3.4.4 Details 35
3.4.5 World Settings 36
3.4.6 Modes 37
3.4.7 Play 41
3.5 Ausprobieren 42
4 Blueprints 44
4.1 Was sind Blueprints? 44
4.2 Das Actor-Blueprint 46
4.2.1 Der Hauptbereich 47
4.2.2 Components 54
4.2.3 Details 57
4.2.4 Debug-Bereich 58
4.3 Anwendungsbeispiele 60
4.3.1 Toggle 60
4.3.2 Sequenzer 61
4.3.3 Timeline 63
4.3.4 SpawnActor 64
4.3.5 Reroute-Node 65
4.3.6 IsValid? 66
4.3.7 Promote to variable 66
5 Bausteine der Welt 68
5.1 Variablen 68
5.1.1 Boolean 69
5.1.2 Byte 71
5.1.3 Integer 71
5.1.4 Float 72
5.1.5 Name, String und Text 73
5.1.6 Vector 74
5.1.7 Rotator 74
5.1.8 Transform 75
5.2 Benutzen von Variablen 75
5.2.1 Variablen in Events 78
5.3 Arrays 81
5.4 Übung zu Arrays 83
6 Die Welt in 3D 86
6.1 World- und Relative-Transforms 86
6.2 Transforms in Blueprints 90
6.3 Meshes 94
6.3.1 Toolbar und Viewport 97
6.3.2 Details 107
6.4 Collisions 110
6.4.1 Kollisionstypen 114
6.5 Materials 116
6.5.1 Graph 117
6.5.2 Details 132
6.5.3 Palette 135
7 Licht und Schatten 136
7.1 Lichtarten 136
7.1.1 Directional Light 137
7.1.2 Point Light 143
7.1.3 Spot Light 146
7.1.4 Sky Light 147
7.2 Lightmaps 149
7.2.1 Lightmass Importance Volume 152
7.2.2 Light Propagation Volumes 152
7.3 Global Illumination 154
8 Physik 156
8.1 Simulate Physics 156
8.1.1 Collisions 159
8.1.2 Physik in Blueprints 162
9 Ein Level entsteht 182
9.1 BSP 183
9.1.1 Brush Settings 184
9.1.2 Surface Material 186
9.1.3 Geometry Editing 189
10 Landschaften 192
10.1 Landscape-Tool 192
10.1.1 Manage 193
10.1.2 Sculpt 204
10.2 Landscape-Material 207
10.2.1 Layer Blend 208
10.2.2 Material Instance 210
10.2.3 Paint-Tool 211
10.2.4 Layer Weight 213
10.3 Foliage-Tool 215
10.4 Grass Output 218
11 Audio 222
11.1 Sound-Arten 222
11.1.1 Sound Cue 224
11.1.2 Sound Attenuation 228
11.1.3 Sound Class 230
11.1.4 Sound Mix 231
11.1.5 Dialogue Voice/Wave 232
11.1.6 Reverb Effect 234
11.1.7 Media Sound Wave 235
12 Partikel 236
12.1 Cascade 237
12.1.1 Emitter 238
12.1.2 Type Data 244
12.2 Ein Beispiel für Effekte 245
13 Der Character 250
13.1 Character Blueprint 250
13.1.1 Character Movement 255
13.1.2 Movement-Funktionen 258
13.1.3 Vorbereitungen für Interaktionen 260
13.1.4 Kameraeigenschaften 261
14 Kommunikation 270
14.1 Cast to Blueprint 270
14.2 Interface 273
14.2.1 Output 276
14.3 Reference 279
14.3.1 Alle Actors einer Klasse 281
15 User Interface 284
15.1 HUD-Klasse 284
15.2 Widgets 287
15.2.1 Canvas 288
15.2.2 Palette 291
15.3 Benutzen von Widgets 309
16 Datenbanken 312
16.1 Structs 312
16.2 Data Table 314
16.2.1 Datenbanken in Blueprints 316
16.2.2 Speichern und Laden von Daten 318
17 Animationen 322
17.1 Skeletal Mesh 322
17.2 Skeleton 324
17.3 Animationen 326
17.3.1 Aim Offset 328
17.3.2 Blend Space 330
17.4 Animation Blueprint 331
17.4.1 Event Graph 331
17.4.2 Anim Graph 335
17.5 Retargeting 343
18 Netzwerk 348
18.1 Grundwissen über Multiplayer 348
18.2 Replication 349
18.2.1 Events 351
18.2.2 Animationen 353
18.3 Sessions 356
18.4 OnlineSubsystem 359
18.5 Multiplayer-Beispiele und Probleme 361
18.5.1 Events werden nicht ausgeführt 361
18.5.2 Replication und deren Auswirkung 362
18.5.3 Replication kombinieren 366
18.5.4 Owner herausstechen lassen 367
19 KI 370
19.1 Erste Schritte 370
19.2 Simple Patrouille 373
19.2.1 AIController 374
19.3 KI mit Angriff 377
19.4 Behaviour Tree/Query System 380
20 Debugging 382
20.1 Fehlersuche 382
20.2 Optimierung 388
21 Spiel erstellen 394
21.1 Project Launcher 397
21.1.1 Project 399
21.1.2 Build 399
21.1.3 Cook 399
21.1.4 Package 403
21.1.5 Archive 403
21.1.6 Deploy 403
22 Ein eigenes Spiel 406
23 Virtual Reality mit Unreal Engine 4 448
23.1 Was ist „Virtual Reality“? 448
23.1.1 Mit allen Sinnen 449
23.1.2 Eine kurze Geschichte 449
23.2 Achtung, Virtual Reality! 450
23.2.1 Der Spieler 450
23.2.2 Die Technik 452
23.3 Das VR Template der Unreal Engine 454
23.3.1 Vorbereitung 454
23.3.2 Neues VR-Projekt erstellen 456
23.3.3 VR Template ausprobieren 459
23.4 Das VR Template erklärt 462
23.4.1 VR Blueprints 462
23.4.2 Der MotionControllerPawn 463
23.4.3 Das MotionController Blueprint 471
23.4.4 Der Pickup Cube 479
23.5 Die virtuelle Wurfbude 480
23.5.1 Game Design 480
23.5.2 Das Spielfeld 481
23.5.3 Der Wurfball 484
23.5.4 Der Punktezähler 486
23.5.5 Ringe als Ziele 488
23.5.6 Hebel zum Reset 495
23.6 Zusammenfassung 501
24 Tipps und Tricks 502
24.1 Features, die es in die vorherigen Kapitel nicht geschafft haben 502
24.1.1 Split Screen 502
24.1.2 Authority 504
24.1.3 Maus zur Welt 504
24.1.4 Enums 505
24.1.5 Audio stoppen 506
24.2 Schlusswort 506
Index 508
2 | Erste Schritte |
Ich werde nicht nur über die Entwicklung mit der Unreal Engine 4 reden, sondern dir auch ein bisschen von der Philosophie bei der Spieleentwicklung ans Herz legen. Es gibt extrem viel zu beachten, und das alleinige Wissen über Mechaniken wird dich nicht überall hinbringen und garantiert kein erfolgreiches und spaßiges Spiel. Klar muss ich dir jetzt nicht erklären, dass es nicht so toll ist, wenn dein Spiel voller Fehler ist und dein Charakter andauernd durch den Boden fällt. Es geht mir vielmehr darum, dass du immer genau weißt, warum du etwas Bestimmtes machst und welchen Nutzen du und der Spieler daraus erhalten. Das Wichtigste ist, dass du Spaß an der Entwicklung hast und der Gamer Spaß am Spielen, dann sind alle Beteiligten glücklich und somit hoffentlich erfolgreich.
2.1 | Wie fange ich an? |
Es kommt immer darauf an, welches Spiel du machen willst und welche Erfahrung du mitbringst. Der logische Anfang wäre natürlich, dieses Buch zu lesen, denn einfach ohne jedwedes Vorwissen draufloszulegen, wird dir nur Probleme bereiten.
Es lohnt sich nicht, gleich von Anfang an dein Spiel der Träume zu bauen. Setze dir vielmehr zuerst kleine Ziele. Wenn du gerade das erste Mal mit der Engine anfängst und denkst: „Geil, dann mach ich jetzt mein Ultra-MMO mit zerstörbarer Landschaft und einem Minimum von 1000 Stunden Spielzeit“, dann hast du dir ein wenig zu viel vorgenommen. Fang immer klein an, vor allem wenn du noch am Lernen bist. Stelle dir kleine Aufgaben, die du nacheinander erfüllst. Beispielsweise könnten deine ersten Aufgaben darin bestehen, kleine Features wie das Öffnen und Schließen einer Tür oder das Ein- und Ausschalten mehrerer Lichter in einem Raum mit einem Lichtschalter einzubauen. Wie genau du sowas angehst, wirst du im Laufe dieses Buches noch lernen, aber das meine ich mit „klein anfangen“. Wenn du dann irgendwann soweit bist und alle Grundlagen verstanden hast, kannst du anfangen, kleinere Spiele zu bauen.
Neben der Idee brauchst du noch einen gewissen Plan, wie du die Aufgabe angehen willst. Einfach drauflos zu bauen, kann funktionieren, ist aber nicht empfehlenswert. Du musst dir genaue Gedanken machen, wie du deine Aufgabe angehen willst und was du dafür machen musst. Bleiben wir bei dem simplen Beispiel, einen Lichtschalter für Räume einzubauen. Du benötigst ein Lichtschalter-Objekt, Lichter und die Logik, um diese Lichter ein- und ausschalten zu können. Für die Funktion brauchst du eine Möglichkeit, dass dein Charakter mit dem Lichtschalter kommunizieren kann. Der Lichtschalter muss mit den jeweiligen Lichtern kommunizieren können und wissen, ob er die Lichter an- oder ausschalten soll usw.
Liegen all diese Fragen auf dem Tisch, liegt es an Dir, das Puzzle zusammenzufügen und herauszufinden, wie du die einzelnen Elemente am besten verbinden kannst. Dies kann vor allem bei komplexen Aufgaben und Funktionen helfen.
2.2 | Motivation |
Motivation ist ein wichtiger Faktor bei der Spieleentwicklung. Ich habe schon oft erlebt, wie mangelnde Motivation ein Projekt zum Scheitern gebracht hat. Es gibt ein paar Tricks, wie du deine Motivation aufrechterhalten kannst.
Zum einen ist Abwechslung ein guter Faktor. Wenn du mehrere Wochen an einem neuen und innovativen Feature sitzt, es aber einfach nicht so funktionieren will, wie du gerne hättest, dann lass es erstmal. Such dir eine andere Aufgabe, bring dich auf andere Gedanken und mach deinen Kopf frei. Wenn man sich zu sehr auf etwas versteift, gibt es nur Probleme. Kommst du nach einer kleinen Auszeit wieder an diese Aufgabe zurück, hast du eine vollkommen andere Sicht auf das Geschehen. Der Tunnelblick ist verschwunden, und du hast neue Ideen, dein Problem zu lösen.
Finde Teammitglieder, die genauso motiviert sind wie du! Alleine zu arbeiten kann auch Unmengen an Spaß machen – vor allem, weil man sein eigener Herr ist, aber auf Dauer ist es doch schön, andere Teammitglieder zu haben, als alles alleine zu erledigen. Aber auch hier musst du vorsichtig sein, denn Teammitglieder können auch eine große Motivationsbremse sein. Wenn Aufgaben nicht erledigt werden oder an dir hängen bleiben, keine Kommunikation herrscht und jeder macht, was er will, dann ist das mehr als nervig. Versuche also, deine Teammitglieder gut auszuwählen, und nicht nur nach deren Talent, sondern eher anhand ihrer Motivation. Jeder hat die Möglichkeiten, sein Talent zu verbessern, aber nicht jeder kann seine Motivation für längere Zeit halten.
Nimm dir nicht zu viel vor! Wenn du dir selbst direkt einen Berg an Aufgaben gibst, kannst du schnell die Übersicht und Motivation verlieren. Kleine Schritte führen zum Erfolg!
2.3 | Planung |
Wenn du in einem Team arbeitest, ist es wichtig, dass du und deine Teammitglieder einen Plan haben. Nicht nur, was für Aufgaben momentan erledigt werden sollen, sondern auch, welche Aufgaben schon erledigt sind und wer welche Aufgabe zugewiesen hat. Somit hast du immer einen genauen Überblick über den momentanen Entwicklungsstand und kannst sehen, an welcher Stelle es hakt und wo es gut läuft. Dafür steht dir auch eine große Bandbreite an Hilfsmitteln zur Verfügung, um deine Planung übersichtlich darzustellen.
Zum einen gibt es das kostenlose Web-Tool namens Trello. Auf Trello können neue Karten in Kategorien erzeugt und bei Beendigung in eine andere Kategorie verschoben werden. Von der Kategorie 3D-Models kann die Aufgabe Charakter erstellen in die Kategorie Erledigt bugsiert werden. Wie genau deine Kategorien heißen und wie du diese managst, bleibt dir natürlich komplett offen.
Für eine professionellere, nicht kostenlose, aber relativ günstige Möglichkeit gibt es noch Unfuddle. Ich persönlich benutze Unfuddle ebenfalls. Hier hat man die Möglichkeit, übersichtliche Tickets zu erstellen und diese Personen im Team zuteilen zu können. Sobald ein Teammitglied einen Bug findet, kann dieser dazu ein neues Ticket erstellen und es einer Person zuweisen. Dann erhalte ich auch direkt eine Mail mit dem Ticket und kann sehen, dass es einen Fehler beim Inventarsystem gibt, durch den man Gegenstände nicht mehr ablegen kann. Dann kann ich das Ticket akzeptieren, das Problem lösen und auf z. B. Testing stellen. Die anderen Mitglieder können das natürlich auch sehen, testen und bestätigen, dass der Fehler erfolgreich behoben wurde. Dann wird das Ticket archiviert, und man macht wie gewohnt weiter. Das nur als kleines Beispiel wie man die ganze Geschichte handhaben kann. Zusätzlich kann man dort noch Milestones einstellen (Zeitangaben, wann bestimmte Features fertig sein sollen), damit man ein Ziel hat, auf das hingearbeitet wird.
Es gibt natürlich unzählig verschiedene Seiten und Programme, die du benutzen kannst, und es ist egal, ob du das mit einem tollen Programm erstellst oder alles in einer eigenen Excel-Tabelle verwaltest. Die Hauptsache ist jedoch, dass du einen Überblick und richtige Planung über die Entwicklung hast.
2.4 | Sicherheitskopien |
Es kann immer zu Problemen kommen, die dein komplettes Projekt lahmlegen können. Sei es, dass du dein eigenes Projekt nach einem Absturz nicht mehr öffnen kannst, oder deine Festplatte den Geist aufgibt: Möglichkeiten, dein Projekt zu zerschießen, gibt es viele. Deswegen ist es immens wichtig, dass du Sicherheitskopien anlegst – am besten auf einen separaten Server.
Mithilfe von Tools wie SVN oder Git kannst du dein Projekt gesichert auf deinem eigenen Server lagern und anderen Personen Zugriff auf eben dieses Projekt geben. Jeder kann sich somit das Projekt herunterladen, Änderungen durchführen und diese auf den Server hochladen. Sollte also dein PC in die Luft fliegen, kannst du unbesorgt sein (außer natürlich du sitzt mitten in der Explosion), da deine Daten sicher sind und nichts verloren gegangen ist. Sollte es aber auch passieren, das du aus Versehen etwas hochlädst, was dein Projekt unbrauchbar machst, hast du mit SVN und Git die tolle Möglichkeit, ein paar Versionen zurückzugehen, oder nur bestimmte Dateien auf einen früheren Stand zurückzusetzen.
Im optimalen Fall musst du natürlich nicht darauf zurückgreifen, und alles läuft von Anfang an reibungslos, aber es ist immer sehr hilfreich zu wissen, dass deine Daten sicher sind. Falls dann doch irgendwann mal was passieren sollte, kannst du ruhig bleiben und musst dich nicht unnötig ärgern, deine ganze Arbeit verloren zu haben.
2.5 | Learning by Doing |
Eines der wichtigsten Aspekte ist das eigenständige Lernen und Ausprobieren. Ich kann dir nicht alles genau vorkauen und beibringen, dafür ist die Engine viel zu groß und vielseitig, um alles innerhalb eines Buches durchgehen zu können. Als ich anfing, mich mit der Engine auseinanderzusetzen, gab es wenige bis gar keine Hilfen und Tutorials, und ich musste mir mein Wissen selbst aneignen, indem ich einfach diverse Sachen ausprobierte und herumexperimentierte. Für mich ist das eine der effektivsten Formen des Lernens, wenn man einfach mal versucht,...
Erscheint lt. Verlag | 15.1.2018 |
---|---|
Verlagsort | München |
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge |
Schlagworte | Benedikt Engelhard • Epic Games • Game Design • Spieleentwicklung • Spieleprogrammierung • Virtual Reality |
ISBN-10 | 3-446-45625-2 / 3446456252 |
ISBN-13 | 978-3-446-45625-9 / 9783446456259 |
Haben Sie eine Frage zum Produkt? |
![PDF](/img/icon_pdf_big.jpg)
Größe: 48,7 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
![EPUB](/img/icon_epub_big.jpg)
Größe: 35,0 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich