Jump to content
Unity Insider Forum

Zerknautschter Character


Kojote

Recommended Posts

Hi!

Für UMA muss ich die Bone Struktur meines Modells ändern.

Vorher sah sie so aus: CG/Pelvis/...

Jetzt: Root/Global/Position/Pelvis

Exportprobleme gab es nicht und das Grundmodell ist nun in Unity.

Nun muss ich auch noch die Animationen mit der neuen Bone-Struktur versehen, was ich hier auch zum Beispiel machte:

https://ibb.co/njDHw1Z

Das Modell sieht im 3D Programm gut aus, auch die Animation funktioniert da.

Hole ich es mir in Unity und setze ich es in die Scene, sieht es auch normal aus:

https://ibb.co/RpfGtTY

Dies sind die Modellimporteinstellungen:

https://ibb.co/5jRKsx8

Im Rig sieht es so aus:

https://ibb.co/dWXJSTB

Und in den Animationen sieht es so aus:

https://ibb.co/pLmSBzx

Ich sitze jetzt seit Tagen an der Animation und mir fällt nix mehr ein. Ich habe schon alle möglichen Ideen mit den Exporteinstellungen durch. In Blender bekomme ich nicht mal neue Bones rein. Hier sieht alles vollkommen OK aus, bis die Datei als Animation verwendet werden soll.

Hat wer eine Idee?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe gerade noch zwei Editor gefunden, mit denen man in Unity die Animationen umbenennan und ergänzen kann. Merkwürdigerweise passiert hier genau das selbe mit dem Modell aus dem 3D Programm. Gerade beim zweiten konnte man sehen, dass gerade die Bones in den Beinen zum Körper hin gezogen werden. Als hätten die Bones eine Skalierung.

https://answers.unity.com/questions/38941/how-to-rebind-animated-variable.html

https://raw.githubusercontent.com/s-m-k/Unity-Animation-Hierarchy-Editor/master/AnimationHierarchyEditor.cs

Was meinst du mit Gewichtung und was kann man dagegen machen, hast du da eine Idee?

Link zu diesem Kommentar
Auf anderen Seiten teilen

OK, dann muss ich da noch mal genauer nachschauen. Eigentlich hab ich mir deswegen extra den Original CG Bone dupliziert und nur umbenannt, dass gar nichts von wegen Rotation und Ausrichtung sich ändert. *grübel*

Wenn ich jetzt mal das Modell neben das Original lege, ist es max. 1/4 oder 1/3 so groß. Die neuen Bones scheinen wirklich an der Skalierung zu werkeln.

Kennt sich wer im übrigen mit Blender und Animationen aus? Ich hab versucht das auch mit Blender zu machen, aber Blender zerlegt mir meine 3 Animationen Run, Run_Left und Run_Right in zich einzelteile.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mit Wichtung meine ich den Wert, der dem Mesh sagt wie stark ein jeweiliger Bone auf einen Punkt vom Mesh wirkt.
In vielen 3D Proigrammen kann eine Wichtung von über 100% eingestellt sein, ohne dass sie sich im 3D Programm negativ auswirkt.
Wenn jetzt ein Punkt von irgendeinem Bein z.B. 75% Wichtung vom Oberschenkel bekommt und 25% vom Unterschenkel, dann hat er 100% Wichtung. Der Oberschenkel wirkt aber viel Stärker auf den Punkt wie der Unterschenkel. Soweit klar.
Kommt jetzt ein neuer Bone ins Spiel und dieser Bone wichtet automatisch alle Punkte im Mesh mit (weil's die Software so macht), dann könnte dieser Punkt von eben jetzt zusätzlich eine Wichtung vom neuen Bone bekommen. Nehmen wir mal an es wären 50%. Dann hätte er also 150% Wichtung. Wenn der Neue Bone bewegt wird, oder die anderen Bones sich vom neuen Bone entfernen, dann wird das Mesh verzerrt, denn der Neue wirkt ja auch auf die Punkte im Mesch und versucht sie bei sich zu halten.

Ein anderes Problem kann auch vorkommen, wenn du die Hierachie im Rig änderst, denn jeder Bone hat ja eine Grundausrichtung wenn du ihn mit dem Mesh verbindest, also wichtest. War jetzt der Unterschenkel ein Kind vom Oberschenkel, dann hatte er eine lokale Ausrichtung im Bezug auf den Oberschenkel. Dreht sich der Oberschenkel an seinem Joint (Gelenk), wird der Unterschenkel mit genommen. Dreht sich der Unterschenkel an seinem Joint dreht sich der Oberschenkel natürlich nicht, er ist ja der Vatter.
Natürlich bewegen sich die die Punkte vom Mesh unterschiedlich im Bereich der Wichtung. Also am Knie. Sie würden da die z.B. die Haut spannen. ( Das sind die 75% zu 25% die die beiden Bones auf das Mesh ausüben). Würdest du jetzt den Unterschenkel zu einem Kind vom Arm machen und den Arm drehen, dann würde der Unterschenkel sich extrem vom Oberschenkel weg ziehen und das Mesh an dem Bereich dehnen, aber die geteilte Wichtung am Knie würde nicht so stark gedehnt werden, denn da wirkt der Oberschenkle mit drauf und versucht die betreffenden Punkte bei sich zu behalten.
Fazit: Jeder Bone kann mit jedem Punkt im Mesh verbunden sein und eine Wichtung ausüben. Egal ob es sinnvoll ist, oder nicht.
Im Umkehrschluss ist es auch möglich dass ein Punkt nicht zu 100% gewichetet ist. Er würde dann beim Bewegen der Bones nicht zu 100% mitgenommen werden.

Soweit so gut. Du hast jetzt eine neue Hierachie gebaut und damit die Bezugswerte des Rigs verändert. Wenn die neuen Bones keine Wichtung des Meshes bekommen haben, dann wirkt wohl die Skalierung der neuen Bones auf die alten Bones. (So wie @Saschaschrieb.) Ja und das siehst du erst, sobald der erste Wert der Aniamtion eingelesen wurde, denn erst dann wird das Mesh verformt.
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Keine Ahnung. Aber möglicherweise musst du die Animationen nicht ändern, da die Katze ja nur in der Höhe gestaucht ist, nicht in der Länge oder Breite. (so scheint es jedenfalls)
Also schau dir an was die 2 neuen Bones für Eigenschaften haben. Vielleicht ist da etwas skaliert und kann verändert werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also so langsam verstehe ich meinen Fehler.

Wenn ich das original Modell lade, habe ich folgendes in der Hirarchy:

CG (in der Hüfte)
- Pelvis
-- Spine
Root (auf dem Boden)
Tiger

Mein Fehler war zuerst, dass ich CG einfach in Root umbenannt habe und zwischen CG und Pelvis einfach Bones eingeschoben habe. Was ich mit dem alten Root machte, weiß ich gleich gar nicht.

Root (ehemals CG)
- Global (Neu)
-- Position (Neu)
--- Pelvis
---- Spine
Tiger

Dies gab die berühmten Fehler. Zweiter Fehler war, dass ich nicht auf die Skalierung der Bones geachtet habe. Alle Bones sind mit 39.37 Skaliert. Meine Bones waren aber 100.

Also habe ich mal folgendes gemacht:

Root (Original genommen)
- Global (Neu)
-- Position (Ehemals CG)
--- Pelvis
---- Spine
Tiger

Was folgt ist gar nicht schlecht, denn es scheint keine Verzerrungen mehr zu geben. Dafür jammert jetzt Unity im Rig herum:

Copied Avatar Rig Configuration mis-match. Transform hierarchy does not match: Cannot find root motion transform 'Root'.

Er bezieht sich auf die alte Hierarchy:

CG 
- Pelvis
-- Spine
Root 
Tiger

Hier gabs es 'Root' extra auf dem Boden und 'CG' in der Hüfte, jedoch nicht in der Hirarchy untergrordnet. Ich habe nun 'CG' dem Root direkt untergeordnet. Warum? Weil mein Programm mir nicht erlaubt zwei mal Root zu haben. Ich benötige Root jedoch für die Hirarchy von UMA.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich glaub jetzt hab ichs endlich! War wahrscheinlich schon nen Bug in Max. Ich habs jetzt so gemacht:

Root (Original)
Root (Neuer Bone)
- Global (Neuer Bone)
-- Position (Ehemals CG)
--- Pelvis
---- Spine
Tiger

Rotation und Skalierung bei dem neuen Root und Global wie beim original Root. Animation scheint zu funktionieren und gibt auch keine Rig Error mehr. Waurm ich jetzt nun zwei mal Root aber benötige, verstehe ich nicht. Genau so wenig, warum er damit klar kommt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja mehr oder weniger gerade. Zufallsbug im Anflug. Er braucht auf der einen Seite 'Root', sonst Bugt der Herr. Aber noch einmal 'Root' in der Hirarchy. Im 3D Programm kann zwei mal Root vorkommen. In Unity auch - Problem ein Root bekommt eine 1 angehangen, damit ich 'Root' und 'Root1' habe. Ist 'Root1' der Parent von 'Global' funktionieren die Animationen wieder net. 🤪

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...