
Hallo und willkommen zu unserem Kurs “VR-Spieleentwicklung mit Unity”. Wir sind Dominik und Marcel und zeigen dir heute, wie du mit Unity deine ersten Virtual Reality Erfahrungen gestalten kannst - Ganz ohne Vorkenntnisse.
Wir werden dir in den nächsten Stunden ausführlich zeigen, wie du mit dem Unity-Editor deine Level gestalten und deine eigenen Ideen zum Leben erwecken kannst. Sobald du ein erstes Verständnis von Unity hast, werden wir darauf eingehen, wie du dein Projekt nun mit VR-Funktionalitäten ausstattest. Wir werden dir zeigen, wie du die HTC Vive in Unity einbindest, wobei du auch andere OpenVR-kompatible Headsets verwenden kannst. Wir werden ein paar der häufig auftretenden Problemstellungen besprechen und Lösungsvorschläge für diese aufzeigen.
Anschließend werden wir ausführlich auf die Programmierung mit C# eingehen. Unity liefert zwar durch den integrierten Asset-Store eine Vielzahl vorgefertigter Funktionalitäten mit, sodass du theoretisch auch ohne Programmierkenntnisse ein ganzes Projekt umsetzen könntest, aber mit C# erhältst du alle Freiheiten um alle Details deinen Wünschen nach anzupassen.
Zum Schluss zeigen wir dir noch, wie du selbst erstellte 3D-Modelle aus Programmen wie Cinema4D in Unity importieren kannst, und was du hierbei beachten musst.
Wir beenden den Kurs mit ein paar Beispielen, die wir im Lauf der Zeit entwickelt haben und die sich immer wieder als hilfreich erwiesen haben. Diese kannst du natürlich in deinen eigenen Projekten frei verwenden.
Nach Abschluss dieses Kurses hast du ein solides Basiswissen im Bereich der Spieleentwicklung mit Unity, das du natürlich auch außerhalb des VR-Bereichs anwenden kannst. Außerdem wirst du Wissen über die Grundlagen der Programmierung in C# besitzen, welche du auch außerhalb von Unity anwenden kannst. Beispielsweise für Web, Mobile oder Desktop-Programmierung.
Mit Unity3D werden nach eigenen Angaben die Hälfte aller Videospiele auf dieser Welt entwickelt.
Unity ist eine Laufzeit- und Entwicklungsumgebung für Spiele (eine sogenannte Spiel-Engine). Zielplattformen sind neben PCs auch Spielkonsolen, mobile Geräte und Webbrowser. Die Entwicklungsumgebung ermöglicht die Entwicklung von Computerspielen und anderer interaktiver 3D-Grafik-Anwendungen. In unserem Fokus liegt hier der VR-Escaperoom.
---------------------------------------------
Computerspiele sind heute allgegenwärtig. Die Branche entwickelt sich extrem schnell, und so tun es auch die Werkzeuge, die die Entwickler nutzen. Eins dieser Werkzeuge ist Unity. Unity ist eine Spieleentwicklungsumgebung für Windows und macOS und unterstützt die Gestaltung von sowohl 2D- als auch 3D-Spielen. Neben der Spielebranche findet sich Unity aber auch immer häufiger in anderen Bereichen wieder, beispielsweise bei der Visualisierung von Industrieanlagen oder auch Animationsfilmen.
Unity unterstützt multiplattform-Publishing, d.h. du kannst ein Spiel einmal schreiben, es aber für mehrere Plattformen veröffentlichen. Unity unterstützt dabei diverse Zielplattformen, unter anderem PC, macOS, Linux, oder auch Mobilplattformen wie Android und iOS. Der Unity Web Player ermöglicht sogar direktes Starten von Unity-Anwendungen im Browser. Mit zusätzlichen Lizenzen ist auch das Erstellen von Spielen für Konsolen wie XBox oder PlayStation möglich.
Unity bringt viele Werkzeuge mit, die dem Entwickler das Leben einfacher machen. Das umfasst eine vollständige Physik-Engine, einen Animations-Editor, Tools zur Terrain-Gestaltung oder ein Partikel-System. Unity ist aber keine Modellierungssoftware. Zwar bietet Unity mit dem ProBuilder neuerdings ein System zur direkten Bearbeitung einfacher Modelle direkt im Editor, für komplexe Modelle wirst du aber nicht um eine Modellierungssoftware wie Blender oder Cinema4D herumkommen.
Wie bereits eingangs erwähnt ist die Spielebranche ein sich schnell verändernder Markt und Unity wird ständig weiterentwickelt. Es ist also möglich, dass die hier beschriebenen Inhalte bereits überholt sind, wir bemühen uns aber, alles auf einem möglichst aktuellen Stand zu halten.
Unity kannst du grundsätzlich kostenlos nutzen. Es gibt auch eine kostenpflichtige Version, mit der du beispielsweise den Unity-Splashscreen beim Start eines Spiels deaktivieren kannst, jedoch ist die Pro-Version nur für Unternehmen mit einem Jahresumsatz von mindestens 100.000 US-$ erforderlich.
1. Hierarchy
Hier werden alle GameObjects der aktuellen Szene angezeigt. Jedes Modell, jedes Licht und jede Kamera erhalten sind hier zu finden und können ausgewählt werden. Über Drag and Drop kannst du GameObjects in diesem Fenster umsortieren oder hierarchisch sortieren.
2. Scene-, Game- und Assets-Store-Bereich
Der Scene-Reiter: Hier erhältst du in Echtzeit eine Vorschau deiner aktuellen Szene.
Die Game-Ansicht zeigt dir, während du dein Spiel im Editor testest, die Perspektive, wie sie auch der Spieler im fertigen Spiel haben würde.
Der Asset Store ist ein integrierter Store, in dem du Modelle, Sounds und sogar ganze Projekte herunterladen und kaufen kannst.
3. Inspector-Bereich
Der Inspector ist ein dynamischer Bereich, dessen Inhalt sich immer dem anpasst, was du gerade tust. Hast du in der Scene View oder Hierarchy ein GameObject ausgewählt, zeigt er dir zum Beispiel detaillierte Informationen zu dem GameObject an. Man könnte sagen hier werden grundlegend die Einstellungen getätigt.
4. Project- und Console-Bereich
Dieser Bereich hat zwei Reiter, zum einen Project und zum anderen Console. Standardmäßig ist der Reiter Project aktiviert.
Dies ist die Projektansicht, in der alle Dateien, die zu deinem Projekt gehören, angezeigt werden. Der Bereich wird auch Project Browser genannt.
In dem Console-Reiter werden, während du dein Spiel testest, Debug-Informationen, Warnungen und Fehler angezeigt.
5. Toolbar-/Werkzeug-Bereich
Dieser Bereich enthält zum einen die klassische Toolbar (File, Edit etc.) und zum anderen die Unity-Toolbar.
Die Hierarchy zeigt alle GameObjects in der aktuellen Scene an. Hier zeige ich euch wie ihr eure Objekte gut strukturieren könnt, was es mit dem parenting auf sich hat und wie man das für sich nutzen kann.
Im "Scene" Window setzen wir unser Spiel zusammen. Hier können wir während das Spiel läuft, Änderungen durchführen. Besseres platzieren der Deko zum Beispiel. In dem "Game" Window, sehen wir das Spiel, wie es der Spieler am Schluss sehen wird.
Projekte im Unity Editor bestehen aus mehreren Spielobjekten, wie Skripts, Sounds, Meshes und andere grafische Elemente wie Lichter. Das Inspektorfenster (manchmal auch als "der Inspektor" bezeichnet) zeigt detaillierte Informationen über das aktuell ausgewählte Spielobjekt, einschließlich aller angeschlossenen Komponenten. Es ermöglicht es uns, die Funktionalität von Spielobjekten in der Szene zu ändern.
WICHTIG: Wenn du das Inspektor Script verwenden möchtest, erstelle einfach einen Cube in der Hierarchie mit Rechtsklick Create3D Objekt. Dann im Inspektor, während der Cube angewählt ist auf den Button unten "Ad component" und "InspectorSample" eingeben. Das mit Enter bestätigen und ihr habt euer erstes Script benannt und erstellt. Dieses einfach mit doppelklick öffnen und den Code den ich hier zum Download drin hab einfügen. Viel Spaß!
Im Bereich "Project" liegt unsere Struktur aller Dateien, die wir für den Aufbau unseres Spiels benötigen. Modelle, Scripte etc. Diese liegen erst einmal nur dort nach einem Import, sie sind noch nicht in der Hierarchie platziert und tauchen somit auch noch nicht im Spiel auf.
In der "Console" können wir während des Spiels Ausgaben erzeugen, um live unser Script zu prüfen, ob es denn so funktioniert wie es soll. Beispielsweise können wir hier die Veränderungen der Variablen einsehen.
In dieser Lektion gehen wir einmal Schritt für Schritt die wichtigsten Werkzeuge durch. Wir benutzen nur eine Handvoll, und halten es für unsinnig jede einzelne zu erklären, die nur selten vorkommt. Wer sich über diese trotzdem informieren will kann das Manual von Unity zu Rate ziehen.
Hi, willkommen zurück. In dieser Lektion werden wir die wichtigsten Komponenten von Unity besprechen. Diese werden dir in vermutlich all deinen Unity Projekten über den Weg laufen, ein Überblick ist daher äußerst sinnvoll. Wir besprechen Dinge wie die Augen und Ohren des Spielers und wie er mit der Umwelt interagiert. Zudem erstellen wir Gegenstände, die mit der Umwelt interagieren, in Form von Kollisionen. Es wird komplett von Null an alles erklärt, bis gleich :)
Kollisionskomponenten definieren die Form eines Objekts für physikalische Kollisionen. Ein unsichtbarer Kollider muss nicht genau die gleiche Form haben wie das Mesh/Aussehen des Objekts. Kurz um: Hat ein Block einen Kugelkollider, kann er durch die Gegend rollen, was mehr als seltsam aussieht.
Ein Spiel wäre unvollständig ohne irgendeine Art von Audiosignalen. Gerade bei Escaperooms kann ein rätsel rein auf hören basieren. Sei es Hintergrundmusik oder Soundeffekte. Unity kann die meisten Standard-Audiodateiformate importieren und verfügt über Funktionen zur Wiedergabe von Sounds im 3D-Raum. Sprich wir hören in VR wenn etwas hinter uns ist.
Hier habe ich euch ein paar Sounddateien zur Verfügung gestellt, damit ihr für die gängigen Dinge nicht lange suchen müsst. Klicksounds, verschlossene Türen, Schloss geöffnet etc. Die ersten paar Klick Sounds sind Beispiele zum schnellen runterladen. Alle sind gemeinsam im zip drin.
Für eine kurze Einführung, schau dir unten das Video beim Cinema Teil an zum Thema wie wir unsere Tasse texturieren :)
Materialien werden in Verbindung mit Mesh-Renderern, Partikelsystemen und anderen in Unity verwendeten Rendering-Komponenten verwendet. Sie spielen eine wesentliche Rolle bei der Definition der Darstellung Ihres Objekts. Kurz: sie sind das was von uns wahrgenommen wird. Hat etwas keine Textur, ist es für uns unsichtbar.
Für Effekte wie sich bewegende Flüssigkeiten, Rauch, Wolken, Flammen und Zaubersprüche, gibt es die Partikelsysteme. League of Legends ist voll von solchen Partikelsystemen. Jeder Zauberspruch, jedes Feuer ist ein eigenes Partikelsystem.
Hier werden wir gemeinsam einmal den Rauchsee als Partikelsystem erstellen. Dieser ist auch im Beispielprojekt "dunkler Wald" mit drin.
Mit dem Prefab-System von Unity können wir ein Spielobjekt komplett mit allen Komponenten, Eigenschaftswerten und untergeordneten Spielobjekten erstellen, konfigurieren und speichern. Das Prefab ist also eine Vorlage, aus der leicht neue Prefab-Instanzen in der Szene erstellen können. Ändern wir etwas am Prefab, so ändern sich alle Eigenschaften der Kopien gleichermaßen mit.
Hallo und willkommen zurück. Wir werden uns nun Dinge anschauen auf die bei der Entwicklung geachtet werden sollte. Veranschaulicht an Szenarien wie:
- best practises
- Lösungsansätze für häufige Fragtestellungen (Laufen, Bewegung Videos hinten dran schneiden)
Videos
- Zauberspiel: Brücke -> man stellt sich vor zu fallen
- Lab: Einschränkung nicht als solches Wahrnehmen
- the blue: Flosse zum Ducken
- Beatsaber: Partikel in Startszene und alles um einen herum bewegt sich Ingame
Wir möchten hier ein wenig über Dos und Donts bei der Entwicklung sprechen. Grundlegend bricht alles die Immersion was der Spieler sieht, aber nicht spürt. Das Aber ist hier wichtig. Ein Beispiel: Stehen wir auf einer wackeligen Brücke, stellen wir uns vor wie der Fall sich anfühlen würde. Die Immersion wirkt. Fallen wir in VR nun runter, sehen dies aber spüren es nicht. Wir stehen real ja immer noch und erfahren keine Beschleunigung nach unten. Hier zerbricht die Immersion und uns wird im schlimmsten Fall schlecht. Andersrum geht das natürlich auch, wenn der Spieler ein fallen erwarten würde, ohne dass es eintritt.
Wir haben bei der HTC Vive nur eine gewisse Fläche für unsere Bewegungen. Hier sollte im besten Fall diese Einschränkung nicht als solches wahrgenommen werden. The Lab macht das fantastisch. Beim Spielen kommt man gar nicht auf die Idee an den Rand des Turm stehen zu wollen, die Knie hohen Mauern sind im Weg.
Eine weitere Methode um die Immersion zu maximieren sind Situationen die schnelle Reaktionen erfordern. Vor allem im Angesicht von überraschenden und Angst einflößenden Situationen denkt man nicht mehr darüber nach, dass es nicht real ist. Es wird sich automatisch geduckt oder ausgewichen. Bedrohung und Angst sind die einfachsten Mittel, Immersion zu erzeugen, da unser Gehirn in diesen Fällen schneller auf den Trick anspringt, um sich zu schützen. In diesem Fall wird der Waal seine Flosse nach uns schlagen. Der Spieler reagiert Instiktiv und duckt sich direkt.
Kleinere Bewegungen wie zB in einem fahrenden Aufzug stehen, ist hingegen möglich, weil die Bewegung real kaum bemerkt wird.
Eine Welt kann noch so fotorealistisch aussehen, in Virtual Reality wirkt sie schnell leblos oder statisch, wenn sich nichts bewegt. Partikelsysteme, die den Raum mit Rauch, Staub oder Fliegen füllen, können benutzt werden, um ihn lebendiger wirken zu lassen. Um eine Welt in einem Virtual-Reality-Spiel lebendiger wirken zu lassen, sollte sie einfach nicht vollkommen statisch sein. Es sollten sich in der Scene Objekte bewegen, Geräusche machen und das Interesse des Spielers wecken. Das Spiel BeatSaber macht das hervorragend. Hier bewegt sich selbst im Hintergrund alles.
Hier werden wir gemeinsam die Vive Softwaretechnisch einstellen.
Das SteamVR Unity Plugin verwaltet drei wesentliche Dinge für uns: das Laden von 3D-Modellen des VR-Controllers, das Bearbeiten von Eingaben von diesen Controllern und das Schätzen, wie Ihre Hand aussieht, während Sie diese Controller verwenden.
Wir werden uns der Basisszene bedienen und somit den Grundstein für unseren Escaperoom legen.
zusätzliche Plugins: VRTK
In dieser Lektion bauen wir uns eine kleine Szene auf, in der wir uns teleportieren und Gegenstände greifen können.
Hier haben wir für dich ein paar Assets, die du frei verwenden kannst und damit schon mal ein wenig rum spielen kannst. Versuche doch einfach mal auf der Insel herum zu laufen.
Programmieren ist sehr leicht, wenn ein paar Basics verstanden worden sind :)
In dieser Lektion geben wir unserer Welt ein wenig mehr Charm. Wir fügen einen neuen Himmel hinzu.
Hier geben wir dem Spieler ein visuelles Feedback, dass seine Handlung gerade nicht richtig war. Sein Gegenstand wird zerbrechen und auf den Boden fallen.
In dieser Lektion zeige ich euch ein Portal das ihr frei nach Lust und Laune editieren und verwenden könnt.
Wolltest du schon immer einmal wissen, wie eine VR-Programmierung funktioniert?
Möchtest du deinen eigenen Escape-Room erstellen, ohne monatelange Vorbereitung zu betreiben?
In diesem Kurs decken wir alles ab, was du wissen musst,: Du fängst bei Null und ohne Vorkenntnisse an, um zum Schluss einen eigenen Escape-Room erstellen zu können. Du benötigst absolut kein Grundwissen, sondern lernst alles Relevante hier im Kurs!
Durch den roten Faden des "Escape-Room"-Beispiels, kannst du dem Kurs super leicht folgen & deine Skills erweitern und ausbauen. Der Kurs richtet sich dabei sowohl an Anfänger als auch an Fortgeschrittene, die bereits Erfahrung mit Unity3D haben.
Wir halten uns und den Kurs stets durch unsere reale Dozententätigkeit an einer Hochschule auf dem Laufenden. Dadurch erwarten dich regelmäßige Aktualisierungen der Inhalte, sodass du immer auf dem Laufenden bleibst.
All das ist natürlich inklusive und kostenfrei, wenn du dich für diesen Kurs entscheidest!
Rein strukturell erwartet dich im Kurs Folgendes:
Wir beginnen zunächst mit der Vermittlung der Grundlagen. Dazu zählen:
Grundlagen der Unity3D
Grundlagen der Virtual Reality
Grundlagen der Programmierung
Nachdem die Grundlagen anhand von Übungen verstanden sind, werden wir gemeinsam einen Raum erstellen.
Danach werden wir tiefgehendere Themen entdecken. Das sind:
Erklärung der einzelnen Partikelsysteme
C#-Programmierung in voller Tiefe
... und vieles vieles mehr!
Wozu ist dieser Kurs also gedacht?
Dieser Kurs ermöglicht es absolut jedem, in kurzer Zeit in die Thematik der VR-Programmierung einzusteigen und bietet einen klaren Leitfaden dazu an. Das bedeutet: Du musst dir nicht das ganze Themengebiet selbst beibringen und auf eigene Faust einen Lehrplan erstellen, so wie es vor diesem Kurs der Fall war.
Und mal ehrlich: Bist du es nicht auch Leid, dass Kurse nur Informationen wiedergeben, die du auch auf einem Blog oder auf YouTube hättest finden können?
Wir machen Schluss damit und fassen unsere Erfahrung für dich kompakt zusammen. Das bedeutet: Kleine Lektionen, damit die einzelnen Themen schnell verstanden und bei Bedarf wiederholt werden können.
In diesem Kurs REDEN wir nicht nur darüber, wir setzen auch um.
Zu den Dozenten:
Dominik ist ein VR Enthusiast der ersten Stunde, seit er 2012 die erste Oculus Rift in den Händen hielt. Seither kann er nicht anders, als sein Wissen stets auf dem neuesten Stand zu halten. Gemeinsam mit Marcel lehrt er daher seit 2017 die Erstellung von "VR Escape Rooms" an der DHBW in Ravensburg und hat in diesem Zuge einige praktische Projekte umgesetzt.
Achtung - Disclaimer:
Wir arbeiten stetig an diesem Kurs und verfeinern ihn Monat für Monat. Wir arbeiten beide als Dozent und nutzen diesen Kurs ebenfalls als offizielle Unterstützung für unsere Studenten sowie als Dokumentation, für alle, die das Wissen aufbereitet nutzen möchten. Andere Kurse zu diesem Thema liegen preislich im oberen dreistelligen Bereich. Wir haben uns gegen diese horrenden Preise entschieden, weil wir den Kurs mit deinem und dem Feedback der Community weiterentwickeln möchten und werden. Du hast Fragen oder dir fehlt ein Teil? Dann nutze den Community-Tab im Kurs und erhalte Antworten auf deine Fragen!
Also: Worauf wartest du? Wir freuen uns auf dich!