Frage FBX mit Animationen importieren und exportieren
#1
Hallo zusammen,

ich bin absoluter Laie in Sachen Entwicklung und 3D. Aber ich versuche mich ab und zu beim Modding Lächeln
Nun gibt es für Banished einige FBX Dateien mit Animationen bzw. ich könnte auch selbst welche erstellen. Damit habe ich aber noch nicht gestartet, weil ich im Internet an verschiedenen Stellen die Info fand, dass Blender mit FBX und Animationen doch oft Fehler produziert. 

Daher hier vorab (also bevor ich überhaupt anfange und mich da stundenlang einarbeite): 
gibt es bekannte Probleme von Blender mit FBX und Animationen, und wenn ja, gibt es Workarounds? 
gibt es bestimmte ganz wichtige Import/Export Einstellungen in Blender, die man beachten muss? 

Es scheint in der Regel so zu sein, dass der Import wohl einigermaßen klappt, aber beim Export hat man die Wahl: entweder 3D Modell korrekt aber ohne Anim. erstellen, oder mit korrekten Anim. aber das Aussehen des Modells ist komplett kaputt Lächeln

Danke für jeden Tipp.
Zitieren
#2
Hallo,

Willkommen im Forum.

Zu deinen Fragen: fbx ist nicht gleich fbx - es gibt etliche unterschiedliche Dateiformatversionen mit unterschiedlichen Spezifikationen, was bei unterschiedlichen fbx-Versionen beim Import/Export sowohl im blender als auch in der Zielapplikation zu Problemen führen kann. Autodesk hatte mal ein kostenfreies Tool, mit dem man die Version eines fbx bestimmen kann. Laut Blender Manual ist ein Import erst ab "Version 7.1 or newer" möglich.

Der Importer der Zielapplikation erwartet für einen erfolgreichen Import eventuell noch zusätzliche Dinge, was auch zu Problemen führen kann. In unity müssen zB für humanoide Avatare alle Bones in einer bestimmten Hierarchie angeordnet und benannt worden sein.

"..weil ich im Internet an verschiedenen Stellen die Info fand, dass Blender mit FBX und Animationen doch oft Fehler produziert." - Dem kann ich nicht zustimmen - mit normalen Animationen hatte ich nie Probleme und nachdem ich das mit den Avataren im unity-Importer herausgefunden hatte, damit auch nicht mehr.

Die Einstellungen findest du hier: Blender Manual

Grüße Malthea
Zitieren
#3
Danke vielmals. Banished wurde um 2014 veröffentlicht, die FBX Dateien stammen wohl aus der Zeit, teils ggf. auch spätere Kompatibilität aufgrund der Patches / Mod Toolkits.

Mit chatGPT habe ich folgendes Script erstellt, fällt da etwas auf, was dazu führen kann, dass das Modell ohne Animation ok ist, aber mit Animation total verzerrt? Oder kann ich das einfach nur selbst in Banished eben jeweils testen?

Und: ist es irgendwie sinnvoll, den Autodesk Converter 2013 da einzubinden?
---

import bpy

input_fbx_path = "hier der Pfad"
output_fbx_path = "hier auch ein Pfad"

bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete(use_global=False)

bpy.context.scene.unit_settings.system = 'METRIC'
bpy.context.scene.unit_settings.scale_length = 1.0 # 1 Blender Unit = 1 Meter

bpy.ops.import_scene.fbx(
filepath=input_fbx_path,
axis_forward='-Z',
axis_up='Y',
bake_space_transform=False
)

for obj in bpy.context.scene.objects:
obj.hide_set(False)
obj.hide_viewport = False
obj.hide_render = False

bpy.ops.export_scene.fbx(
filepath=output_fbx_path,
apply_scale_options='FBX_SCALE_ALL',
global_scale=1.0,
axis_forward='-Z',
axis_up='Y',
use_selection=False,
add_leaf_bones=False,
bake_space_transform=False,
bake_anim=True,
use_armature_deform_only=True,
mesh_smooth_type='OFF',
path_mode='AUTO',
)

print("Export fertig:", output_fbx_path)
Zitieren
#4
Ich bin kein Pythonspezialist, aber das schaut soweit ok aus, allerdings hast du mit dem normalen FBX-Exporter vom blender mehr Einstellmöglichkeiten (Keyframes, apply axes usw).

An deiner Stelle würde ich erstmal die Standardwege nutzen und ein fertiges Banished-fbx in den blender importieren und dort die Animation abspielen. Wenn das gut aussieht, ohne Änderung die Figur umbenennen, exportieren (nur diese + Animationen) und in Banished importieren und ausprobieren. Wenn das genauso aussieht wie das ursprüngliche ist Teil 1 erfolgreich abgeschlossen. Andernfalls einfach nachfragen - und am Besten Screens machen.

Teil 2 wäre eine eigene Animation auf einer fertigen Banished-Figur (+ Rig), Teil 3 eine eigene Figur + Animation.

Zu: "...mit Animation total verzerrt..."  - diese Aussage allein hilft nicht - wo ist das passiert? Im blender?
Zitieren
#5
Es gibt ein Beispiel-Tier im offiziellen Mod Toolkit, ein Huhn Lächeln. Das kann ich schon nicht importieren und wieder exportieren.
Ich bin auch kein Python-Entwickler, ich fand es praktisch, weil ich dann (wenn ich Erfolg hätte) direkt speichern könnte, wie es eben ging (einfacher als die Einstellungen alle merken).

Ich mache vielleicht morgen Screenshots, zur Erklärung noch: wenn ich die Animationen vom Export ausschließe, sieht das Modell in Banished gut aus (richtig skaliert, Texturen etc.), und wenn ich Animationen einschließe in den Export, dann gehen diese theoretisch wohl auch, aber mit einer nicht mehr erkennbaren Figur / Tier Lächeln.

In Blender hingegen sehen die Figuren korrekt aus und bewegen sich auch, allerdings finde ich immer nur eine Animation, das Laufen, es gibt aber auch noch Kopfbewegung / Picken. Das wäre vielleicht noch nützlich, wo kann man verschiedene Animationen aufrufen und zwischen ihnen wechseln in Blender? Oder gibt es immer nur eine? Das ist viell. ein Problem dann schon.
Zitieren
#6
Zitat:Ich bin auch kein Python-Entwickler, ich fand es praktisch, weil ich dann (wenn ich Erfolg hätte) direkt speichern könnte, wie es eben ging (einfacher als die Einstellungen alle merken).
Das ist natürlich ein Argument Grinsen

Zitat:In Blender hingegen sehen die Figuren korrekt aus und bewegen sich auch, allerdings finde ich immer nur eine Animation, das Laufen, es gibt aber auch noch Kopfbewegung / Picken. Das wäre vielleicht noch nützlich, wo kann man verschiedene Animationen aufrufen und zwischen ihnen wechseln in Blender? Oder gibt es immer nur eine? Das ist viell. ein Problem dann schon.

Es kann sein, dass sich im importierten fbx nur eine Animation befindet - unity handelt das so. Ansonsten mal die timeline entlang schauen...

Zitat:aber mit einer nicht mehr erkennbaren Figur / Tier

Das könnte auf eine falsche Skalierung hindeuten - bzw irgendetwas nicht applied ... wenn es erlaubt ist, lade das originale Huhn als Attachment hier hoch, vielleich schaffe ich es morgen, mir das anzuschauen...
Zitieren
#7
Vielleicht sogar eher eine Ziege als ein Huhn Lächeln. Ich schaue mal, was ich dir als Beispieldatei anbieten kann, dann eher aus einem Mod.
Zitieren
#8
Hier gibt es ein Huhn bei GitHub (FBX)
https://github.com/banishedinfo/sample-w...ter/Models

Das schaffe ich schon nicht, in Blender zu importieren und wieder ohne Fehler in Banished zu exportieren.
Man darf im Export "Add Leaf Bones" bei Banished in jedem Fall nicht aktivieren.
Zitieren
#9
Das fbx ließ sich problemlos im blender öffnen. Im Animation Workspace auf der Timeline den Playbackrange auf 550 stellen - dann ist die Pick-und-Scharranimation kurz nach der Laufanimation sichtbar.

Leider ist die Armature skaliert und nicht applied - das wäre eine Möglichkeit für deine Meshverzerrungen.

Die Meshdrehung um 90 Grad um die z-Achse ist auch nicht applied (das Huhn wurde wohl wie in Gameengines üblich in Laufrichtung +y modelliert).

   

Merkwürdig ist auch, dass sich der Origin des Meshes nicht im Ursprung befindet (wie der der Armature). Wenn der RootController (ist eigentlich auch ein bone - aber einer, der nicht das Mesh deformiert) nicht mit ins fbx kommt, dann gibt es Probleme - das Mesh kann verzerrt werden.

   

Beim Export kannst du folgende Einstellungen versuchen: Object Types nur Empty, Armature und Mesh, unter Transform nur bei Apply Unit ein Häkchen, Geometry: kein Häkchen, Armature ebenso. Die Bake-Animation-Einstellungen kannst du so lassen, wie sie sind, optimieren kann man später, wenn der Import in Banished klappt.

   

Wenn das nicht klappt, könntest du unter Armature - FBXNode Type "Root" ausprobieren - das kann allerdings bei einem Re-Import in blender zu Problemen führen.

Eine weitere Möglichkeit wäre, den Origin des Meshs in den Ursprung zu setzen, die Rotation um z zu applien und mit den oberen Einstellungen zu Exportieren.
Zitieren
#10
Hallo und vielen Dank, dass du da reingeschaut hast. Sehr hilfreich schon jetzt.
Allerdings fängt es bei mir ja schon vorher an... daher, bevor ich nun den Export versuche: wie geht es am Anfang los in Blender, ist Folgendes richtig?
- neue Datei
- General / Allgemein
- dann: rechts im Baum alles löschen, also Cube, Camera, Light? Und auch Collection?
- und dann eben natürlich Datei / Importieren / FBX importieren, mit welchen Einstellungen der Import?

Ich frage u.a. weil bei mir das Huhn nicht so eine schöne Textur "anhat", wie komme ich da hin, also welche Schritte hast du für den Import gemacht, bis du zu dem ersten Bild gelangst?
Zitieren
#11
Sinn der Übung ist es ja, sowenig wie möglich zu machen - also blender starten, Klick neben den Begrüßungsbildschirm und dann den Cube löschen (Kamera und Licht zu löschen - Geschmackssache). 

Danach den Import starten - auch ohne etwas zu ändern. Jetzt könnte eine Verwirrungsphase eintreten: das im Ursprung gelandete importierte Objekt ist ziemlich klein, deshalb also mit dem Mausrad heranzoomen oder (wenn das fbx-Objekt ausgewählt ist) die Numpad-entf-Taste drücken.

Wenn du dir den ersten Screenshot in meinem vorangegangenen Post ansiehst, findest du im 3D-Fenster ganz oben rechts verschiedene Kreis-"Buttons". Der zweite von rechts stellt die Objekte texturiert dar.

Von Interesse sind das Mesh-Objekt und die Armature. Mit ausgewähltem Mesh kannst du im Edit-Mode das Aussehen verändern und im Weightpaint-Mode den Einfluss der einzelnen Bones auf die jeweiligen Meshteile verändern (würde ich jetzt noch nicht machen - ich hab zwar nur einige Bones durchgesehen, aber das Skinning scheint OK zu sein).

Bei ausgewählter Armature kannst du im Pose-Mode Animationen abändern oder ganz neue erstellen, im edit-Mode Bones hinzufügen, löschen, Zuordnungen ändern oder diese anders positionieren. Jetzt noch nicht machen, um mögliche Fehlerquellen auszuschließen.

In diesem fbx gibt es noch einen Bone, den RootController. Dieser Bone gehört nicht zur eigentlichen Armature, wird durch einen Kreis dargestellt und ist eine Hilfe fürs Erstellen von Animationen.
Zitieren
#12
Hallo und nochmals vielen Dank für den guten Einstieg ins Thema Lächeln.

Die Textur hat mich auf die Frage gebracht: muss ich denn zwingend immer ein FBX in "seiner Umgebung" ändern, also mit den anderen Dateien und Ordnern, oder kann ich es auch einzeln bearbeiten?

Ich frage das, weil ich in meinen unzähligen Versuchen immer aus Faulheit das FBX auf den Desktop habe und von dort in Blender importiert. Daher sah ich auch keine Textur.

Allerdings dachte ich (wie gesagt als Laie), dass das FBX für sich alleine steht und bearbeitet werden kann.
Das also nur als Zusatzfrage, ob man es auch einzeln bearbeiten kann.

Ansonsten habe ich mal wieder ca. 10 Versuche gemacht ohne jeden Erfolg.
Daher: Wie einfach ist für mich deine Idee hier umzusetzen?
"Eine weitere Möglichkeit wäre, den Origin des Meshs in den Ursprung zu setzen, die Rotation um z zu applien"
Zitieren
#13
Ein fbx ist im Prinzip nur ein "Aufbewahrungsort" (Container) für unterschiedliche "Dinge", die normalerweise nicht zusammen in einer Datei "gelagert" werden können. Für uns als normale Anwender bedeutet das: wir können nur (z.B. mittels blender) "Dinge" hineinpacken oder herausnehmen (vielleicht stellt Autodesk da Programme bereit, die direkt in einem fbx etwas ändern können - aber da hab ich kA und es wäre auch sinnfrei, weil die Funktionalität aufrecht erhalten werden müsste und dann wäre man wieder bei einem CAD- oder Modellingprogramm Zwinkern ).

Die (Ab)Änderung einer Textur bzw deren Austausch ist kein trivialer Vorgang, weil der Renderer der Gameengine, in der das fbx "laufen" soll, Daten darüber benötigt, welche Teile der Textur auf welchen Meshoberflächen abgebildet werden sollen. Diese Daten der Zuweisung werden im Normalfall in Modellingprogrammen generiert, auch wenn die Erstellung und Nachbearbeitung von Texturen mit Bildbearbeitungssoftware erledigt werden kann.

Die "Hühnertextur" wurde speziell für das Hühnermesh angefertigt. Die Oberfläche des Meshes wurde abgewickelt und liegt auf den passenden Teilen der Textur. Man sieht nur die Hälfte der Einzelflächen, weil die andere Hälfte "umgedreht" und deckungsgleich (weil das Mesh symmetrisch ist) auf die Textur gelegt wurde.

   

Die Rotation ändert man, indem man im Objektmenue -> Apply -> Rotation auswählt. 

Leider habe ich weiter oben die Positionsangaben für Meshobjekt und Armature vertauscht - das Mesh ist im Ursprung und die Armature müsste verschoben werden, allerdings könnte das zu einem Problem werden.

Desweiteren hab ich mir die Keys angesehen - da ist viel unnützes dabei, das gelöscht werden könnte.
Zitieren
#14
hallo und danke nochmals.
Ich habe hier mal zwei Bilder erstellt. Einmal so wie das im "Original" aussieht (das weiße Huhn ist an sich auch schon eine Mod). Und einmal dann nach Export aus Blender Lächeln

Die Datei hat sich auch von unter 1 MB auf mehrere zusätzliche MB aufgebläht.

Der Export war mit den Einstellungen wie von dir gezeigt. 

Irgendwie war ja meine Hoffnung, dass man doch in Blender ein FBX importieren und mit möglichst wenig Änderungen wieder exportieren kann. 

Ich bin ja wie gesagt Anfänger - vielleicht wäre es eine Idee, wenn jemand einmal eine ganz neue Probe-Animation erstellt, die ich dann statt des Huhns nehmen könnte? (nur ein drehender Würfel z.B. mit fast keinen Details und Einstellungen, fast "leer").

Also erstmal von dem Huhn weg Lächeln.


Angehängte Dateien Thumbnail(s)
   
Bild(er)
   
Zitieren
#15
Die Huhnfragmente im zweiten Screen bewegen sich?

Ich hab ein einfaches Testhuhn gebastelt - in unity wird es sauber importiert und läuft - wie vorgegeben - auf der Stelle vor sich hin Zwinkern

   

Im fbx-Exporter hab ich einige Einstellungen geändert:

- oben rechts Path Mode auf copy und Embeded Textures enabled (ansonsten kommt die Textur nicht mit ins fbx)
- unter Transform Apply Scalings auf FBX All
- unter Bake Animations nur ein Häkchen bei All Actions

   

Im Anhang findest du das fbx - vielleicht kann das ohne Probleme in Banished importiert werden.


Angehängte Dateien
.fbx   Huhn_1.fbx (Größe: 80.54 KB / Downloads: 5)
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: littbarski, 1 Gast/Gäste