Jump to content
Unity Insider Forum
Sign in to follow this  
DerStefan

Unklarheiten bezüglich Animation Controller (2D)

Recommended Posts

Hallo Leute,

ich versuche eine ganz simple Animation zu erzeugen, scheitere aber völlig.
In diesem Beispiel soll einfach der Fuß etwas rotiert werden.

Ich habe dafür folgendes gemacht:
- Ordner namens Animation in Assets angelegt
- innerhalb dieses Ordners einen neuen Animation Controller angelegt
- danach hab ich auf Create geklickt und eine Idle.anim erstellt
- im nächsten Schritt "Add Property" und das Objekt ausgewählt, das ich animieren will (vorderen Fuß)
- die Key-Frames befinden sich standardmäßig bei 0:00 und 1:00 (Sekunden)
- nun klicke ich auf Record, springe zu 0:40 und gebe im Inspector 5 ein (Rotation Z).
- es sieht alles korrekt aus und ich klicke nochmals auf Record, um die Aufnahme zu beenden.

Es funktioniert jedoch NICHT!
Spiele ich die soeben erzeugte Animation ab, ist der Wert der z-Rotation bei über 150, obwohl ich nur 5 eingegeben hatte.
Wenn ich in das Tab "Curves" springe, hilft es auch nicht, überall Rechtsklick und "Flat" auszuwählen.
Klar kann ich alles händisch korrigieren, aber das ist sicherlich nicht im Sinne des Erfinders...

Mache ich was falsch oder ist das irgendein "Bug"?

Danke für jede Hilfe!

Viele Grüße

unityAnimatorProblem.gif

Share this post


Link to post
Share on other sites

Du machst was falsch!
Lass das mit dem Record Butten mal sein. Geh auf 0:40 und drehe deinen Fuss einfach in den Winkel, den du haben willst. Dann klickst du auf den "Set Key" Button, direkt neben deiner Frameanzeige (da wo die 60 steht) und fertig.
Diese Automatische Aufnahme gibt es in jeder 3D Software und auch hier. Aber im Endeffekt hast du nur die richtige Kontrolle, wenn du da manuell ran gehts.
Ob du nun einen Wert für eine Achse direkt einträgst, oder aber das Objekt im Editor Fenster bewegst, bis es für dich richtig aussieht, ist egal.

  • Thanks 1

Share this post


Link to post
Share on other sites

Hi und Danke für deine Antwort!

Also es klappt jetzt auf jeden Fall besser.
(Im Tutorial sieht das alles echt kinderleicht aus...)

Ich habe übrigens gemerkt, dass es die Option "Atomic" gar nicht mehr gibt.
Anscheinend wurde sie durch "Settings -> Interruption Source" ersetzt.
Wenn ich zwischen Idle (nichts tun) und Laufen wechseln möchte,
dürfen beide Animationen die Option "Has Exit Time" NICHT angekreuzt haben.
Ansonsten würde die jeweils aktuelle Animation immer erst zuende abgespielt werden,
bevor in eine andere gewechselt werden kann.
Schnelles Stop-And-Go wäre also nicht möglich, wenn "Has Exit Time" angekreuzt wäre.

Hab ich das soweit richtig verstanden?

Ich hatte jetzt noch das Problem, dass meine Sprung-Animation, welche nur aus 1 Haltung bestand
(beide Füße etwas angehoben und rotiert), auf meinen eigentlichen Charakter Einfluss nahm.
Die idle-Animation und die Lauf-Animation hatten dann plötzlich auch umpositionierte Füße.

(Unten in der GIF hab ich das anhand der idle demonstriert.)

Nach einigen Versuchen hat es dann aber endlich geklappt.
Schade dass es oftmals Glückssache ist, ob es nun wirklich funktioniert oder nicht.
(Für mich zumindest.)


Der Autor des Tutorials hatte das hier gemacht:
g4x2ty55.png

Mein Problem war daraufhin das hier:
s4anmqxj.gif

Ich hatte explizit NICHT auf den Record-Button gedrückt, weil der wieder mal zu sehr seltsamen Ergebnissen führte.
(Füße waren dann wieder 1 Meter vom Körper usw. entfernt - hab dann alles rückgängig gemacht.)

Ja, das sind hier alles Kleinigkeiten, aber da es 0-Basics sind, sollten keine Unklarheiten vorhanden sein.
Ich mache mir bei einem Hausbau ja auch keine Gedanken über das Kino-Zimmer, wenn ich nicht mal 2 Ziegelsteine verbinden kann...
0-Basics sind Voraussetzungen für ALLES.


Mfg

Share this post


Link to post
Share on other sites

Das Ganze Animationssystem von Unity ist noch lange nicht so gut, wie es echte 3D Programme wie Cinema4D, Maya, Blender usw. sind. Aber die Verbessern das System ständig und bringen Erweiterungen rein. Natürlich ändert sich von version zu Version dann einiges im Namen oder aber in der Menüposition. Das ist doof, wenn man gerade anfängt und dann beim Versionswechsel alles nicht mehr so ist wie man es kennt. Aber du siehst ja selbst, dass man die Dinge dann doch wieder findet. :)

Das mit der Exit Time hast du richtig erkannt. Wenn der Haken gesetzt ist, wird die Animation bis zum Ende abgespielt und erst dann gibt es die Transition zum anderen State.
Hast du da einen Animationsloop, kann das Wechseln zum anderen State mal schneller, mal langsamer passieren. Je nachdem wo die Animation gerade in deinem Loop ist.
Meiner Meinung nach macht ExitTime nur dann Sinn, wenn man die Animation per Trigger startet und sie, nachdem sie einmal durchgelaufen ist, automatisch in einen anderen State wechseln soll. Du hättest also eine Transition von dieser Animation weg, ohne dass du eine Bedingung dafür nutzt, aber eben die ExitTime angehakt ist.

Wenn du bei deiner Sprunganimation die Füße drehst, musst du auch schauen, dass sie wieder zurück gedreht werden, wenn du wieder gelandet bist. Denn wenn die Laufanimation nur die Fußposition animiert, dann bleibt natürlich die Drehung so, wie sie beim Sprung war.

Eine Sache, die der Autor gemacht hat, aber du scheinbar nicht, ist die Verschachtelung der Sprites. Die ganzen Einzelteile sind Kinder des Überobjektes "Textures". Wenn er da die Füße animiert, dann sind diese Änderungen immer auch im Bezug zum Überobjekt. Gerade bei Positionsanimationen ist das wichtig, denn du willst ja nicht, dass der Fuß sich in der Welt bewegt, sondern nur im Bezugssystem des Überobjektes.

Ich persönlich bin kein Freund von 2D Animationen, wo der Charakter aus mehreren Einzelteilen besteht. Ich erkenne klar die Vorteile bei diesem Style, aber ich würde eher einfach nur die Sprites wechseln. Ganz so, wie es zur alten Zeit war. Klar, das kostet mehr Speicherplatz weil man viele Sprites malen muss und man kann dem Männchen nicht mal einfach so ne andere Waffe geben. Dafür hat man aber viel mehr Möglichkeiten und Freiheiten bei der Gestaltung und man muss nicht jedes Einzelteil mit animieren.

Zum Lernen ist das, was du da machst, aber ganz nützlich. Also schön weiter machen. :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×