Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

1

09.11.2011, 20:18

Skeletale Animation

Abend, ich mal wieder.

Ja, es wurde bestimmt schon 1 Mio. mal gefragt, aber ich finde einfach keine guten, übersichtlichen Tutorials. Bücher gehen auch.
Und kann man einfach ein Mesh nehmen und zusätlich die Bones dazu laden? Dann könnte ich weiterhin meine einfachen ply Modelle benutzen (ich hab sie sehr lieb). Die Vertices speichern in diesen aber nicht die dazugehörigen Bones (müsste also in der "Bone-Datei" drin stehen).
Blender kann bvh (Motion Capture) Dateien exportieren. Wie wichtig sind die Parents? Wie berechne ich nachher die Matrizen?

P.S.: Gegoogelt hab ich schon, aber ich mag diese doch teils sehr alten Tutorials nicht. Buch wäre mir am liebsten.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

09.11.2011, 22:24

Zu Bones war hier vor kurzem im Forum ne Diskussion. Die hilft dir für die Transformation bestimmt weiter. Das mit den Dateiformaten kann ich dir nicht sagen, aber da solltest du vielleicht gucken, auf ein anderes Format umzusteigen. An sonsten könntest du dir zur Not immer noch was selber basteln. Ist nur die Frage wie viel Spaß dir das macht;) Wegen der eigentlichen Animation. Da gibt es oft fertige libs für. Je nach Sprache oder Engine die du benutzt könntest du auch mal nach sowas gucken. Aber wie gesagt, such doch mal den Thread. Der hilft dir sicherlich weiter. dot hatte da glaube einiges zu geschrieben.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

3

09.11.2011, 22:30

Ich benutze keine Engine oder libs... ich will ja wissen wies geht ;)
Aber danke ich such mal, Link wäre trotzdem ganz nett wenn ichs nicht finde...

Was mir aufgefallen ist wenn ich mir diese bvh Dateien angucke:
Die Hierarchie und Position, Rotationen der Bones einzulesen bekomme ich wahrscheinlich noch recht einfach hin, aber die Bones werden nirgendwo mit dem Mesh verbunden... Und einfach ins ply einbinden kann ich das auch nicht.
Ich hatte mir das eigentlich so vorgestellt das ich für einen Bone die Matrix erstelle und dann ein offset + Anzahl der Vertices für den Bone habe und dann einfach die Matrix beim rendern wechsel (kommt mir zumindest recht einfach vor).

MCP

Alter Hase

Beiträge: 513

Wohnort: Paderborn

Beruf: Software-Entwickler

  • Private Nachricht senden

4

09.11.2011, 22:54

Vielleicht hilft das ein wenig: Link
Der Blog ist sowieso sehr interessant. :D

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

5

09.11.2011, 23:59

Habe da selbst keine Erfahrung mit. Mit mehreren Dateien zu arbeiten hört sich aber nicht besonders gut an. Ich würde dir wirklich Raten das Format zu wechseln.
Model, Bones und Positionsermittlung der Vertices

Das war der Thread den ich meinte. Vielleicht hilft es dir weiter.
Modelle mit Bones - Wie sind die zu verstehen?

Das könnte für dich vielleicht auch interessant sein, wobei hier noch mal auf den oberen Thread eingegangen wird. Vielleicht kennt ja jemand ein gutes Buch zu dem Thema. Habe mich da selbst noch nie so wirklich mit auseinander gesetzt.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Thoran

Alter Hase

Beiträge: 520

Wohnort: Stuttgart

Beruf: Senior Software Engineer

  • Private Nachricht senden

6

10.11.2011, 10:16

Um die Bones mit dem Mesh zu verbinden, muss du das ganze Skinnen (Stichwort "Skinning"). Im wesentlich bestimmst du damit wie ein einzelner Vertex von den ganzen Bones beeinflußt wird. Da gibt es dann verschiedene Situationen. Ein Vertex wird genau von einem Bone beeinflußt, er wird gar nicht beeinflußt oder von mehreren Bones beeinflußt(oft <=4).

Bei mehreren beeinflussenden Bones, vergibst du Gewichtungen pro Bone mit der dieser Bone den Vertex beeinflußt.
Bsp. Pseudo-C++ Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
//Eine Vertex-Datenstruktur
 VertexDataStruct myVertex;

//Weise dem ersten Vertexgewichtungs-Eintrag die Gewichtung 0.2 zu
myvertex.weights[0] = 0.2f;

//Speichere eine Referenz auf den Bone der mit faktor 0.2 den Vertex beeinflußt.
myvertex.bones[0] = <Reference auf beeinflußenden bone>;


In der Summe sollten die Vertex-Gewichtungen 1.0 ergeben.
Hoffe mal das hilft als Einstieg.
Stichworte zum Suchen: Skinning, Vertex weights

Thoran
Mein Entwicklertagebuch
Aktuelles Projekt: Universum Espionage
Eingestellt:Spieleengine SilverCore
Organisator "Spieleentwickler Stammtisch Stuttgart"

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

7

10.11.2011, 11:53

PLY-Dateien unterstützen nach meinem Wissen keine geriggten Meshes. Und BVH ist ein reines Motion Capturing-Dateiformat, da fehlt im Gegenteil der komplette Mesh-Teil. Sinnvolle Dateiformate für Bone-animierte Meshes sind Collada, FBX, D3D XFiles, Doom3 MD5, Ogre-Szenen usw.
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.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

10.11.2011, 12:13

Wenn du nur mal rumspielen willst, empfehl ich das ms3d Format, das ist extrem einfach.

Thoran

Alter Hase

Beiträge: 520

Wohnort: Stuttgart

Beruf: Senior Software Engineer

  • Private Nachricht senden

9

10.11.2011, 13:23

PLY-Dateien unterstützen nach meinem Wissen keine geriggten Meshes. Und BVH ist ein reines Motion Capturing-Dateiformat, da fehlt im Gegenteil der komplette Mesh-Teil. Sinnvolle Dateiformate für Bone-animierte Meshes sind Collada, FBX, D3D XFiles, Doom3 MD5, Ogre-Szenen usw.

Es sind Ogre-Meshes, Ogre-Szenen sind deprecated und werden von Ogre nicht mehr direkt unterstützt.
Mein Entwicklertagebuch
Aktuelles Projekt: Universum Espionage
Eingestellt:Spieleengine SilverCore
Organisator "Spieleentwickler Stammtisch Stuttgart"

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

10

10.11.2011, 16:15

@Thoran: schonmal vielen Dank, ich werd mal nach skinning googlen ;)

@Schrompf: Ogre verwende ich nicht, möchte so auch keine Dateiformate dafür verwenden. Die anderen guck ich mir auf jeden Fall an, mal sehen welches am einfachsten zu laden ist.

Zitat

Wenn du nur mal rumspielen willst, empfehl ich das ms3d Format, das ist extrem einfach.


Was heißt rumspielen? Ich will nachher skeletale Animation in OpenGL für Spiele und später evt. auch Physik umsetzen. Das ganze mach ich nicht nur ums mal gemacht zu haben, sondern für mein aktuelles Projekt.

Zitat

PLY-Dateien unterstützen nach meinem Wissen keine geriggten Meshes.


Stimmt, aber ich dachte man könnte einfach offset + Anzahl der Vertices nehmen und dieses dann zu den entsprechenden Bones speichern. Wie ichs schon oben beschrieben hab...

Werbeanzeige

Ähnliche Themen