Jump to content
Unity Insider Forum

Animator Problem: Preview ändert sich, obwohl ich keine Werte ändern. Unity Bug?


Thariel

Recommended Posts

Hi

Ich versuche, dass der NPC hoch springt. Wenn ich die Animation im Preview anschaue, stimmt die Animation nicht, weil der NPC an Ort und Stelle bleibt und sich nicht nach oben bewegt. Sobald ich aber irgend etwas anklicke, dann klappt es plötzlich. Die Animation ist dann korrekt, bis ich den Animator verlasse und wieder öffne. Dann ist wieder das selbe Problem. In-Game hat mein NPC leider immer die erste Version der Animation. Bekomme es einfach nicht hin, dass er sich aufwärts bewegt...

Hier ein GIF:

08-04-_2018_16-21-58.gif

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich denke mal du störst dich an der fehlenden Root-Motion. Diese kannst du hier einstellen und zwar unter "Root Transform Position (Y)" / "Bake Into Pose". Für eine Bewegung des NPCs nach oben über die Animation sollte da kein Haken gesetzt sein:
https://docs.unity3d.com/Manual/RootMotion.html

Zudem muss im Animator "Apply Root Motion" aktiviert sein:
animator_component.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi

Nein, das ist nicht das Problem. Ich konnte die Root Motion Einstellung in der Animation auch nicht finden, hab da nur ein einziger Haken: Loop oder nicht loop.

inspector.jpg.39b0cf4fec25ddcdc9fc4f556ba09c73.jpg

Das Problem ist: Wenn ich im Animator die Transition der Animation "Idle"->"Jump_Up" im Preview anschaue, dann Springt der Charakter in der Vorschau nicht hoch, sondern bleibt an Ort und Stelle. Sobald ich aber in den Transition Settings irgend etwas klicke, auch wenn ich nur einen Wert ändere und den gleichen wieder eingebe, dann springt er im Preview plötzlich hoch, so wie es sein sollte (obwohl eigentlich gar nichts geändert wurde). Wenn das Animator-Window den Fokus verliert, weil ich zum Beispiel in der Szene etwas mache und erneut in den Animator gehe, tritt das selbe Problem erneut auf.

Das eigentliche Problem ist, dass der Charakter In-Game bei der Jump_Up Animation an Ort und Stelle bleibt und bei der Nachfolgenden Jump_Down Animation herunter springt. Aber er soll ja bei der Landung wieder an der selben Position wie vorher sein:

klick.gif

Ist alles irgendwie ziemlich Mysteriös...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bei in Unity erstellten Animationen ist es ein wenig anders (.anim-Files) als bei FBX Files. Hier kann man sich entscheiden, ob Root-Motion-Data erzeugt werden soll oder nicht. Dein Problem könnte wie gesagt schon damit zusammenhängen, zudem du dir scheinbar nicht im Klaren darüber bist, ob deine Animation Root-Motion verwendet oder nicht:
https://unity3d.com/de/learn/tutorials/topics/animation/authoring-root-motion

Das kein Button fürs Erzeugen von Root-Motion da ist könnte daran liegen, daß du nur Childs deines Animationsobjektes animierst.
 

Zitat

Das eigentliche Problem ist, dass der Charakter In-Game bei der Jump_Up Animation an Ort und Stelle bleibt und bei der Nachfolgenden Jump_Down Animation herunter springt. Aber er soll ja bei der Landung wieder an der selben Position wie vorher sein:

Aber laut deines Gifs von oben hat deine Jump Up-Animation auch keine Bewegung des deines Sprites nach oben, nur die Jump Down schiebt das Sprite nach unten. Sieht also nach "einem Fehler" in der Jump-Up-Animation aus.
Für mich sind aber beiden Animationen seltsam. Entweder man steuert die Y-Position des Sprites per Skript oder eben nicht und dann sollten die Animationen des Sprites entweder NICHT nach oben und unten bewegen oder eben in einer konstanten Art und Weise nach oben und unten, so daß das Sprite wieder an seiner Ausgangsposition landet. Beides vermischt (wie in deinem Fall) macht keinen Sinn.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 7 Stunden schrieb Zer0Cool:

Aber laut deines Gifs von oben hat deine Jump Up-Animation auch keine Bewegung des deines Sprites nach oben, nur die Jump Down schiebt das Sprite nach unten. Sieht also nach "einem Fehler" in der Jump-Up-Animation aus.

Genau! Das ist der Kern des Problems, wie du in meinem ersten GIF siehst.

vor 14 Stunden schrieb Thariel:

Wenn ich die Animation im Preview anschaue, stimmt die Animation nicht, weil der NPC an Ort und Stelle bleibt und sich nicht nach oben bewegt. Sobald ich aber irgend etwas anklicke, dann klappt es plötzlich. Die Animation ist dann korrekt, bis ich den Animator verlasse und wieder öffne.

08-04-_2018_16-21-58.gif

Hier im GIF siehst du, dass die Jump_Up Animation sehr wohl eine Bewegung nach oben hat. In den ersten Sekunden siehst du, wie sich die Animation auch In-Game verhält (bleibt an Ort und Stelle), dann klicke ich einen Haken, den ich gleich wieder deaktiviere... und schon Stimmt die Animation.

Dieses Asset habe ich gekauft und die Animation funktioniert in einer anderen Demo Szene. Dann ist es wohl eher ein Bug...?

Wir drehen uns ein wenig im Kreis ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es könnte ein Bug sein, oder aber ein schlechtes überblenden von der einen Animation zur nächsten.
So wie ich es sehe, wird bei dir die Transformkomponente animiert, also die y Achse. Möglicherweise (weil das überblenden zu lang ist, wird aber eben die Y Achse nicht richtig übergeblendet, weil der Anfangswert verschluckt wird.Schau mal, ob sich etwas ändert wenn du den Offset-Wert veränderst oder die Duration verkleinerst bzw. auf 0 stellst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 10 Stunden schrieb malzbie:

Es könnte ein Bug sein, oder aber ein schlechtes überblenden von der einen Animation zur nächsten.
So wie ich es sehe, wird bei dir die Transformkomponente animiert, also die y Achse. Möglicherweise (weil das überblenden zu lang ist, wird aber eben die Y Achse nicht richtig übergeblendet, weil der Anfangswert verschluckt wird.Schau mal, ob sich etwas ändert wenn du den Offset-Wert veränderst oder die Duration verkleinerst bzw. auf 0 stellst.

Bringt leider nichts. Hab schon sooo viel ausprobiert. Im Preview passt es immer, nachdem ich wie oben erwähnt etwas ändere, aber In-Game nie.

vor 1 Stunde schrieb Kojote:

Ich hab zwar nix sinnvolles bei zu trage, jedoch muss ich mal los werden, dass mir das Design der Jellys sehr gut gefällt. ;)

Das ist ein Asset aus dem Store. Kannst du hier kaufen.

Auch weil es ein Asset aus dem Store ist und die selbe Animation in einer Demo Szene einwandfrei Funktioniert, denke ich da an einen Bug.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich weiß nicht ob wir 2 aneinander vorbei reden.
Ich sehe, dass die Gummiviecher für jede Richtung eine separate Animation haben. Aber wie es immer so ist, sehe ich nicht was denn wirklich alles animiert wird.
Es kann sein, dass die Bewegung im Raum (X und Y) animiert sind, es kann aber auch sein, dass die Bewegung per Code synchron zur Animation gemacht wird.

Immer dann, wenn jemand etwas selber steuert oder es sich selbstständig im Raum bewegen soll, wird normalerweise die Position im Raum nicht animiert. Nur das Erschinungsbild, wärend dieser Bewegung, wird animiert. Das bedeutet natürlich nicht, dass man nicht auch die Bewegung im Raum mit animieren kann, dann braucht es aber einen Bezugspunkt, wie man ihn bei MoCap Animationen hat.
Sollten diese Jellys auch die Transformkomponente animieren, und du setzt per Code zusätzliche Postionsangaben oder ordnest das Objekt einem anderen Objekt unter, kommt es schnell zu Problemen. Das ist dann kein Bug, sondern die Werte überschreiben sich einfach.

Deswegen mach bitte mal einen Screenshot von einer einzigen Hüpfanimation, wo ich sehen kann, welche Dinge alle animiert sind.
Ich würde also gerne mal die Animationspuren von der Jump Up Animation sehen, was im Animator passiert ist mir egel, denn da sieht man nur Blackboxen. :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

OK.
Charakter Rig Position ist das Überobjekt, welches wohl auch animiert wurde, also die Hochbewegung im Raum.
Ich war auf der Storeseite und habe mir die Videos vom Ersteller dazu angeschaut. Außerdem war ich auf der Unity Forenseite von ihm, wo weiter unten ein paar Dinge per Video erklärt wurden.
Ich kann sagen, dass dein Verhalten kein Bug ist. Die Animationen der einzelnen Unterobjekte sind auch alles räumliche Bewegungen im Bezug zum Oberobjekt. Und die funktionierren ja auch einwandfrei.
Das Hoch und Runterspringen z.B. wird in deiner Beispielszene direkt hintereinander ausgeführt. Zum Beginn hat der Wesen die Position von Idle und ändert dann bei Sprung die Y Position.
Mit der neuen Y Position wird dann gleich danach die Runtersprungbewegung vollzogen und des Wesen kommt dann wieder zur urspünglichen Position zurück.
Wenn du jetzt 2 Mal hintereinander springen wolltest, würde der zweite Sprung nicht von der Position nach dem ersten Sprung gemacht werden, sondern von der Ausgangsposition.
Und genau das siehst du in deinem PreviewGif ganz oben. Das Previewfenster hat scheinbar Probleme mit dem Blenden von Idle zum Sprung, weil die Y Animation nicht richtig interpretiert werden kann. Nach dem Klick auf den Haken, werden scheinbar die Werte nochmal eingelesen und dann zeigt er es auch mal richtig an.
Ich könnte aber wetten, dass die Animation im Previewfenster richtig angezeit wird, wenn du in deinem Animationsfenster, welches du als letztes gepostet hast, die Animation abspielst.

Wie gesagt. Diese Animation bringt dir wahrscheinlich eh nichts, wenn du nicht gleich wieder zurück springst. Und selbst dann ist sie nur als optischer Gag da.

Wenn du das Wesen steuern willst, dann machst du die Bewegung per Script. Wärend der Bewegung spielst du eine Animation ab, die aber selber keine räumliche Bewegung vollzieht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...