Du bist nicht angemeldet.

Werbeanzeige

ByteJunkie

Alter Hase

  • »ByteJunkie« ist der Autor dieses Themas

Beiträge: 833

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

1

20.02.2017, 10:47

Die Tribase und den Modellconverter mit Assimp auf Boneanimation erweitern

Ich hatte ja schon mal angefangen den Modellconverter um die Assimp Funktionalität zu erweitern. Was mir mit nicht animierten Modelldateien ja auch leidlich gelungen ist. (David schlägt sicher beide Hände über den Kopft zusammen, wenn er den Quellcode sieht) :D
Ich würde das Tribaseformat sehr gerne auch mit Boenanimation ausstatten. Die Quellcodes dazu, die ich im Internet gefunden habe laufen aber alle mit OpenGL. Da das doch ein wenig anders funktioniert als die Tribase hatte ich bisher so meine Probleme den Tribase-Code dahingehend anzupassen.

Ich hatte dann einen anderen Beispielcode mit X-Dateien gefunden und hab meinen Charakter dann halt damit animiert. So ganz glücklich bin ich aber damit auch nicht, weil das, was ich machen möchte nicht funktioniert und das was ich damit machen kann nicht besonders gefällt.

Jetzt zum Punkt: Weiß Jemand, wo ich einen Assimp CPP-Beispiel-Quellcode finde mit Boneanimation ohne OpenGL und sonstige Finessen? :this:
"Alles bleibt wie immer. :rolleyes: Wenn es nicht besser wird, wird es schlimmer!." :huh:

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ByteJunkie« (20.02.2017, 16:07)


Schrompf

Alter Hase

Beiträge: 1 396

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

2

20.02.2017, 12:01

Im Assimp-Source gibt es AssimpView, der das mit DX9 macht. Aber ich fürchte, Du bist da auf dem falschen Dampfer. Du findest nur deswegen Beispiele mit OpenGL, weil richtige Bone Animation heutzutage praktisch nur noch im VertexShader angewendet werden. Du musst also auf jeden Fall Deine Shader anpassen und pro Modell in jedem Frame einen Satz Transformationsmatrizen schreiben.

Da ist der AssimpView-Source vielleicht ein ganz guter Start. Dort findest Du z.B. eine Klasse, die aus Assimp-Strukturen die aktuelle Pose ausrechnen kann, also genau diesen Satz Transformationsmatrizen, wie Du ihn nachher im Shader brauchst.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

ByteJunkie

Alter Hase

  • »ByteJunkie« ist der Autor dieses Themas

Beiträge: 833

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

3

20.02.2017, 13:07

Aha,

danke Schrompf. Du meinst sicher SimpleAssimpViewX unter Samples. Ich hab nichts gegen einen Shader für die Boneanimation ein zu wenden. Solange man die Quellcodes einigermaßen nachvollziehen kann.

Auch der OpenGL Beispielcode hat mir schon ganz gut geholfen und, wenn ich mich lange genug damit befasse komm ich damit wahrscheinlich auch klar. Aber Du hast recht.
Weil ich momentan einen Code ohne Shader für Mystery Outback mit D3DXLoadMeshHierarchyFromX benutze, dachte ich es gibt für Assimp vielleicht auch so etwas.

Im Grunde ist das Ganze eigentlich keine große Sache. Trotzdem winde ich mich irgendwie immer drum herum. :huh:
Eines ist auf jeden Fall Sicher. Wenn das TBM-Format mit Boneanimation ausgerüstet ist, werden auch meine NPC-Modelle besser aussehen.
"Alles bleibt wie immer. :rolleyes: Wenn es nicht besser wird, wird es schlimmer!." :huh:

Byte

Alter Hase

  • »Byte« ist der Autor dieses Themas

Beiträge: 833

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

4

23.09.2020, 18:01

Tribase Modell Converter lernt laufen

Bin gerade dabei das TBM Format mit Animationen zu ergänzen. :vain: Macht spaß! :D
»Byte« hat folgendes Bild angehängt:
  • Unbenannt.jpg
"Alles bleibt wie immer. :rolleyes: Wenn es nicht besser wird, wird es schlimmer!." :huh:

David Scherfgen

Administrator

Beiträge: 10 289

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

24.09.2020, 10:02

Sehr cool! :) Bin gespannt auf Ergebnisse.

Byte

Alter Hase

  • »Byte« ist der Autor dieses Themas

Beiträge: 833

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

6

26.09.2020, 12:40

Danke David. :)

Da ich mit Assimp nicht so richtig warm geworden bin, da ich nur Modelle ohne Animation importieren konnte, habe ich ein brauchbares Code-Beispiel für MS3D gefunden.
Damit konnte ich dann MS3D Dateien statt X-Files laden. Das funktioniert prima, da man mit Blender auch MS3D exportieren kann. So bin ich auf die Idee gekommen den Code zu verwenden um direkt in das TBM-Format zu importieren. :this:

Das ganze in den Modell Konverter der Tribase zu implementieren hat spaß gemacht, weil alles gut dokumentiert ist. Zwischendurch hab ich dann immer mal getestet ob sich die Importierten Daten noch problemlos im Spiel laden lassen. So bin ich Schritt für Schritt vor gegangen. Nun kann man die MS3D-Datei in den Converter laden und eine TBM-Datei mit Animationsdaten erstellen und ins spiel laden. Das läuft mittlerweile Problemlos. Nach jeder Menge Fehlversuchen. :D

Leider wird die Animation noch nicht gerendert und ich hab noch nicht herausbekommen wo dran es liegt. Hab sogar die tbModel Klasse mit einer 2 Renderfunktion ausgestattet. Aber da ich schon so weit gekommen bin lasse ich nun natürlich nicht locker bis es Funktioniert. Es kann sich eigentlich nur um eine Kleinigkeit handeln, die ich übersehen hab. ;)
"Alles bleibt wie immer. :rolleyes: Wenn es nicht besser wird, wird es schlimmer!." :huh:

Byte

Alter Hase

  • »Byte« ist der Autor dieses Themas

Beiträge: 833

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

7

27.09.2020, 11:40

Fehler gefunden! :search: Beim Schreiben und wieder Auslesen des Joint Vektors wurden nicht alle Informationen korrekt geschrieben und wieder ausgelesen. Und noch paar andere Kleinigkeiten. ;) 1 vollen Tag mit Fehlersuchen verbracht. :crazy: Naja, dafür gibt es jetzt nur noch das Tribase Dateiformat, welches ich sehr praktisch finde. 8)
»Byte« hat folgende Bilder angehängt:
  • Unbenannt.jpg
  • Screenshot2.jpg
  • Screenshot3.jpg
  • Screenshot4.jpg
  • Screenshot5.jpg
"Alles bleibt wie immer. :rolleyes: Wenn es nicht besser wird, wird es schlimmer!." :huh:

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Byte« (27.09.2020, 13:17)


Schrompf

Alter Hase

Beiträge: 1 396

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

8

29.09.2020, 14:01

Sehr cool, Bone Animations sind die hohe Kunst der 3D-Programmierung, finde ich :-)

Ich bin trotzdem sauer, dass Du Assimp aufgegeben hast X(
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

Byte

Alter Hase

  • »Byte« ist der Autor dieses Themas

Beiträge: 833

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

9

29.09.2020, 18:48

Hey, danke :)

Nicht aufgegeben, nur erst mal ruhen lassen. Das liegt einfach daran, dass ich kein OpenGL benutze und einen funktionierenden DirectX Code für MS3D vorliegen hatte. Jetzt, da ich mit der Materie etwas vertrauter bin würde ich mir auch zu trauen das ganze mit Assimp zu machen.

Allerdings läuft alles im Moment prima, so wie ich es immer wollte. Und ja, es ist ein gutes Gefühl endlich die Animationen einigermaßen im Griff zu haben. :vain: Hab im Spiel Mystery Outback auch schon alles umgestellt. Alles ist jetzt etwas einfacher für mich geworden. Darauf kam es mir an. :thumbup:
"Alles bleibt wie immer. :rolleyes: Wenn es nicht besser wird, wird es schlimmer!." :huh:

Werbeanzeige