Seite 1 von 1

Assimp + Blender + Animationen

Verfasst: 06.07.2019, 19:34
von Jonathan
Hey,

ich versuche gerade eine Pipeline Blender->Assimp->Mein Spiel für animierte (skelettbasiert) 3D Modelle auszutüfteln. Der wesentliche Punkt dabei ist das 3D Format (Blender und Assimp unterstützen ja eine Reihe) + dazugehörige Exportoptionen.

Bislang bin ich mit FBX noch am weitesten gekommen. Allerdings wollen die Koordinatensysteme partout nicht übereinander passen, irgendetwas ist immer falsch. Entweder ist das Modell in Ruheposition falsch, oder bei der Animation stimmt entweder die Orientierung oder die Richtung des Objektes nicht (in meinem einfachen Beispiel wird einfach nur ein statisches Mesh durch einen einzelnen Knochen bewegt). So langsam habe ich alle Exportoptionen durch, es bliebe jetzt noch die Animation in Blender im falschen Koordinatensystem zu basteln (ganz schlecht, dann hat man keine vernünftige Vorschau mehr, oder muss vor jedem Exportieren alles transformieren), oder alles im Spiel selber korrigieren (auch doof, dann kann ich keine Modelle aus anderen Quellen mehr verwenden.). Mein Koordinatensystem im Spiel ist identisch zu Blender (Z-Up), am liebsten wäre es mir wenn der Exporter einfach überhaupt nichts verändern sondern die Werte so wie sie sind rausschreiben würden (ich musste schon lange suchen, damit FBX nicht alle animierten Modelle um einen Faktor 100 vergrößert, argh).

Irgendwelche Tipps, welche Kombination sich am besten bewährt hat?

Re: Assimp + Blender + Animationen

Verfasst: 06.07.2019, 20:52
von Schrompf
Ich habe vor inzwischen einem Jahrzehnt Collada erfolgreich eingesetzt. Da weiß ich auch, dass die ganzen Koordinatensystem-Transformationen (Y-UP vs. Z-UP, linkshändig vs. rechtshändig) zuverlässig funktionieren. Ist allerdings halt ein sehr alter Datenpunkt.

Re: Assimp + Blender + Animationen

Verfasst: 01.04.2021, 14:46
von Jonathan
Moin,

ich möchte das Thema Animationen demnächst endlich angehen. Daher nochmal die Frage, ob jemand bezüglich meiner Frage (animierte Modelle aus Blender exportieren und in Assimp laden) noch aktuelle Tipps hat.

Re: Assimp + Blender + Animationen

Verfasst: 01.04.2021, 17:10
von Matthias Gubisch
Ich kann zwar gerade nicht beim Thema helfen
Da Animationen aber bei mir auch bald weit oben auf der TodoListe stehen bin ich sehr gespannt auf die Loesung :)

Re: Assimp + Blender + Animationen

Verfasst: 01.04.2021, 17:49
von Tiles
Also eigentlich ist FBX immer noch der Goldstandard. Hast du dir schon die neuen Datentypen angesehn? glTF zum Beispiel. Oder Alembic?

Mit Assimp kann ich dir aber leider nicht weiterhelfen. Das hatte ich nie in meiner Pipeline im Einsatz.

Re: Assimp + Blender + Animationen

Verfasst: 02.04.2021, 10:02
von Schrompf
Als ich das noch gemacht habe, war Collada das Mittel der Wahl. FBX soll sehr cool geeignet sein, ist aber in Assimp nur reverse-engineered und daher von zweifelhafter Verlässlichkeit

[edit] Oh, ich sehe gerade, dass ich exakt das auch schon vor zwei Jahren geschrieben habe. Tja. Ich bin echt ein bissl aus der Loop.

Re: Assimp + Blender + Animationen

Verfasst: 02.04.2021, 10:07
von Tiles
Ja. Collada ist halt inzwischen sehr schlecht gepflegt. Für mich ist die Frage ob man da überhaupt über Assimp als Mittelsmann gehen soll. Oder nicht bei der Engine was drehen sollte dass sie direkt FBX nimmt. Bei passender Lizenz müsste das ja über das FBX SDK gehen.

Re: Assimp + Blender + Animationen

Verfasst: 26.09.2021, 00:44
von Jonathan
Tiles hat geschrieben: 01.04.2021, 17:49 Also eigentlich ist FBX immer noch der Goldstandard. Hast du dir schon die neuen Datentypen angesehn? glTF zum Beispiel. Oder Alembic?

Mit Assimp kann ich dir aber leider nicht weiterhelfen. Das hatte ich nie in meiner Pipeline im Einsatz.
Zwischenstand: Ich habe mal eine aktuelle Assimp-Version und eine aktuelle Blender Version genommen und beide können glTF. Erste Ergebnisse sehen schon ziemlich vielversprechend aus, das könnte durchaus was werden.
Dinge, die es aber noch zu bedenken gibt, sind unter anderem:
- Welche Blender-Features werden unterstützt? (zwischen simplen Skelett-Keyframes und Inverser Kinematic oder angepassten Blendfunktionen gibt es ja sehr viel, was potentiell nicht unterstützt sein könnte).
- Sind Animationen immer gebaked? (vielleicht will man ja mal eine Animation nur für die Beine und eine Zweite für die Arme haben und beide gleichzeitig / unabhängig voneinander abspielen)
- Kann das Format unabhängig von den Animationen auch sonst alles was ich brauche?

Aber insgesamt freue ich mich bald zumindest in der ein oder anderen Form animierte Modelle benutzen zu können. Das sollte alles so viel schicker und lebendiger machen :)

Re: Assimp + Blender + Animationen

Verfasst: 04.10.2021, 17:40
von Jonathan
Zur Info: Ich verwende jetzt Blender 2.93 und Assimp 96e2f1cd5b... (24.9.2021). Damit funktioniert es bisher ziemlich gut, allerdings hat der Exporter eine wichtige Eigenheit: Das Skelett wird nicht unbedingt in der Grundpose exportiert, das Mesh allerdings schon. Ist Beispielsweise im ersten Frame der Laufanimation das linke Bein weiter vorne, stimmen die Model-To-Bone Matrizen nicht, was dann dazu führt, dass die Dreiecke des linken Beins während der Animation immer zu weit hinten sind. Im Prinzip hat man also eine zusätzliche Transformation auf allen Bones, die sich aus der Differenz zwischen der Grundpose und dem ersten Animationsframe ergibt.
Allerdings hat der Exporter in der aktuellen Blender-Version einen "Animation / Use current frame" Schalter. D.h. vor dem Exportieren bringe ich das Skelett manuell in die Grundpose, aktiviere den Schalter und exportiere das Modell. Dann Stimmen Skelett und Mesh überein und die Animation sieht korrekt aus.