Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

3D Animationsdatei (*.ba) auslesen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Computer-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 08.08.2016, 11:45    Titel: 3D Animationsdatei (*.ba) auslesen Antworten mit Zitat

Ich versuche seit ein paar Tagen die Animationsdateien (ursprünglich vermutlich von Serious Ska Studio oder Serious Engine, allerdings sind diese hier zusammengefasst *.AA) aus einem alten Spiel (Last Chaos) auszulesen....

Da ich mittels verschiedener PlugIns bereits die 3D 'meshes' (*.bm) und Skelett-Joints (*.bs) laden und auch nutzen kann würde ich nun auch gern die kompletten fertigen (und verschiedenen) animationen hinzuladen....

das würde mir für spielereien recht viel arbeit ersparen da ich so quasi eine komplette 3D Datenbank vom Spiel hernehmen könnte (Charaktere, Tiere, Monster und verschiedene Objekte) ohne die geriggten meshes selbst animieren zu müssen... laufen, rennen, schlagen ect.....

Bisher konnte ich leider nicht wirklich viel brauchbares mit google finden und habe bisher leider nur einen groben Anfang;

Code:

'const filename = "ni.ba"
const filename = "flag1.ba"


Dim FF as Integer
FF = FreeFile

Open filename for binary as #FF

Dim headerstring as String*4
Dim headerinteger as Integer
Dim anystring as string
Dim headerfloat as Single

get #FF,,headerstring  '' 'ANIM'
?"Header 'ANIM'",headerstring

get #FF,,headerinteger '' Version??
?"version?",headerinteger,hex(headerinteger)

get #FF,,headerinteger '' n animationfiles / count animations
?"n Animations:",headerinteger,hex(headerinteger)

get #FF,,headerinteger '' len of origin AA animation filename
?headerinteger,hex(headerinteger)
anystring = space(headerinteger)

get #FF,,anystring ''origin AA animation filename
?"Animation File:",anystring

get #FF,,headerinteger ''len of animationname
anystring = space(headerinteger)

get #FF,,anystring 'name of animation
?"Animationname:",anystring

' single/float FPS (meist 0.033333)
get #FF,,headerfloat
?"FPS:",headerfloat


' 4 bytes ????????
' anzahl der betroffenen Joints in der animation? Frames der Bewegung? oder sonstwas???
get #FF,,headerinteger
?headerinteger
' 4 bytes 00 00 00 00
get #FF,,headerinteger
?headerinteger
' 4 bytes 00 00 00 00
get #FF,,headerinteger
?headerinteger
' 4 bytes 00 00 00 00
get #FF,,headerinteger
?headerinteger
' 1 x Integer 'unknown' anzahl joints????
get #FF,,headerinteger
?headerinteger

' 1 x Integer 'len Jointname'
get #FF,,headerinteger
?headerinteger

anystring=space(headerinteger)
get #FF,,anystring
?anystring


close #FF
sleep



dazu habe ich mal 2 der ba files zum downloaden... ein einfaches (flag1) mit wohl nur einer einzigen loop animation
und noch eines von einem character das etwas größer ist...

ich vermute mal das zwischen den Joint-Blöcken überwiegend single matrix daten stehen, leider fehlt mir hier und da noch der richtige ansatz...

flag1.ba
ni.ba
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 11.08.2016, 13:10    Titel: Antworten mit Zitat

Bin beim auslesen schon ein wenig weiter gekommen;

kann aber irgendwie mit den Daten nicht wirklich was anfangen....
speziell mit den 4 floats und der short/(oder 2 bytes?) vor jedem vectorpaar und wie ich das ganze nun animiere (eigentlich ja rotiere)
die ersten vectorpaare scheinen positionen zu sein (stimmen im editor jedenfalls weitestgehend überein)

da im grunde nur die joints/bones mit einer bewegung interessieren der hexausschnitt von Bone29

Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000  06 00 00 00 42 6F 6E 65 32 39 00 00 80 3F 00 00  ....Bone29..€?..
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000020  80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00  €?..............
00000030  00 00 00 00 80 3F 00 00 00 00 02 00 00 00 00 00  ....€?..........
00000040  8A 00 3D B5 AA 3E 00 00 00 00 00 00 00 80 0B 00  Š.=µª>.......€..
00000050  B6 3D 3D B5 AA 3E 00 00 00 00 00 00 00 00 0B 00  ¶==µª>..........
00000060  00 00 00 00 8A 00 97 E9 7F 3F 92 6D 04 BA 31 29  ....Š.—é.?’m.º1)
00000070  D6 BC 56 7A 01 3A 02 00 7A BF A1 54 7F 3F 9D D8  Ö¼Vz.:..z¿¡T.?.Ø
00000080  51 BC 57 24 C3 3C 9A 40 89 3D 03 00 80 3F 1C DC  Q¼W$Ã<š@‰=..€?.Ü
00000090  7E 3F 88 25 81 BC 5B 0A 10 3D 1E 36 B0 3D 04 00  ~?ˆ%.¼[..=.6°=..
000000A0  E3 3D 0F 08 7F 3F E2 D3 4E BC 6E 41 B3 3C A4 4B  ã=...?âÓN¼nA³<¤K
000000B0  AA 3D 05 00 A7 3E 9E 6E 7F 3F A7 91 CE BB 58 73  ª=..§>žn.?§‘λXs
000000C0  A4 BB 64 55 87 3D 06 00 8D 3D D6 A9 7F 3F 53 D2  ¤»dU‡=...=Ö©.?SÒ
000000D0  1D BB 6E 93 D5 BC FF 83 34 3D 07 00 80 BF 50 D4  .»n“Õ¼ÿƒ4=..€¿PÔ
000000E0  7F 3F CE 63 8D BB 82 1F 09 BD 3D C4 63 3C 08 00  .?Îc.»‚..½=Äc<..
000000F0  55 BD BD C6 7F 3F 54 AB 0D BC 9F 59 0F BD 33 42  U½½Æ.?T«.¼ŸY.½3B
00000100  AD BC 09 00 43 BE 38 9B 7F 3F D9 3F 32 BC 69 BD  .¼..C¾8›.?Ù?2¼i½
00000110  0D BD CB B4 2B BD 0A 00 79 BF 09 AC 7F 3F 46 73  .½Ë´+½..y¿.¬.?Fs
00000120  10 BC 59 56 07 BD C7 C4 18 BD 0B 00 80 BF 78 D7  .¼YV.½ÇÄ.½..€¿x×
00000130  7F 3F 9D C0 98 BB 92 76 F2 BC D6 C5 96 BC 3D B5  .?.À˜»’vò¼ÖÅ–¼=µ
00000140  AA 3E                                            ª>


auch der letzte float nach jedem joint ergeben für mich irgendwie keinen sinn....

Code:
Header 'ANIM' ANIM
version?       14           E
n Animations:  1            1
Animation File:             Data\world\StartZone\Ska\flag1.aa          33
Animationname:              flag1          5
FPS:           0.1
 12           Keyframes
 7            Joints
Bone05:
 
Matrix
     X         1             0             0
     Y         0             1             0
     Z         0             0             1
     W         0             0             0
 
Keyframe(  0): 195|         v(3)  0       -0.004561      0
Keyframe( 11): 0|           v(3)  0       -0.004561      0
Keyframe: 0| 201|           V(4)  0.7063459             -0             0             0.7078671
Keyframe: 11| 16256|        V(4)  0.7063459             -0             0             0.7078671
unknown float:  0
 
Bone06:
 
Matrix
     X         1             0             0
     Y         0             1             0
     Z         0             0             1
     W         0             0             0
 
Keyframe(  0): 0|           v(3)  1.703301              -0             0
Keyframe( 11): 0|           v(3)  1.703301              -0             0
Keyframe: 0| 0|             V(4)  0.9999995              0            -0            -0.001075501
Keyframe: 11| 195|          V(4)  0.9999995              0            -0            -0.001075501
unknown float:  1.703301
 
Bone07:
 
Matrix
     X         1             0             0
     Y         0             1             0
     Z         0             0             1
     W         0             0             0
 
Keyframe(  0): 138|         v(3)  0.575091               0             0
Keyframe( 11): 0|           v(3)  0.575091               0             0
Keyframe: 0| 138|           V(4)  1        0             0             0
Keyframe: 11| 8|            V(4)  1        0             0             0
unknown float:  0.575091
 
Bone08:
 
Matrix
     X         1             0             0
     Y         0             1             0
     Z         0             0             1
     W         0             0             0
 
Keyframe(  0): 138|         v(3)  1.703301              -0             0
Keyframe( 11): 0|           v(3)  1.703301              -0             0
Keyframe: 0| 138|           V(4)  0.6807516              0.06870494    0.07291941   -0.7256303
Keyframe: 2| 3|             V(4)  0.6729881              0.04578535    0.04760337   -0.7366987
Keyframe: 3| 8|             V(4)  0.670723               0.03046191    0.03122042   -0.7404242
Keyframe: 4| 0|             V(4)  0.6713531              0.003883575   0.003661635  -0.7411186
Keyframe: 5| 16353|         V(4)  0.6726606             -0.0265405    -0.02760159   -0.7389596
Keyframe: 6| 138|           V(4)  0.6733309             -0.0424431    -0.0438811    -0.7368168
Keyframe: 7| 8|             V(4)  0.6737201             -0.03276955   -0.03393026   -0.7374795
Keyframe: 8| 6|             V(4)  0.6739423             -0.008586046  -0.009006706  -0.7386793
Keyframe: 9| 138|           V(4)  0.6744286              0.01516654    0.01567994   -0.7380177
Keyframe: 10| 0|            V(4)  0.6762923              0.03333507    0.03495382   -0.7350479
Keyframe: 11| 138|          V(4)  0.6787597              0.05103757    0.05395576   -0.7305951
unknown float:  1.703301
 
Bone09:
 
Matrix
     X         1             0             0
     Y         0             1             0
     Z         0             0             1
     W         0             0             0
 
Keyframe(  0): 138|         v(3)  0.297268              -0             0
Keyframe( 11): 6|           v(3)  0.297268              -0             0
Keyframe: 0| 138|           V(4)  0.9905784              0.002589144  -0.1305005     0.0414422
Keyframe: 1| 138|           V(4)  0.9971794              0.004333724  -0.07164884    0.02192935
Keyframe: 2| 0|             V(4)  0.9999006              0.006061103  -0.01251824    0.002331232
Keyframe: 3| 8|             V(4)  0.9992633              0.006216579   0.03497351   -0.01451369
Keyframe: 4| 3|             V(4)  0.9968255              0.003162038   0.07322471   -0.03109672
Keyframe: 5| 15434|         V(4)  0.9940013             -0.001445169   0.09972045   -0.04489003
Keyframe: 6|-17209|         V(4)  0.9943835             -0.004174949   0.09541691   -0.04560062
Keyframe: 7| 138|           V(4)  0.9991067             -0.003013942   0.03585878   -0.02215179
Keyframe: 8| 138|           V(4)  0.9983941              5.734209e-005              -0.05474792    0.01455237
Keyframe: 9| 8|             V(4)  0.9916788              0.002417366  -0.1218454     0.04148823
Keyframe: 10| 6|            V(4)  0.9889798              0.002949504  -0.1400587     0.0478938
Keyframe: 11| 15641|        V(4)  0.9897958              0.002769258  -0.1352822     0.04466856
unknown float:  0.297268
 
Bone29:
 
Matrix
     X         1             0             0
     Y         0             1             0
     Z         0             0             1
     W         0             0             0
 
Keyframe(  0): 138|         v(3)  0.333414               0            -0
Keyframe( 11): 15798|       v(3)  0.333414               0             0
Keyframe: 0| 138|           V(4)  0.999658              -0.0005051728 -0.02614269    0.0004939189
Keyframe: 2|-16518|         V(4)  0.9973851             -0.01280799    0.02382104    0.06701775
Keyframe: 3| 16256|         V(4)  0.9955461             -0.01576497    0.03516613    0.08604072
Keyframe: 4| 15843|         V(4)  0.9962167             -0.01262376    0.02188179    0.08315209
Keyframe: 5| 16039|         V(4)  0.9977816             -0.006303984  -0.005018633   0.06608084
Keyframe: 6| 15757|         V(4)  0.9986852             -0.002408166  -0.02607128    0.04407119
Keyframe: 7|-16512|         V(4)  0.9993334             -0.004314876  -0.03347731    0.01390177
Keyframe: 8|-17067|         V(4)  0.9991263             -0.008646805  -0.03499758   -0.02114973
Keyframe: 9|-16829|         V(4)  0.9984622             -0.01087948   -0.03460446   -0.04192046
Keyframe: 10|-16519|        V(4)  0.9987188             -0.008816546  -0.03304133   -0.03729704
Keyframe: 11|-16512|        V(4)  0.9993815             -0.004661633  -0.02959755   -0.01840488
unknown float:  0.333414
 
Bone30:
 
Matrix
     X         1             0             0
     Y         0             1             0
     Z         0             0             1
     W         0             0             0
 
Keyframe(  0): 185|         v(3)  0.659432              -0            -0
Keyframe( 11): 8224|        v(3)  0.659432              -0            -0
Keyframe: 0| 185|           V(4)  1        0             0             0
Keyframe: 11| 2592|         V(4)  1        0             0             0
unknown float:  0.659432
 
 0
--------------------------------

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Computer-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz