Assimp + Blender + Animationen

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Assimp + Blender + Animationen

Beitrag 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?
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Assimp + Blender + Animationen

Beitrag 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.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Assimp + Blender + Animationen

Beitrag 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.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: Assimp + Blender + Animationen

Beitrag 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 :)
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Assimp + Blender + Animationen

Beitrag 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.
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Assimp + Blender + Animationen

Beitrag 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.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Assimp + Blender + Animationen

Beitrag 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.
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Assimp + Blender + Animationen

Beitrag 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 :)
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Assimp + Blender + Animationen

Beitrag 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.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Antworten