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

ByteJunkie

Alter Hase

  • »ByteJunkie« ist der Autor dieses Themas

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

1

10.02.2016, 15:00

Kleidung wechseln mit Bone Animation

Hallo, mir ist nicht so ganz klar, wie die Profis das machen. Siehe Anhang.
Step 1: Ein animierter Charakter hat keine Kleidung an.
Step 2: Die Kleidung wird angelegt und bewegt sich mit dem animierten Body.

Wenn nur die Kleidungsmodelle auf das Charaktermodell gelegt werden bewegen die sich ja nicht mit. :(
Wird das Charaktermodell in animierte Einzelteile zerlegt und diese dann durch animierte Teile mit Kleidung ersetzt? :S
»ByteJunkie« hat folgende Bilder angehängt:
  • Unbenannt1.jpg
  • Unbenannt2.jpg
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

@zimmer

Alter Hase

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

2

10.02.2016, 15:07

Ich denke die Prosition und Rotation der kledungs Modelle werden immer Aktualisiert.
Wenn der Charakter sich bewegt muß die Kleidung den Vector übernehmen bzw dazu adieren.
Man kann die an bones anheften oder an Vertex.
Aber bei Hosen denke ich dass, die Profis nicht die auch noch animieren oder Sie können die Animation key Frames vom Charakter übernehmen, habe ich mir gerade gedacht.

wüsste ich auch gerne ...

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

3

10.02.2016, 15:30

Eine verdammt gute Frage, die ich mir auch schon öfter gestellt habe. Wenn man sich überlegt, wie Bone-Animation funktioniert, dann wäre ein naiver Ansatz, dass das Modell modular aufgebaut ist und tauschbare jedes Körperteil ein eigenes Submodell ist. Jedes Submodell muss ja in den Vertexdaten einen oder mehreren Joints zugeordnet sein, das ist in den Vertexdaten verankert. Und wenn jetzt jedes austauschbares Submodell für Jacke, Hemd usw. für jeden Vertex auf die korrekten Joints verweist (das ist auch nur ein Index), tauscht man ein Submodell aus und kann einfach "mitanimiert" werden. Um die Performace zu erhöhen werden die Submodelle aber vermutlich zu einem Modell zusammen in einen Vertexbuffer gemerged, um Drawcalls zu sparen. Außer bei Umhängen vielleicht, da hängt ja noch Physik dran ;)

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

4

10.02.2016, 15:33

Wir haben das damals über modulare Meshes gemacht. Pro Segment (bei uns war's nur "Körper" und "Kopf") ein Mesh, aber alle Meshes benutzen das selbe Skelett. Dann funktionieren auch die Anims analog.
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.

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

5

10.02.2016, 15:39

Kurze, gute Zusammenfassung meiner Erklärung, danke! :)

6

10.02.2016, 15:41

Wo kommen denn deine Animationen her und nutzt du keine lib/api zur Implementierung?
Texturen swappen sollte eigentlich kein großes Thema sein, solange du jeden bone einzeln ansprechen kannst.

Für Flash und Javascript/html5 funktioniert z.B. DragonBones ziemlich gut und bringt alle features mit (kann man sich auch einfach anschauen, um das Prinzip und Fähigkeiten abzuschauen).
Das von Grund auf selbst zusammenzubasteln kann natürlich ein wenig dauern.
Ist natürlich ein 2d-Beispiel. Das Prinzip bleibt aber eh gleich.

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

7

10.02.2016, 15:55

Ich hab damals die Engine selbstgeschrieben. Siehe Signatur, Abteilung "Splitterwelten". Müsste aber auch in anderen Engines funktionieren.
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: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

8

10.02.2016, 16:59

Erst mal Danke für die Antworten. Wem noch etwas dazu einfallen sollte, immer her damit. :)

Ich habe vor so etwas mit DirectX 9 zu machen. Das Modell werde ich mit Blender animieren.
Dann werde ich den Modellkonverter von David um die entsprechenden Funktionen erweitern damit ich das Ganze mit der Tribase benutzen kann.
Ich hab ein Programmierbeispiel für animierte X-Files gefunden. Mit X-Files komm ich klar. Ist natürlich nur eine Möglichkeit von vielen.
Wenn Ihr ein anderes Dateiformat besser findet brauch ich dazu eine entsprechende Beschreibung um an die Daten zu kommen. :grumble:

@Schrompf - Welche Engine hast Du selbst geschrieben? Die hier? http://splitterwelten.net/projects/splitter_g.html 8)
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »ByteJunkie« (10.02.2016, 17:30)


KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

9

10.02.2016, 17:27

Selbst in den Projekten mit etablierten Engines(also die üblichen Verdächtigen), die ich so gesehen habe, wird es nicht anders gemacht. Daher eine Folgefrage an die Engine Profis: Ist das Best Practice, oder ein Resultat der "Faulheit"? Bis jetzt konnte ich keine nennenswerten Nachteile feststellen, außer natürlich den Animatoren zu erklären, welcher Teil des Meshes nun welches Gearteil beeinflusst (macht besonders Spaß, wenn die sich auch noch bewegen sollen, bspw. Waffen).
WIP Website: kevinheese.de

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »KeksX« (10.02.2016, 18:38)


KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

10

10.02.2016, 18:33

Batman's Cape hat aber auch eine sehr wichtige Aufgabe: Es ist integraler Bestandteil des Kampfsystems und sorgt für das gute Feeling, das der Spieler beim Kämpfen hat.
Habe darüber mal einen sehr interessanten (wenn auch kurzen) Artikel auf Gamasutra gelesen.

Und rein technisch ist es ja auch nicht komplett zu vergleichen mit dem Problem, das der OP anspricht.
WIP Website: kevinheese.de

Werbeanzeige