Animationsproblem behoben!

Man, so kanns echt weitergehn ;)!

Mein wohl größter, noch ausstehender Bug bis zur MediaNight wurde endlich behoben! Die Maus hat 3 verschiedene Animationen: laufen, sterben und springen. Die einzubauen war eine Katastrophe, da ich damit überhaupt keine Erfahrung habe und mich eigentlich um andere Dinge kümmern wollte. Aber wie sieht denn das aus, wenn die Maus läuft, als sei sie grad erstochen worden! Also hab ich mich nochmal intensiv damit beschäftigt. Die „Lauf-Animation“ bestand aus 35 Bildern. Was ich beim Export allerdings übersehen hatte, war dass die ersten 5 Bilder noch keine Animation stattfand, die Maus also nur da stand. Das hat beim Abspielen als Loop natürlich dann erhebliche Ruckler gegeben. Den Fehler hab ich jetzt behoben, in dem ich meinen „Start“ einfach auf Frame 5 und mein Ende auf Frame 35 gelegt habe. Läuft jetzt wie geschmiert ;)!

Das 2. Problem war das Springen. Entweder die Animation wurde dann die ganze Zeit ausgeführt, oder garnicht oder nur halb. Um das zu beheben, habe ich die Jump-Animation auf den Layer 1 gesetzt. Das heißt, sie hat höchste Priorität und die anderen Animationen (Lauf-Animation) setzt aus, um der Spring-Animation platz zu machen!

var jumpingLayer = 1;
var jump = animation[„mouse_jump“];
jump.layer = jumpingLayer;
jump.wrapMode = WrapMode.Once; 

Das 3. Problem war auch bei der Lauf-Animation zu finden. Die Maus lief wunderbar los, aber sobald ich W oder S nicht mehr gedrückt hielt, stoppte sie in mitten der Animation. Das lies sich vermeiden, durch die Einführung einer „Idle-Animation“, die immer dann einsetzt, wenn die Maus nicht gesteuert wird.

if(!dead) {
    if(moving) {
      animation.move
   }else {
      animation.idle
   }
else {
   animation.die
}
Unity kann schon tolle Sachen… Das einzige Problem, das ich jetzt noch mit den Animationen habe, ist das Sterben. Die Maus stirbt zwar, mittlerweile sogar nur einmal, doch ich kann sie weiterhin steuern. Das sollte noch definitiv behoben werden.

So far =)!


Unity-Insider sei Dank!

Wooooooooah ich bin so froh =)))! Nachdem ich mit diesem Combo-Script beinahe verzweifelt bin, hab ich mal in nem Forum nachgefragt, ob die eine Idee haben (http://forum.unity-community.de/). Jedenfalls kamen sehr schnell 2 sehr gute Antworten, ich entschied mich für die einfachere, nicht ganz so dynamische Umsetzung und bastelte jetzt ca. 3h rum. Endlich funktioniert das Combo-Script, jetzt müssen nur noch die Fähigkeiten eingebaut werden. Aber das krieg ich ja mit links hin, höhö! Meine Combo-Bilder verzerrt es leider grade wieder ein bisschen, aber das ist mir jetzt ehrlich gesagt auch egal. Kann nicht ständig an einer Sache hängen.

     

Als nächstes nehm ich mir nochmal die Anpassung der Menüs vor. Ein Zielschild im Spiel gibts jetzt auch schon, vielleicht noch einen Screen dazu mit erreichter Punktzahl und die Sache sieht doch langsam nach was aus. Danach wird es Zeit sich um die Animationen zu kümmern. Laufen kann die Maus zwar schon, aber die Animation zerfetzt es mir irgendwie immer. Springen funktioniert und sterben funktioniert auch. Allerdings kann ich sie nach dem Sterben noch steuern. Ist ja nicht so Sinn der Sache ^^!

So far =)!


Verflixte Auflösung…

Nachdem ich Stundenlang an der Auflösung der Menüs rumprobiert habe, und diese sich immer verschieben und rumspacken, hab ichs jetzt seingelassen und mach es ganz stupide:

  • Szene MainMenu öffnen
  • Plane einfügen und den Hintergrund als Textur draufmachen
  • Camera so einstellen, dass sie das Bild im Blick hat
  • Licht hinzufügen… fertig.

Ist echt nicht die beste Lösung, funktioniert aber ansatzweise.

Beim IngameInterface bin ich drauf gekommen GUITexturen zu verwenden. Die kann ich nämlich vernünftig positionieren, ohne die ganze Zeit raten zu müssen, welche Zahl im Script jetzt passt. Desweiteren hock (verzweifel) ich grade am Comboscript. Das will noch nicht so ganz. Will es mit nem Array irgendwie machen, aber klappt noch nicht so ganz.

 

Paar Stunden später…

Finde die Skybox macht ne bessere Atmo =)! Auflösung ist nun 1280×720! Mit dem Array bin ich noch nicht weitergekommen 8(!


38 days later…

Wenn man sich den letzten und diesen Screenshot einmal anschaut, dann ist schon einiges passiert…

Aktueller Stand:

  • Charaktersteuerung ist beinahe fertig
  • Karotten fliegen wie geplant von links nach rechts
  • Tomaten bewegen sich zwischen 2 Hindernissen
  • Das Gemüse dessen Namen mir nicht einfällt ist animiert und spawnt schonmal
  • IngameInterface ist grob fertig, Healthanzeige funktioniert, Kombosystem funktioniert ansatzweise
  • Hintergrund erstellt
  • MiniMenü kann während des Spiels mit F1 aufgerufen werden
  • Spiel kann mit ESC beendet werden
  • MainMenu und GameOverMenu sind fast fertig
  • Maus ist fast fertig animiert und führt diese Animationen meist wie geplant aus
  • Scoreanzeige funktioniert, ist aber grafisch noch nicht implementiert
Zu erledigen:

ToDo: InGame Interface

  • Health Anzeige mit 0 Health fehlt noch/evtl. ausgrauen?
  • Scoreanzeige muss noch gemacht werden/evtl. oben einfach braunen Balken machen?
  • Hintergrund für das MiniMenü anpassen (need Grafik)
  • Ziel fehlt noch. Evtl. Schild oder Erhöhung oder irgendwas wo „Ziel“ bzw. „GOAL“ draufsteht
  • Die 3 Combos mit Blumenkohl erstellen
ToDo: MainMenu
  • Startscreen
ToDo: GameOver
  • Received Points Text weg
  • Score Text anpassen
  • Auflösung anpassen
Todo: Animation und 3D
  • Idle Animation wird noch benötigt, bei der die Maus nur ihren Kopf bewegt z.B. (20 Frames maximal)
  • Kartoffel-Modell fehlt noch (kann auch durch das andere ersetzt werden, haben derzeit kein Boss!)
  • Leveldesign fehlt (evtl. Wassergräben einbauen)
  • Interface muss weiter bearbeitet werden, Auflösung lässt sich nicht richtig anpassen…
  • IngameInterface.js – durchläuft die Combos 1 mal pro Sekunde (extra Funktion muss her)
Todo: Programmierung
  • PlayerHealth.js – Spieler sollte wenn er tot ist nichtmehr gesteuert werden können
  • EnemyPotato.js – Kartoffel muss noch hüpfen
  • Combo.js – Komplett überarbeiten
  • Bullet.js – Player kann durch Objekte durchschießen
  • Ziel am Ende des Levels einbauen
Todo: Sound
  • evtl. Sound wenn Maus ins Ziel einmarschiert?
  • GameOver Sound?
  • Sounds lautstärketechnisch noch anpassen
Todo: Sonstiges&Bugs
  • Credit Screen als Grafik mit allen Namen und Jobs (Programmierung, Grafikdesign etc.)
  • Wenn Maus rückwärtsläuft, evtl umdrehen
  • aus Kartoffel Blumenkohl machen
  • Punkte vergeben für die jeweiligen Units
  • wenn Maus dmg bekommt evtl. Blinken/nach hinten fallen?
  • Gegner animieren



Anforderungsliste – Was, wer, wann, wo, weshalb, warum?

Bevor ich mit der Programmierung unseres Spiels losgelegt habe, hab ich mir erstmal grob überlegt, was wir denn alles benötigen. Welche Klassen, Funktionen, Eigenschaften etc. Daher werde ich hier mal einen Überblick geben und eine To-Do Liste anlegen…

Werde versuchen sie aktuell zu halten =)!

Objekte:

  • Charakter (Maus) ✔
  • Gegner (Karotten, Tomaten, Kartoffeln) ✔
  • Endgegner (Blumenkohl) ✔

Level:

  • Hindernisse (Strohballen ✔, Strohkästen ✔, Wassergräben)
  • Hügeliger Boden
  • Hintergrund in 2D (Berge, Wolken ✔, Bäume, Sträucher,..)
Fähigkeiten:
  • Maus (schießen ✔, springen ✔, rennen ✔)
  • Karotten (fliegen von links nach rechts ins Bild) ✔
  • Kartoffeln (hüpfen sinuskurvenartig von links nach rechts durchs Bild)
  • Tomaten (bewegen sich zwischen Hindernissen hin und her ✔, erstellen rutschige Schlammpfützen)

Specials:

  • Combosystem

Sound:

  • ingame Sound Loop ✔
  • Hauptmenü Sound ✔
  • Sound beim Erschießen von Gegnern
  • Sound beim Sterben der Maus
  • Sound beim Töten der Gegner

Animationen:

  • Maus – springen ✔
  • Maus – laufen ✔ (läuft noch nicht ganz sauber)
  • Maus – sterben ✔ (stirbt leider noch in loop)
  • Tomaten – spucken
  • Blumenkohl – drehen ✔

Menü:

  • Start Menü (Start ✔, Credits ✔, Quit ✔)
  • Ingame Menü (Resume, Options, Quit)
  • Game Over (Score ✔, Retry ✔, Menu ✔)

Ingame Interface:

  • Health-Anzeige ✔
  • Score-Anzeige ✔
  • Combo-Anzeige ✔
Licht:
  • Objekt beleuchten
  • Umgebung beleuchten
Sonstiges:
  • Spawn Punkt ✔
  • Ziel Punkt
  • Gegner Objekt wird zerstört wenn x < 0 ✔

Bugs:

  • Schüsse gehen durch die Wand
  • Wenn die Maus runterfällt wird noch kein Leben abgezogen
  • Combos funktionieren noch nicht richtig
  • Animation „die“ kommt in Loop
  • Animation „walk“ ruckelt
  • Tomaten lassen sich nicht einfügen
  • Kartoffeln hüpfen noch nicht

Die Pille kann laufen!

Ich denke mal eine Projektbeschreibung wird noch folgen, deswegen spar ich mir das hier jetzt erstmal und komm direkt zur Sache.

Ich habe noch nie zuvor mir Unity3D gearbeitet. Darum habe ich mich zuerst einmal durch zigtausend Tutorials gekämpft. Besonders wertvoll und hilfreich war das

UNITY: 2D Gameplay Tutorial (Quelle: http://unity3d.com/support/resources/tutorials/2d-gameplay-tutorial.html) und das

UNITY: 3D Platform Game Tutorial (http://unity3d.com/support/resources/tutorials/3d-platform-game).

Der perfekt Einstieg für Programmierer, die sich erstmal nicht mit 3D-Modellen und Grafiken sowie LevelDesign rumplagen, sondern direkt scripten wollen. Die Scripte sind sehr gut kommentiert, waren für mich aber anfangs meist noch zu komplex. Ich wollte erstmal einen groben Einblick und das wichtigste verstehen.

Da ich ein Mensch bin der immer Hals über Kopf direkt drauf loslegen möchte, hab ich einen ersten Test gestartet, ob ich das Gelernte auch verstanden habe.

Zunächst habe ich mal das grobe Umfeld angelegt. Einen netten Hintergrund ausgewählt, eine 2D Berge Textur (2 Minuten Photoshop =D) die ich auf eine Plane gelegt habe, einen grün gefärbten Boden und eine äh braune Pille als Spielcharakter sowie ein rotes Quadrat als Feind. Mit der GUI hab ich mir noch nicht wirklich mühe gegeben und jeweils 2 GUI.Labels angelegt, die die Gesundheit und die Score ausgeben sollen. Die Score hab ich direkt zurückgestellt, hat nicht geklappt wie ich das wollte. Die Healthanzeige hat wie geplant funktioniert. In diesem ersten Schritt war es nach viel Arbeit und Rumprobieren möglich einen Character zu steuern, Feinde zu spawnen, die von rechts nach links durchs Bild laufen und diese zu erschießen. Das wars dann aber auch schon. Habe mich nach diesem ersten Versuch dann an die richtige Umsetzung gewagt.

Weitere hilfreiche Tutorials:

– http://www.youtube.com/watch?v=EW0phq6xoJk – Tutorial Serie von jiddabug21

– http://www.youtube.com/watch?v=WmXZDSEK65U – Tutorial Serie von infiniteammoinc


Getting started…

Es folg eine kurze und schmerzlose Einleitung ;)!

Dieser Blog beschreibt das Projekt „DangerMouse“, das von 5 Studenten an der Hochschule der Medien in Stuttgart-Vaihingen durchgeführt wird. Einen wachsenden Fortschritt zu sehen spornt schließlich immer an und eine Art Projektdokumentation ist immer gut!

Wir möchten euch hiermit unsere (vor allem meine) blutigen Anfänge präsentieren und stehen jederzeit für Fragen zur Verfügung.

Da Grafiken und Animationen bereits bereitliegen, wird auf die Entstehung dieser vermutlich nicht eingegangen. Der Blog konzentriert sich in erster Linie auf die Programmierung mit Unity3D.

In dem Sinne,

viel Spaß =)!