Godot Engine - Animation Bootcamp

Mein Name ist Ramsha Siddiqui und das Projekt, an dem ich in diesem Jahr für Google Summer of Code (GSoC) arbeite, ist das Animation Bootcamp von Godot Engine. Seit meiner Kindheit beschäftige ich mich mit Animationsdesign und der Kunst des Spielemachens. In meiner Freizeit erstelle ich gerne 2D-Animationen aus Disney-Figuren (Prinzessinnen) und male oder zeichne auch Figuren aus anderen Filmen wie Harry Potter und Pixar. Mein ultimatives Ziel im Leben ist es, eines Tages ein visueller Animationsfilmkünstler oder ein professioneller Spieleentwickler in einem renommierten Animationsstudio zu werden. Beim Durchsuchen von Projekten für die Arbeit in diesem Sommer habe ich zunächst einige ausgewählt, die sich mit Grafikdesign, 3D-Animationen, virtueller Realität, erweiterter Realität usw. befassen. Dabei wurden verschiedene Aspekte wie der Schwierigkeitsgrad dieser Projekte sowie Hintergrundwissen berücksichtigt Um sie auszuführen, habe ich nach langem Überlegen meine Suche auf 3 Projekte eingegrenzt - und Godot Engine bedient eines davon. Ich habe mich entschlossen, am Animation Bootcamp zu arbeiten, wie in der von Godot gegebenen Ideenliste erwähnt. Das referenzierte YouTube-Video war sehr hilfreich, um die Projektanforderungen zu verstehen - und wie kann ich vorgehen, um es zu versuchen.

Ich spreche von meinen früheren Erfahrungen und bin Senior an der Nationalen Universität für Computer- und aufstrebende Wissenschaften in Lahore, Pakistan, und studiere Informatik (CGPA: 3,71). Ich habe ziemlich gute Programmierkenntnisse sowie ein ziemlich gutes Verständnis für Algorithmen und Datenstrukturen. C # wäre meine bevorzugte Sprache für dieses Projekt (wie ich es bereits in Unity verwendet habe). Zuvor habe ich bereits mit Unity gearbeitet und da Godot ziemlich ähnlich ist, habe ich es auch in den letzten Tagen getestet. Es ist ziemlich flüssig und wird fast in kürzester Zeit gerendert. Es eignet sich auch für Personen, die eine Alternative zu Unity 3D suchen. Darüber hinaus habe ich letzten Sommer einen Online-Kurs zu Udacity auf Three.js und OpenGL absolviert - daher gehören auch 3D-Programmierung und Website-Rendering zu meinen Fähigkeiten.

Für den Versuch dieses Projekts habe ich eine konkrete Vorstellung von einem Spiel (was Sie hoffentlich zu schätzen wissen) sowie eine anständige Zeitachse. Schauen wir uns also an, wie es aussieht!

Zusammenfassung

Der folgende Vorschlag bezieht sich auf das Godot Engine Animation Bootcamp namens "Olaf's Wonderland" - eine 3D-Game-Adaption der berühmten Schneemann-Figur aus Disney's Frozen. Der Zweck dieses Projekts ist es, eine fehlerfreie Ausführung und Entwicklung der prozeduralen Animation der Figur "Olaf" zu demonstrieren. Dieses Projekt ist auf 4 Monate (von Mai bis August) aufgeteilt und das endgültige Ergebnis beinhaltet das fertige Game on Godot sowie die schriftliche Dokumentation und das Tutorial-Video (optional). Dieses Spiel wird auch als Open-Source-Demo-Projekt im GitHub-Repository von Godot Engine veröffentlicht. Die Hauptmerkmale des Spiels sind: Charakter- und Umgebungsvorbereitung, Bewegungen und Aktionen der Charaktere sowie Umwelteinflüsse. Referenzen für dieses Projekt umfassen frühere Projekte, die auf Godot und Unity3D gehostet werden. Die für die Entwicklung verwendeten Plattformen umfassen Godot Engine, Adobe Photoshop und C # Frameworks.

Disneys offizielles Frozen-Poster

Projektübersicht

Aufgrund meines Interesses an Disney Movies ist das Spiel, das ich für das Bootcamp erstellen möchte, "Olaf's Wonderland" - basierend auf der fiktiven Figur Olaf aus Disney's Frozen. Ein ziemlich beliebter Film unserer Zeit, der dazu beitragen wird, ein jüngeres Publikum anzuziehen, das bereit ist zu lernen - und das Bootcamp verlässlicher zu machen, von dem man lernen kann. Falls Sie nicht wissen, was Olaf ist, sehen Sie hier ein Bild:

Ein vergrößertes Bild von Olaf dem Schneemann

Olaf ist ein magischer Schneemann, den Elsa mit ihren Kräften zum Leben erweckt hat. Er hat eine einzigartige Persönlichkeit, die verschiedene alberne Eigenschaften sowie einen lustigen Körpertyp verkörpert, der in Stücke brechen und wieder zusammenfließen kann, sowie in der Sonne und unter warmem Wasser schmilzt. Anhand des Hasenvideos als Referenz (YouTube-Tutorial) wählte der Designer eine Figur mit einem merkwürdigen Bewegungsgefühl aus, damit er alle verschiedenen Funktionen der prozeduralen Animation richtig erklären konnte und genau das beabsichtige ich auch. Das Spiel basiert auf einem eisig weißen und blauen Hintergrund - und besteht hauptsächlich aus verschiedenen Bewegungen des Charakters sowie den Änderungen in der Umgebung bei der Interaktion, die sich schließlich in ein nettes, unterhaltsames, interaktives Animations-Bootcamp für Godot verwandeln Lernende.

Prozessbeschreibung

Lassen Sie mich nun den Prozess der Spieleentwicklung sowie das Animations-Bootcamp beschreiben:

  • Character Design (3D-Modellierung) - Hände (Holzstruktur), Körper (Softeis / Baumwollstruktur) und Gesichtsmerkmale (Karottennase, wässrige Knopfaugen usw.)
  • Stehen / Sprechen - ermöglicht es dem Charakter, seine Zähne zu zeigen, die Augenbrauen zu heben, zu blinzeln usw.
  • Umgebungsdesign (3D-Modellierung) - Gefrorenes Land (unebenes Plateau und einige Hügel) sowie Wasser, wo das Eis endet, und blauer Himmel mit Wolken und Sonne.
  • Umwelteinflüsse - Regen, Sonnenschein, fließendes Wasser, Dampf beim Gehen auf Eis / Eisrisse.
  • Skaten - das Grundmerkmal der Bewegung. Beginnen Sie mit einer 3D-Kugel und sehen Sie, wie sie mit der Umgebung interagiert. Ersetzen Sie sie dann durch eine Olaf-Figur.
  • Gehen - Olaf wackelt normalerweise wie ein Pinguin und bewegt sich jeweils einen Fuß und beide Füße nach links und rechts.
  • Springen - Olaf springt gerne vor Freude, und wenn er es tut, heben sich seine Astarme mit einem Grinsen im Gesicht in die Luft. Er kann auch während eines Sprungs rollen oder kneifen, je nachdem, wie viel Komplexität wir beim Charakterspringen zeigen wollen.
  • Laufen - Olaf rennt mit beiden Armen hinter sich her und neigt den Kopf etwas nach vorne, als würde er gleich fallen. Sein Körper beginnt sich auch zu trennen, wenn er schneller läuft, weil es keinen Zusammenhalt zwischen den Teilen gibt.
  • Schub / Kombinierte Funktionen - Wie im YouTube-Video gezeigt, ist es wichtig, dass wir beim Kombinieren der oben aufgelisteten Aktionen statt abrupter Änderungen allmähliche Kurven erstellen, um den Impuls der Physik aufrechtzuerhalten.
  • Absturz / Kollision mit Wänden / Sturz - Normalerweise fällt Olaf jedes Mal, wenn er auf etwas stößt, die Möhrennase sowie Arme und Beine ab, und manchmal löst sich sogar sein Körper auf, wodurch eine Animation erstellt wird es wäre auch cool, wenn er sich in diesem Bootcamp wieder zusammensetzt.
  • Schmelzen - Immer wenn Olaf in warmes Wasser läuft, beginnt er zu schmelzen. Dies ist ein guter Weg, um zu zeigen, wie das Leben des Charakters enden kann, wenn er zu viel der Sonne ausgesetzt wird.
  • Soundeffekte / Musik - Dieses Bootcamp wäre im Wesentlichen unvollständig, wenn wir nicht alle oben beschriebenen Aktionen mit Musik / Soundeffekten versehen würden, z

Dies ist eine gute geschätzte Storyline des Animation Bootcamp-Projekts, an dem ich diesen Sommer arbeiten möchte, und ich glaube, dass es möglich ist, es innerhalb von 3 Monaten ziemlich effizient abzuschließen!

Forschungsarbeit

Um einen Anhaltspunkt für die Entwicklung dieses Spiels zu haben, habe ich online nach Animation Bootcamps und den von ihnen verwendeten Strategien gesucht. Ein wirklich gutes Beispiel, das ich gefunden habe, war Code.Org in einem Einsteigerspiel namens "Frozen Code-Blocks". Grundsätzlich handelt es sich um ein Drag & Drop-Spiel für Code, bei dem Sie Ihr eigenes Spiel mit verschiedenen Codeblöcken erstellen können. Während es nicht sehr flüssig ist oder irgendwelche tatsächlichen Spielanimationen beinhaltet, ist das allgemeine Erscheinungsbild des Spiels sehr flüssig. Auf der Suche nach Dingen, die direkt mit Godot zu tun haben, habe ich mehrere Online-Tutorials für Godot Engine gefunden, die von „GamesFromScratch“ und „KidsCanCode“ veröffentlicht wurden. Ihre Denkweise bei der Entwicklung stimmt sowohl mit meiner als auch mit der Idee des Spiels überein. Ich bin mir zwar nicht sicher, ob der Videoerstellungsprozess des Spiels Teil des Projekts ist oder von Godot separat veröffentlicht werden soll, ich kann aber trotzdem freiwillig ein interaktives Video für dieses Bootcamp mit Filmora oder einer anderen Videoanimation erstellen Software.

Ein Blick auf ein von der School of Animation veröffentlichtes Animation Bootcamp zeigt, dass es für diese Aufgabe sehr wichtig ist, die Physik der Bewegung während der Entwicklung zu berücksichtigen, da es zeigt, warum Bewegungen abhängig von ihren üblichen grafischen Kurven schnell oder langsam sein müssen. Diese Kurven werden durch Beobachtung realer Instanzen von Objekten erstellt und in Spiel-Engines entsprechend gestaltet. Die Programmiersprache, mit der ich mich am besten auskenne, ist C #, und ich bin froh, dass Godot sie auch verwendet - sie ist auch wirklich großartig, da alle online verfügbaren Tutorials darin enthalten sind. Neben den Bewegungskurven habe ich durch das Anschauen ihrer Tutorials auch Folgendes gelernt: Augensteuerung, Animationsvokabular und die Grundlagen des Animationsdesigns. Ich würde mein Bestes geben, um die Entwicklung dieses Spiels zu erklären.

Als letzte Referenz habe ich mir Animation Bootcamp angesehen, das von Blender auf cgcookie.com veröffentlicht wurde. Der Schwierigkeitsgrad ist mittel und beträgt ca. 5 Stunden. Hier werden die Grundbegriffe von Animationen in 3D erklärt, wie das Auf- und Abspringen des Balls (wie er sich in der Mitte verlängert und am Ende komprimiert und wie die Zeit aufgeteilt werden muss) nach einem springenden Graphen). Ich habe auch einige Implementierungen dieses Bootcamps von YouTube Bloggern mitverfolgt, in denen die Charakteranimationen und Bewegungsabläufe näher erläutert wurden (wie die Bewegung glatt sein muss und jede Animation eine gewisse Dehnung oder Komprimierung aufweisen muss, damit sie aussieht) realistischer). Alle diese Referenz-Bootcamps waren für mein eigenes Lernen sehr hilfreich, da ich es bisher nur gewohnt bin, 2D-Animationen zu erstellen, bei denen jeweils nur eine Seite eines Zeichens sichtbar ist, sowie in der Umgebung (wie in Synfig Studio). Aber wenn es um 3D-Animationen geht, wird es etwas komplexer, und in diesem Szenario müssen wir alle Dimensionen berücksichtigen und sicherstellen, dass kein Kamerawinkel fehlerhaft ist.

Anwendungsfälle

Wie in den Richtlinien für die Einreichung von Godot gefordert, werde ich im Folgenden eine Verwendung dieses Spiels demonstrieren:

Ein Gif von Olaf Standing

Diese Animation beinhaltet einige Änderungen am Körpermodell, wenn er sich umschaut:

  1. Kleine Bounce an Ort und Stelle
  2. Kopf von links nach rechts drehen
  3. Blinkende Augen - leichte Pause beim ersten Blinken, und die nächsten beiden sind kürzer.
  4. Augenbrauen zucken und dehnen sich bei Bewegung aus.
  5. Gewisses Wackeln beim Stehen / Atmen, das dem Charakter Leben einhaucht (leichte Bewegung nach links und rechts)
  6. Hände, die einmal zittern, was auf eine Wende hindeutet.
  7. Haarbewegung vom Körper getrennt, leichter Hauch von Luft zwischen ihnen.
  8. Ändern Sie in seinem Schatten auf der Oberfläche, sowie kleinere Fußspuren, falls er sich bewegt.

Dies ist die vollständige Liste der Aktionen, die erforderlich sind, um den Charakter zum Stillstand zu bringen. Er kann auch sprechen oder sich hinsetzen, wie es die meisten Charaktere tun, wenn der Benutzer das Spiel unterbricht oder aufhört, sich zu bewegen, und es dem Spiel eine lebensechte Anpassung gibt und es letztendlich benutzerfreundlicher macht.

Betriebsplan

Wenn ich zum Betriebsplan dieses Projekts übergehe, müsste ich mich in fortlaufende Reihen aus Front-End und Back-End aufteilen. Der Grund, warum ich es nicht vorziehen würde, sie separat zu machen, ist, dass Sie nie wissen, wann eine Animation nicht mit der anderen übereinstimmt / passt, und dann müssen Sie zurückgehen und eine andere in der von Ihnen zugewiesenen Zeit erstellen Spielentwicklung selbst. Ein besserer Ansatz wäre es, dies nebeneinander zu tun. Lege eine Roadmap für das Spiel fest und folge diesem Plan bis zum Ende. Die Projekt-Timeline für dieses Animation Bootcamp für Godot würde also so aussehen:

Projektlaufzeit für 4 Monate

Ich würde den Workflow in diesen vier Monaten wie folgt aufteilen:

  • Mai: Lernen und Üben an Godot Engine sowie Fertigstellen des Designs Olaf and the Environment.
  • Juni: Entwicklung grundlegender Effekte des Spiels - Umwelt, Stehen, Schlittschuhlaufen, Laufen und Laufen.
  • Juli: Komplexere Effekte des Charakters - Springen, Schubkontrolle, Absturz, Kollision und Schmelzen.
  • August: Abschluss des Spiels (zusätzliche Funktionen (Musik), Alphatests) und Verfassen einer detaillierten Dokumentation des Entwicklungsprozesses und des letzten Schliffs für das Bootcamp.

Endziele

Wie ich bereits erwähnt habe, habe ich dieses Projekt hauptsächlich für meinen Google Summer of Code ausgewählt, weil mir Animationsdesign Spaß macht. Da es in Pakistan jedoch nicht viele Spiele-Engines gibt und ich keine Mentoren finde, die mir diese Art von Wissen beibringen, sind die meisten Dinge, die ich im Laufe der Jahre gelernt habe, Autodidakten. Eines der wichtigsten Dinge, die ich aus dieser Erfahrung mitnehmen möchte, ist mehr Wissen und Verständnis für die professionelle Spielentwicklung, damit ich später im Leben eine Karriere in dieser Branche verfolgen kann. Es wäre auch eine großartige Gelegenheit für mich, 3D-Animationen zu lernen (abgesehen von dem, was ich in Three.js Tutorials gelernt habe) und sie im wirklichen Leben umzusetzen.

Persönlich habe ich es sehr genossen, Godot Engine in meinem ersten Versuch zu verwenden, und ich denke, ich möchte mehr darüber erfahren und gute Kontakte zu Menschen knüpfen, die dafür arbeiten. Zuvor habe ich ein Praktikum für Open Learning Exchange absolviert, in dem ich ein oder zwei Dinge über die Zusammenarbeit in Open-Source-Projekten gelernt habe, aber ich glaube, dass dies meine Fähigkeiten noch weiter verbessern würde. Abgesehen davon denke ich, dass ich so in diese Idee der Spieleentwicklung investiert bin, dass ich es vielleicht über die Sommer hinweg schaffe, unabhängig davon, ob ich für diesen Vorschlag ausgewählt werde oder nicht mein eigenes Spiel eines meiner Lieblings-Disney-Charaktere "Olaf"!

Abschließend möchte ich Ihnen einige Empfehlungen geben. Wie kann ich meinen Lern- oder Denkprozess dahingehend verbessern? Bitte weisen Sie auf Mängel in diesem Vorschlag hin und senden Sie mir ein konstruktives Feedback. Vielen Dank!

Verweise

  • https://studio.code.org/s/frozen/reset
  • https://cgcookie.com/course/animation-bootcamp
  • https://www.schoolofmotion.com/animation-bootcamp#learn
  • https://godotengine.org/
  • https://unity.com/