ZFX
ZFX Neu
Home
Community
Neueste Posts
Chat
FAQ
IOTW
Tutorials
Bücher
zfxCON
ZFXCE
Mathlib
ASSIMP
NES
Wir über uns
Impressum
Regeln
Suchen
Mitgliederliste
Membername:
Passwort:
Besucher:
4395394
Jetzt (Chat):
8 (0)
Mitglieder:
5239
Themen:
24223
Nachrichten:
234554
Neuestes Mitglied:
-insane-

ZFX
Sonstige Foren
Off-Topic
Paperdoll Charakteranimation
Normal
AutorThema
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Paperdoll CharakteranimationNach oben.
Hallo

Da man hier im Forum immer nette Konzepte findet start ich einfach mal diesen thread.

Folgende Überlegung: eine Skizze http://www.img-host.de/bild.php/12782,paperdollHTRU0.jpg

In der Skizze sieht man einen humanoiden Charakter (Paperdoll) die von einem Mittelkreuz als "Festlager" ausgehend "Loslager" bzw. Gelenkverbindung besitzt. Die Frage die ich hatte war wie sag ichs dem Freund Computer? Antwort: Na in der Sprache die er am Besten versteht. Mathe! =>

Also dann war der erste Ansatz: Es muss gelingen für jedes Lager eine Gleichung aufstellen zu können die mir bei einer Verschiebung oder Drehung des Lagers die korrekten Werte liefert für alle 3 kartesischen Koordinaten. (Pnx,Pyn,Pnz)

Es wird für jedes Lager eine Matrize definiert die die Position des Lagers in Vektoren der kartesischen Achsen beschreibt. Weiter wäre es nun möglich durch eine Summe jedwede Position im Arm oder auch Bein mathematisch zu beschreiben.

Wenn ich beim Arm beginne wird PMarm = P1arm + P2arm + P3arm + PNarm.
Das hab ich dann sofort verworfen weil die Summe der Matritzen keinen Sinn ergibt da die Werte sehr schnell wachsen werden wenn man die Puppe weit vom Ursprung verschiebt.
Also nächster Ansatz: Einheitsmatrizen und keine Summe sondern ein Produkt.
PMarm = P1armE * P2armE * P3armE ... PNarmE
Mit dieser Gleichung sollte es doch möglich sein für jedes Lager die korrekte Modelmatrix zu berechnen für eine Animation.

Ist mein Ansatz falsch oder richtig?

2 Mal gendert, zuletzt am 24.01.2009, 21:28:43 Uhr von exploid.
24.01.2009, 19:39:31 Uhr
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Re: Paperdoll CharakteranimationNach oben.
rotation und translation vergessen
24.01.2009, 23:07:14 Uhr
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Re: Paperdoll CharakteranimationNach oben.
Translation ist nur auf dem Festlager möglich und Rotation müsste auf jedes Loslager ergänzt werden.

P1 ist die Festlagermatrize

Also PMarm = P1armE * P1armTranslation * P1armRotation * P2armE * P2armRotation * P3armE * P3armERotation ... PNarmE * PNarmRotation

Wenn jetzt ein Vertex mit der Matrix multipliziert wird ist es unter Berücksichtigung aller Rotationen und der Translation bewegt.

Stimmt oder nicht?

4 Mal gendert, zuletzt am 24.01.2009, 23:21:49 Uhr von exploid.
24.01.2009, 23:13:50 Uhr
Jörg Offline
ZFX'ler


Registriert seit:
03.12.2005

Nordrhein-Westfalen
133916438
Re: Paperdoll CharakteranimationNach oben.
Jo, so macht man das fuer gewoehnlich.
Du musst nur aufpassen, in welchem Koordinatensystem dein Punkt (Vertex) liegt.
Liegt er im Objekt-Raum (d.h. im globalen Koordinatensystem), dann musst du vor dem Anwenden des Matrixproduktesden Vertex in den Raum des "letzten" Gelenkes deiner Hierarchie tranformieren (invertierte Ruheposition des letzten Gelenkes).
Wenn bei Dir die Bezeichnung PxxxE eine Einheitsmatrix ist, dann kannst Du die aus deiner Berechnung herausnehmen, da M*E=M ist.
27.01.2009, 10:52:14 Uhr
exploid Bin Kaffee holen
ZFX'ler


Registriert seit:
21.08.2005

Deutschland
Re: Paperdoll CharakteranimationNach oben.
Hallo Jörg

Hm ok danke für deine Antwort

Bin gerade dabei die Neuerungen von DirektX 10 zu lernen. Die Enumeration der Hardware machen die jetzt über ein neues Interface dem DirectX Graphics Infrasturcture (DXGI) daher hab die Charakteranimation erst mal wieder zu den Akten gelegt. Offensichtlich ist meine Lerngeschwindigkeit langsamer als sich DirektX ändert

Das geniale an diesen Matrizen ist das bei der
Konkatenation selbiger die Information in keiner Weise verlorengeht. Man könnte 100000de multiplizieren und jede einzelne wäre im Resultat vorhanden. Das find ich genial. So ähnlich wie bei der Fourieranalyse bzw Laplacetransformation da kann man beliebig viele sin cos Funktionen aneinanderreihen um spezielle Funktionen zu modelieren.

Um auf das Thema zurückzukommen:
Als nächstes müsste eine sinnvolle Datenstruktur entwickelt werden die den Vertices sagt zu welcher Matrize also Pendelstützenabschnitt sie gehören damit sie korrekt gezeichnet werden.


1 Mal gendert, zuletzt am 27.01.2009, 15:23:17 Uhr von exploid.
27.01.2009, 15:19:29 Uhr
Jörg Offline
ZFX'ler


Registriert seit:
03.12.2005

Nordrhein-Westfalen
133916438
Re: Paperdoll CharakteranimationNach oben.
Theoretisch ja, aber da die Genauigkeit begrenzt ist, wird man wohl eher nicht 100000de multiplizieren koennen, ohne wesentlich Informationen zu verlieren.

Du musst die Datenstrukturen nicht neu erfinden, die gibt es doch alle schon...da du eh gerade die Doku liest, schau doch unter
http://msdn.microsoft.com/en-us/library/bb172448(VS.85).aspx
Wichtigste Erkenntnis: Ein Vektor kann zu mehreren Matrizen gehoeren.


Viel Erfolg!

Joerg
27.01.2009, 16:24:58 Uhr
Stefan Zerbst Offline
Administrator


Registriert seit:
25.02.2002

Deutschland
Re: Paperdoll CharakteranimationNach oben.
Hi,
Zitat von exploid:
Wenn ich beim Arm beginne wird PMarm = P1arm + P2arm + P3arm + PNarm.
Das hab ich dann sofort verworfen weil die Summe der Matritzen keinen Sinn ergibt da die Werte sehr schnell wachsen werden wenn man die Puppe weit vom Ursprung verschiebt.

Du erfindest gerade die Charakter-Animation neu

Aber als kleiner Einwurf von mir: Natürlich macht die Addition der Matrizen auch Sinn. Wenn man zwischen mehreren verschiedenen Animationen interpolieren will addiert man:
a * MatrixA[i] + b * MatrixB[i]
für alle i = Anzahl der Matrizen
mit a + b = 1, a, b E [0.0, 1.0]
und MatrixA Array der Matrizen für Animation A
und MatrixB Array der Matrizen für Animation B

Die jeweiligen Werte von a und b geben an zu welchen Teilen Animation A bzw. Animation B einfließen sollen ...

Ciao,
Stefan
28.01.2009, 17:44:24 Uhr
ZFX - 3D Entertainment
atr_23 Offline
Artwork-Berater


Registriert seit:
16.10.2002

Niedersachsen
107316684
Re: Paperdoll CharakteranimationNach oben.
Mmh bei Gamasutra gibts heute auch was zu dem thema:
http://www.gamasutra.com/view/feature/3916/ragdoll_physics_on_the_ds.php?print=1

oder habe ich das jetzt falsch interpretiert

Gruß
atr_23
29.01.2009, 23:24:55 Uhr
Vault 23
Normal


ZFX Community Software, Version 0.9.1
Copyright 2002-2003 by Steffen Engel