Richartz | Spiele entwickeln mit Unreal Engine 4 | E-Book | sack.de
E-Book

E-Book, Deutsch, 512 Seiten

Richartz Spiele entwickeln mit Unreal Engine 4

Programmierung mit Blueprints: Grundlagen & fortgeschrittene Techniken. Mit einer Einführung in Virtual Reality
2. erweiterte Auflage 2017
ISBN: 978-3-446-45369-2
Verlag: Carl Hanser
Format: PDF
Kopierschutz: 1 - PDF Watermark

Programmierung mit Blueprints: Grundlagen & fortgeschrittene Techniken. Mit einer Einführung in Virtual Reality

E-Book, Deutsch, 512 Seiten

ISBN: 978-3-446-45369-2
Verlag: Carl Hanser
Format: PDF
Kopierschutz: 1 - PDF Watermark



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.

Richartz Spiele entwickeln mit Unreal Engine 4 jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


1;Inhalt;6
2;Vorwort;12
3;1 Einleitung;14
3.1;1.1 Was brauche ich?;14
3.2;1.2 Was lerne ich?;15
3.3;1.3 Lizenzen;16
3.4;1.4 Weiterentwicklung der Engine;17
4;2 Erste Schritte;18
4.1;2.1 Wie fange ich an?;18
4.2;2.2 Motivation;19
4.3;2.3 Planung;19
4.4;2.4 Sicherheitskopien;20
4.5;2.5 Learning by Doing;21
5;3 Grundlagen;22
5.1;3.1 Installation;22
5.2;3.2 Epic Games Launcher;24
5.3;3.3 Erstellung eines Projekts;25
5.4;3.4 Oberfläche;27
5.4.1;3.4.1 Game/Editor View;28
5.4.2;3.4.2 Content Browser;32
5.4.3;3.4.3 World Outliner;34
5.4.4;3.4.4 Details;35
5.4.5;3.4.5 World Settings;36
5.4.6;3.4.6 Modes;37
5.4.7;3.4.7 Play;41
5.5;3.5 Ausprobieren;42
6;4 Blueprints;44
6.1;4.1 Was sind Blueprints?;44
6.2;4.2 Das Actor-Blueprint;46
6.2.1;4.2.1 Der Hauptbereich;47
6.2.2;4.2.2 Components;54
6.2.3;4.2.3 Details;57
6.2.4;4.2.4 Debug-Bereich;58
6.3;4.3 Anwendungsbeispiele;60
6.3.1;4.3.1 Toggle;60
6.3.2;4.3.2 Sequenzer;61
6.3.3;4.3.3 Timeline;63
6.3.4;4.3.4 SpawnActor;64
6.3.5;4.3.5 Reroute-Node;65
6.3.6;4.3.6 IsValid?;66
6.3.7;4.3.7 Promote to variable;66
7;5 Bausteine der Welt;68
7.1;5.1 Variablen;68
7.1.1;5.1.1 Boolean;69
7.1.2;5.1.2 Byte;71
7.1.3;5.1.3 Integer;71
7.1.4;5.1.4 Float;72
7.1.5;5.1.5 Name, String und Text;73
7.1.6;5.1.6 Vector;74
7.1.7;5.1.7 Rotator;74
7.1.8;5.1.8 Transform;75
7.2;5.2 Benutzen von Variablen;75
7.2.1;5.2.1 Variablen in Events;78
7.3;5.3 Arrays;81
7.4;5.4 Übung zu Arrays;83
8;6 Die Welt in 3D;86
8.1;6.1 World- und Relative-Transforms;86
8.2;6.2 Transforms in Blueprints;90
8.3;6.3 Meshes;94
8.3.1;6.3.1 Toolbar und Viewport;97
8.3.2;6.3.2 Details;107
8.4;6.4 Collisions;110
8.4.1;6.4.1 Kollisionstypen;114
8.5;6.5 Materials;116
8.5.1;6.5.1 Graph;117
8.5.2;6.5.2 Details;132
8.5.3;6.5.3 Palette;135
9;7 Licht und Schatten;136
9.1;7.1 Lichtarten;136
9.1.1;7.1.1 Directional Light;137
9.1.2;7.1.2 Point Light;143
9.1.3;7.1.3 Spot Light;146
9.1.4;7.1.4 Sky Light;147
9.2;7.2 Lightmaps;149
9.2.1;7.2.1 Lightmass Importance Volume;152
9.2.2;7.2.2 Light Propagation Volumes;152
9.3;7.3 Global Illumination;154
10;8 Physik;156
10.1;8.1 Simulate Physics;156
10.1.1;8.1.1 Collisions;159
10.1.2;8.1.2 Physik in Blueprints;162
11;9 Ein Level entsteht;182
11.1;9.1 BSP;183
11.1.1;9.1.1 Brush Settings;184
11.1.2;9.1.2 Surface Material;186
11.1.3;9.1.3 Geometry Editing;189
12;10 Landschaften;192
12.1;10.1 Landscape-Tool;192
12.1.1;10.1.1 Manage;193
12.1.2;10.1.2 Sculpt;204
12.2;10.2 Landscape-Material;207
12.2.1;10.2.1 Layer Blend;208
12.2.2;10.2.2 Material Instance;210
12.2.3;10.2.3 Paint-Tool;211
12.2.4;10.2.4 Layer Weight;213
12.3;10.3 Foliage-Tool;215
12.4;10.4 Grass Output;218
13;11 Audio;222
13.1;11.1 Sound-Arten;222
13.1.1;11.1.1 Sound Cue;224
13.1.2;11.1.2 Sound Attenuation;228
13.1.3;11.1.3 Sound Class;230
13.1.4;11.1.4 Sound Mix;231
13.1.5;11.1.5 Dialogue Voice/Wave;232
13.1.6;11.1.6 Reverb Effect;234
13.1.7;11.1.7 Media Sound Wave;235
14;12 Partikel;236
14.1;12.1 Cascade;237
14.1.1;12.1.1 Emitter;238
14.1.2;12.1.2 Type Data;244
14.2;12.2 Ein Beispiel für Effekte;245
15;13 Der Character;250
15.1;13.1 Character Blueprint;250
15.1.1;13.1.1 Character Movement;255
15.1.2;13.1.2 Movement-Funktionen;258
15.1.3;13.1.3 Vorbereitungen für Interaktionen;260
15.1.4;13.1.4 Kameraeigenschaften;261
16;14 Kommunikation;270
16.1;14.1 Cast to Blueprint;270
16.2;14.2 Interface;273
16.2.1;14.2.1 Output;276
16.3;14.3 Reference;279
16.3.1;14.3.1 Alle Actors einer Klasse;281
17;15 User Interface;284
17.1;15.1 HUD-Klasse;284
17.2;15.2 Widgets;287
17.2.1;15.2.1 Canvas;288
17.2.2;15.2.2 Palette;291
17.3;15.3 Benutzen von Widgets;309
18;16 Datenbanken;312
18.1;16.1 Structs;312
18.2;16.2 Data Table;314
18.2.1;16.2.1 Datenbanken in Blueprints;316
18.2.2;16.2.2 Speichern und Laden von Daten;318
19;17 Animationen;322
19.1;17.1 Skeletal Mesh;322
19.2;17.2 Skeleton;324
19.3;17.3 Animationen;326
19.3.1;17.3.1 Aim Offset;328
19.3.2;17.3.2 Blend Space;330
19.4;17.4 Animation Blueprint;331
19.4.1;17.4.1 Event Graph;331
19.4.2;17.4.2 Anim Graph;335
19.5;17.5 Retargeting;343
20;18 Netzwerk;348
20.1;18.1 Grundwissen über Multiplayer;348
20.2;18.2 Replication;349
20.2.1;18.2.1 Events;351
20.2.2;18.2.2 Animationen;353
20.3;18.3 Sessions;356
20.4;18.4 OnlineSubsystem;359
20.5;18.5 Multiplayer-Beispiele und Probleme;361
20.5.1;18.5.1 Events werden nicht ausgeführt;361
20.5.2;18.5.2 Replication und deren Auswirkung;362
20.5.3;18.5.3 Replication kombinieren;366
20.5.4;18.5.4 Owner herausstechen lassen;367
21;19 KI;370
21.1;19.1 Erste Schritte;370
21.2;19.2 Simple Patrouille;373
21.2.1;19.2.1 AIController;374
21.3;19.3 KI mit Angriff;377
21.4;19.4 Behaviour Tree/Query System;380
22;20 Debugging;382
22.1;20.1 Fehlersuche;382
22.2;20.2 Optimierung;388
23;21 Spiel erstellen;394
23.1;21.1 Project Launcher;397
23.1.1;21.1.1 Project;399
23.1.2;21.1.2 Build;399
23.1.3;21.1.3 Cook;399
23.1.4;21.1.4 Package;403
23.1.5;21.1.5 Archive;403
23.1.6;21.1.6 Deploy;403
24;22 Ein eigenes Spiel;406
25;23 Virtual Reality mit Unreal Engine 4;448
25.1;23.1 Was ist „Virtual Reality“?;448
25.1.1;23.1.1 Mit allen Sinnen;449
25.1.2;23.1.2 Eine kurze Geschichte;449
25.2;23.2 Achtung, Virtual Reality!;450
25.2.1;23.2.1 Der Spieler;450
25.2.2;23.2.2 Die Technik;452
25.3;23.3 Das VR Template der Unreal Engine;454
25.3.1;23.3.1 Vorbereitung;454
25.3.2;23.3.2 Neues VR-Projekt erstellen;456
25.3.3;23.3.3 VR Template ausprobieren;459
25.4;23.4 Das VR Template erklärt;462
25.4.1;23.4.1 VR Blueprints;462
25.4.2;23.4.2 Der MotionControllerPawn;463
25.4.3;23.4.3 Das MotionController Blueprint;471
25.4.4;23.4.4 Der Pickup Cube;479
25.5;23.5 Die virtuelle Wurfbude;480
25.5.1;23.5.1 Game Design;480
25.5.2;23.5.2 Das Spielfeld;481
25.5.3;23.5.3 Der Wurfball;484
25.5.4;23.5.4 Der Punktezähler;486
25.5.5;23.5.5 Ringe als Ziele;488
25.5.6;23.5.6 Hebel zum Reset;495
25.6;23.6 Zusammenfassung;501
26;24 Tipps und Tricks;502
26.1;24.1 Features, die es in die vorherigen Kapitel nicht geschafft haben;502
26.1.1;24.1.1 Split Screen;502
26.1.2;24.1.2 Authority;504
26.1.3;24.1.3 Maus zur Welt;504
26.1.4;24.1.4 Enums;505
26.1.5;24.1.5 Audio stoppen;506
26.2;24.2 Schlusswort;506
27;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,...




Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.