Jump to content
Unity Insider Forum
Quellcode

Ablaufplan - ähnliche Animation - unterschiedliche Objekte

Recommended Posts

Guten Tag,

 

ich möchte mich einmal bei den Erfahrenen Usern erkundigen wie der beste Ablauf für die folgende Situaton wäre.

 

Es wird mehrere Tiere geben, diese sollen alle animiert sein (idle, walk, run, fight, die) nun sind manche Tier sehr ähnlich, daher frage ich mich ob ich eine Animation für mehrer Objekte nutzen kann.

Ich würde in Cinema 4D animieren oder wäre Blender die bessere Wahl?

 

Außerdem kenne ich mich noch nicht so gut im Bereich der Animation aus, gibt es hier ein tolles Tutorial welches die Abläufe zügig durchgeht?

Viele sind leider etwas langatmig und ich lerne schnell ;-)

 

Der zweite Punkt der mich interessiert ist, ob man mehrere Animation in einem Objekt speichern soll oder ob man die Animationen getrennt ablegen kann?

Aktuell sind meine Animationen über Cinema 4D in der FBX Datei enthalten, vielleicht kann man die Animation aber auch "entnehmen" ???

 

Ich bin dankbar für gute Links, Tipps & Tricks :)

Share this post


Link to post
Share on other sites

Welche Software du nutzt um die Animationen zu erstellen ist egal. Ich persönlich nutze Cinema4D aber Blender kann auch alles, was nötig ist.

Wenn du mehrere Tiere mit der gleichen Animation bestücken willst, dann muss dein Rig bei all diesen Tieren gleich sein. Also achte darauf, dass die Anzahl der Bones gleich sind und die Lage der Bones auch ähnlich ist. Sind die Unterschiede in der Lage zu groß, wirst du wahrscheinlich schlechtere Ergebnisse bekommen.

Du rigst jedes einzelne Tier und wichtest es. Danach speicherst du das fertige gewichtete Modell mit den Bones als FBX ab.
Die Animationen erzeugst du dann mit irgendeinem dieser Tiere. Es ist ja egal welches du nimmst, wenn sie, wie du sagst, ähnlich sind.
Sind deine Animationen fertig, dann speicherst du jetzt nur, die Bones mit den Animationen ab. Also ohne Mesh. Ob du alle Animationen in einer Spur abspeicherst oder jede Animation einzeln, ist deine Sache. Der Vorteil bei der einzelnen Abspeicherung ist, dass du bei einer Änderung oder Erweiterung einfach die andere Animation abspeichern kannst.
Ist es nur eine Spur, kann es sein, dass sich alle deine Animationen verschieben und du in Unity alle neu vereinzeln musst.

Ich habe vor vielen Jahren mal eine Tutorialreihe zum Riggen und Animieren gemacht und auch erklärt, wie man das nach Unity rein bringt. Das war natürlich eine alte Unityversion, wo es noch keinen Animator gab. Aber das ist relativ egal, hauptsache du siehst, wie man das macht.
Hier ist der Letzte Teil meiner Reihe, wo alles nach Unity rein kommt.

 

Vielleicht hilft es dir. Es sind insgesamt 9 Teile und wenn du die Muse dazu hast und etwas über die Vorgänge beim Animieren wissen willst, dann kannst du dir ja alle anschauen. :)

  • Like 1

Share this post


Link to post
Share on other sites

Vielen Dank!

Alleine schon die ersten 10 Minuten beantworten einen Großteil meiner Fragen von oben :)

Habe schon einige anderen Videos gesehn, aber da war es nicht so zielführend.

 

Schau mir im Laufe der Woche bestimmt noch die anderen Teile an!

 

Eine Frage bleibt noch offen bzw. ist diese neu entstanden.

Nun habe ich einen Hund (Beispiel) und dieser läuft, aber im Spiel soll er während dem laufen den Spieler ansehen.

Da die Animation aber normalerweise auch den Kopf betrifft - eben alles - frage ich mich wie man so etwas lösen kann ohne zig Animationen erstellen zu müssen.

Machte es hier vielleicht sogar Sinn den Kopf vom Körper zu trennen und die Animation nur auf den Körper anzupassen?

Den Kopf könnte man dann über Unity in beliebige Richtung drehen...?

 

Soweit mein erster Gedanke, aber vielleicht gibt es hier ja auch bessere Methoden?

Share this post


Link to post
Share on other sites

Ne, du brauchst den Kopf nicht vom Rumpf trennen, denn mit dem Animator ist es ganz leicht Layer zu erzeugen und eben Animationen zu mischen. Da dein Hund jetzt kein menschlisches Rig hat, also nicht als Humanoid Animation importiert werden kann, kann ich jetzt nicht genau sagen, wie man dem Animator sagt, dass nur gewisse Bones überblendet werden sollen. Aber das krieg ich raus. Wenn du wissen willst, wie das mit Humanoiden und vor allem mit dem Animator funktioniert, dann findest du auf meinem Kanal auch noch ne Videoreihe dazu.

Wie gesagt, ich schau mir morgen mal an, wie man Boneanimationen mit nicht Humanoiden Rigs überblenden kann. Das iteressiert mich jetzt selbst. :)

 

Share this post


Link to post
Share on other sites

Super! Schaue mir deinen Youtube Kanal definitiv nochmal genauer an.

Die Info zu den Layern ist auch gut, dann finde ich im WWW wieder einiges dazu :)

Danke!

Share this post


Link to post
Share on other sites

Okay, irgendwo hakt es doch bei mir.

Ich habe zum Start ein simpels Tier (eine Ente) genommen und möchte diese nur zum laufen bringen.

Modellierung (einfach) ist bereits fertig und auch die Animation zum laufen funktioniert.

 

Exportiere ich dies in einer Datei (FBX) kann ich in Unity auch die Animation abspielen, aber ich möchte die Animationen ja trennen.

Daher habe ich eine Datei "Duck.fbx" wo alles enthalten ist, außer die Animation (denke damit werden nur die Keyframes ausgelassen).

Und eine zweite Datei "Duck@walk.fbx" welche nur die Bones also "Root" (siehe Bild) enthält.

In Unity wird mir dann zwar das Vorschauvideo angezeigt, aber die Ente bewegt sich nicht.

Im o.g. Fall bewegt sich die Ente auch in der Vorschau.

 

Habe ich vielleicht einen falschen Aufbau? Muss das Root Element in die Ente oder anders herum?

Danke im Voraus für eure Hilfe!!

 

Duck.png

Share this post


Link to post
Share on other sites

Ne, ist schon richtig so. Du musst aber nicht unbedingt die Animationen vom Modell trennen. Du kannst auch alles zusammen abspeichern und dann die Takes in Unity splitten. Das sollte auf jeden Fall gehen. Die Animation als generic importiert werden.
Hier mal ein Video was wichtig für dich sein müsste. Dort zeige ich nämlich genau, wie man sowas macht, wenn deine Animationen mit dem Objekt zusammen abgespeichert werden.
Aber selbst wenn du das splittest, kannst du die einzelnen Animationen einfach in den Animator ziehen.


Ich habe heute mal einige Zeit versucht, den Kopf irgendwie per IK bei Generic Animationen anzusprechen. Ist mir nicht gelungen. Das geht echt nur im Mecanim System. Dumm da raran ist, dass alle Bones die nicht zu nem Menschen gehören (wie z.B. ein Schwanz oder die Ohren) werden nicht angesprochen, wenn man versucht ein Generic Rig als Humanoid zu importieren.

Vielleicht kannst du dein Anguckbewegung per Layeranimation einbinden. Das automatische Folgen des Kopfes in Richtung eines Zieles geht leider nur mit Humanoid.

 

Edit:
Wenn du nicht weiter kommst, dann kannst du mir das Modell auch mal schicken.

  • Like 1

Share this post


Link to post
Share on other sites

Danke für dein Video, die Layer sind nun klar und auch dieses Rückevent aus der Animation heraus wird mir in Zukunft helfen :)

Der Grund warum ich die Animationen in jedem Fall splitten will ist der folgende:

Bei einem simplen Tier wird die Anzahl der Animationen überschaubar sein, daher könnte ich auch alles zusammen in eine Datei packen.

Aber bei Menschen (welche später folgen) wird die Anzahl der Animationen immer weiter steigen und ich kann nicht absehen wie viele es werden.

Zum einen wird es in Cinema dann wirklich unübersichtlich und zum anderen hat man auch schnell mal einen kleinen Fehler drin, welche dann die folgende Animation "zerstört".

 

Bei meiner Ente ist mir noch aufgefallen, dass im Vorschau Video die Ente still ist, aber unter der Ente bewegt sich das "Koordinaten Kreuz" demnach wird hier irgendwie die Verbindung fehlen oder der Skalierungsfaktor ist verschoben???

Ist beides aus der selben Datei, daher weiß ich nicht wo das Problem auftaucht.

Edit:

Habe dir auch eine PM gesendet mit Link zum File.

Share this post


Link to post
Share on other sites

Pm habe ich eben beantwortet. Hier aber nocheinmal für alle, die es interessiert:

Wenn eine Animation in Ciema erstellt wird, und ich denke das ist bei vielen Softwaren ähnlich, dann wird ja nicht jedes Frame eine neue Info erzeugt, sondern man hat z.B. bei Frame 0 einen Key gesetzt, wie der Bone jetzt gerade steht. Bei Frame 10 wird dann wieder ein Key gesetzt, nachdem man den Bone etwas gedreht hat. Man hat also einen Startzustand und ein Endzustand, weiss aber nichts von den Zuständen dazwischen. Das ist schon mal blöd, denn Unity kann ja nicht wissen, ob die Drehung linear oder in einer Beschleunigung stattgefunden hat. In der Animationssoftware ist das ganz klar, weil da noch andere Infos vorhanden sind. Das sind aber interne Infos die nicht unbedingt mit FBX übergeben werden.
Dann ist es so, dass in Cinema ohne weiteres ein Vaterobjekt eines Bones gedreht werden kann, und so hast du dasja  in deiner Animation auch gemacht, die dann den Bone mitdreht.
Der Bone selber hat jetzt aber gar keine Drehung gemacht sondern hat sich nur in dem "Lokalen" System gedreht.
Unity braucht aber dringend informationen der Bonedrehung, die leider nicht abgespeichert ist. Deswegen muss man die Animationen backen, bevor sie exportiert werden.
Beim Backen wird für jedes Frame die Lage des Bones als Key gesetzt, die er ja durch andere Dinge, wie dem Vaterobjekt, erst bekommen hat. Jetzt kann Unity damit umgehen, denn Unity will echt nur wissen, wie der Bone sich von frame zu frame gedreht hat.
Unity selber reduziert dann auch wieder diese Informationen, wenn es z.B. erkennt, dass sich der Bone über mehrere Frames garnicht bewegt hat. Aber das ist dann wieder intern, nur für Unity zu verstehen.

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

×