Author Topic: Decent FF7 Model Viewer  (Read 116625 times)

mirex

  • *
  • Posts: 1645
    • View Profile
    • http://mirex.mypage.sk
Decent FF7 Model Viewer
« Reply #150 on: 2004-09-08 06:26:10 »
Quote from: Cyb
USB flash drive time?

Duh not having any ... seems too expensive to me for just a 128MB ... i could have HDD 40GB for that price ... so i use floppies and HDD's :)
Quote from: Cyb
Have an idea why my pieces aren't too integrated with cloud mirex?  
I need to be sure I am doing back face removal! DOH!

Thats simple, your skelet is not calculated properly, or your model parts are not lined up with skelet ;) Try drawing skeleton aswell (you can use glBegin( LINE ) command), then you will see clearly what's wrong.

L. Spiro

  • *
  • Posts: 797
    • View Profile
    • http://www.memoryhacking.com/index.php
Decent FF7 Model Viewer
« Reply #151 on: 2004-09-08 06:58:35 »
Can you do me a favor (mirex)?

Try adding something that exports information to a file for each bone you draw on Cloud’s model.
The information just needs to be which bone, and the rotation for that bone.

It may be possible for me to be walking the bones in a slightly wrong order.  So I need to see the order of the bones when walked correctly and the rotation for each bone.


Thank you in advance.
L. Spiro

L. Spiro

  • *
  • Posts: 797
    • View Profile
    • http://www.memoryhacking.com/index.php
Decent FF7 Model Viewer
« Reply #152 on: 2004-09-08 08:09:23 »
Here are my results.
These lists are organized by order of drawing/rotating, walking down the bone tree.  It just happens that each child down the line is the next bone in the master list.  For each child the matrix is pushed and popped, so the parent rotations carry into the child, and the child is then rotated from there.

For Battle Cloud:
Code: [Select]
Bone   0: Name: rtam, Parent:  -1, Children:   3, Rotations:   0.00000000   0.00000000   0.00000000  Translating:  -39.00000000
Bone   1: Name: rtan, Parent:   0, Children:   1, Rotations: 270.00000000 333.10546875   0.00000000  Translating: -163.00000000
Bone   2: Name: rtao, Parent:   1, Children:   0, Rotations: 348.92578125 357.62695313 327.12890625  Translating: -146.00000000
Bone   3: Name:     , Parent:   0, Children:   1, Rotations:  16.43554688  17.57812500  61.52343750  Translating: -141.00000000
Bone   4: Name:     , Parent:   3, Children:   1, Rotations: 332.05078125 337.67578125 245.21484375  Translating: -59.00000000
Bone   5: Name: rtar, Parent:   4, Children:   1, Rotations:  34.27734375  90.08789063  61.96289063  Translating: -133.00000000
Bone   6: Name: rtas, Parent:   5, Children:   1, Rotations:  74.88281250  42.53906250 335.21484375  Translating: -117.00000000
Bone   7: Name: rtat, Parent:   6, Children:   0, Rotations: 322.29492188   0.00000000   0.00000000  Translating: -85.00000000
Bone   8: Name:     , Parent:   0, Children:   1, Rotations:   3.69140625   8.52539063 336.18164063  Translating: -141.00000000
Bone   9: Name:     , Parent:   8, Children:   1, Rotations: 358.50585938  21.09375000  53.34960938  Translating: -59.00000000
Bone  10: Name: rtaw, Parent:   9, Children:   1, Rotations:  66.18164063   0.52734375  15.90820313  Translating: -133.00000000
Bone  11: Name: rtax, Parent:  10, Children:   1, Rotations:  56.25000000 242.05078125 318.77929688  Translating: -117.00000000
Bone  12: Name: rtay, Parent:  11, Children:   0, Rotations: 338.20312500   0.00000000   0.00000000  Translating: -76.00000000
Bone  13: Name:     , Parent:  -1, Children:   1, Rotations: 354.72656250 358.68164063 332.22656250  Translating:  -37.00000000
Bone  14: Name: rtba, Parent:  13, Children:   1, Rotations:   0.00000000 229.04296875   0.00000000  Translating: -277.00000000
Bone  15: Name: rtbb, Parent:  14, Children:   1, Rotations:  58.44726563 313.68164063 235.28320313  Translating: -253.00000000
Bone  16: Name: rtbc, Parent:  15, Children:   1, Rotations:  24.96093750   0.00000000   0.00000000  Translating: -77.00000000
Bone  17: Name: rtbd, Parent:  16, Children:   0, Rotations: 303.83789063 358.76953125  68.20312500  Translating: -121.00000000
Bone  18: Name:     , Parent:  -1, Children:   1, Rotations: 298.91601563 358.41796875   1.40625000  Translating:  -37.00000000
Bone  19: Name: rtbf, Parent:  18, Children:   1, Rotations:   0.00000000  77.16796875   0.00000000  Translating: -277.00000000
Bone  20: Name: rtbg, Parent:  19, Children:   1, Rotations:  31.46484375 270.35156250   7.64648438  Translating: -253.00000000
Bone  21: Name: rtbh, Parent:  20, Children:   1, Rotations:  58.44726563   0.00000000   0.00000000  Translating: -77.00000000
Bone  22: Name: rtbi, Parent:  21, Children:   0, Rotations: 331.25976563 349.36523438   5.97656250  Translating: -121.00000000

This results in:


For Overworld Cloud:
Code: [Select]
Bone  0: Name:      hip, Parent: -1, Children: 3,Rotations: 270.00000000   0.00000000   0.00000000  Translating:  -1.74572361
Bone  1: Name:    chest, Parent:  0, Children: 1,Rotations:  49.21875000   0.00000000   0.00000000  Translating:  -5.18153906
Bone  2: Name:     head, Parent:  1, Children: 0,Rotations: 313.59375000   0.00000000   0.00000000  Translating:  -6.83338976
Bone  3: Name:  l_chest, Parent:  0, Children: 1,Rotations:  36.56250000 315.00000000  40.78125000  Translating:  -4.98453712
Bone  4: Name: l_collar, Parent:  3, Children: 1,Rotations: 300.93750000 323.43750000  39.37500000  Translating:  -2.30645990
Bone  5: Name:  l_uparm, Parent:  4, Children: 1,Rotations: 316.40625000  39.37500000  57.65625000  Translating:  -2.73342323
Bone  6: Name:  l_foarm, Parent:  5, Children: 1,Rotations: 282.65625000   0.00000000   0.00000000  Translating:  -4.60069847
Bone  7: Name:   l_hand, Parent:  6, Children: 0,Rotations:   0.00000000   0.00000000   0.00000000  Translating:  -2.27860451
Bone  8: Name:  r_chest, Parent:  0, Children: 1,Rotations:  36.56250000  45.00000000 320.62500000  Translating:  -4.98453712
Bone  9: Name: r_collar, Parent:  8, Children: 1,Rotations: 303.75000000  30.93750000 324.84375000  Translating:  -2.30645990
Bone 10: Name:  r_uparm, Parent:  9, Children: 1,Rotations: 322.03125000 298.12500000 323.43750000  Translating:  -2.73342323
Bone 11: Name:  r_foarm, Parent: 10, Children: 1,Rotations: 288.28125000   0.00000000   0.00000000  Translating:  -4.60069847
Bone 12: Name:   r_hand, Parent: 11, Children: 0,Rotations:   0.00000000   0.00000000   0.00000000  Translating:  -2.27860451
Bone 13: Name:    l_hip, Parent: -1, Children: 1,Rotations:   0.00000000 251.71875000 180.00000000  Translating:  -1.98165441
Bone 14: Name:  l_femur, Parent: 13, Children: 1,Rotations: 289.68750000  63.28125000   7.03125000  Translating:  -5.28867340
Bone 15: Name:  l_tibia, Parent: 14, Children: 1,Rotations:  29.53125000   0.00000000   0.00000000  Translating:  -7.72580004
Bone 16: Name:   l_foot, Parent: 15, Children: 0,Rotations: 284.06250000 191.25000000 171.56250000  Translating:  -6.90587616
Bone 17: Name:    r_hip, Parent: -1, Children: 1,Rotations:   0.00000000 108.28125000 180.00000000  Translating:  -1.98165441
Bone 18: Name:  r_femur, Parent: 17, Children: 1,Rotations: 309.37500000 108.28125000 180.00000000  Translating:  -5.28867340
Bone 19: Name:  r_tibia, Parent: 18, Children: 1,Rotations:  47.81250000 180.00000000 180.00000000  Translating:  -7.72580004
Bone 20: Name:   r_foot, Parent: 19, Children: 0,Rotations: 272.81250000 175.78125000 181.40625000  Translating:  -6.90587616

You’ll notice this time I reversed the translations along the Z.  This gets this result:

But notice that even though the bones land in the right spots they are on the wrong side of Cloud.  This only shows because of the coloring on his arm and shoulder.  On Yuffie, of course, her whole arm is backwards.
If I DON’T translate along the Z by the NEGATIVE bone length, this is what happens:


Each part is facing the correct direction, and is on the correct side of his body, but the bones went in the wrong direction.  After placing his body, instead of going up to place his head, it went down and put his head under his ass instead, in the exact opposite direction it was supposed to go.
That is why I reversed the bone lengths in the first place.
Then, to fix the problem with his part landing on the wrong sides, I reversed the Y and Z vertex coordinates on each model upon loading.


The first and last shots are without any modifications to the bone lengths and all of them are without modifications to the vertices upon loading (or after).

I suspect I may be walking in the wrong order, but that doesn't explain why reversing the things I reversed fixes the problem (actually it isn’t fixed with my method; the models align properly, but are exactly mirrored of what they should be).

So I posted my walking order and all the information there is about each bone.

The information about Battle Cloud is his first frame.
The other Cloud’s information is just some frame from aaga.a.

L. Spiro

Cyberman

  • *
  • Posts: 1572
    • View Profile
Progress
« Reply #153 on: 2004-09-08 22:56:22 »
I've made some progress it's still not right but it's better, I think something is messed up somewhere but

is a lot better I would say.

L. Spiro doing good there!

Mirex
I seem to be having trouble getting the Lines to be drawn OVER model, do I have to make the model semi transparent for them to be properly visable or something?

Cyb

halkun

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
Decent FF7 Model Viewer
« Reply #154 on: 2004-09-08 23:11:05 »
Hehe!
"Not in the face! Not in the face!"

Cyberman

  • *
  • Posts: 1572
    • View Profile
Decent FF7 Model Viewer
« Reply #155 on: 2004-09-09 02:12:16 »
Quote from: halkun
Hehe!
"Not in the face! Not in the face!"

You know. you're right that is what it looks like!
Or how about "Don't hit me Tifa!"

Cyb

mirex

  • *
  • Posts: 1645
    • View Profile
    • http://mirex.mypage.sk
Decent FF7 Model Viewer
« Reply #156 on: 2004-09-09 08:57:24 »
Quote from: Cyberman
I seem to be having trouble getting the Lines to be drawn OVER model, do I have to make the model semi transparent for them to be properly visable or something?

if you want to draw them over the model you have to disable depth checking.

1) enable depth check so model will be drawn properly:
glEnable( GL_DEPTH_TEST );
2) draw your model
3) disable depthcheck by glDisable( GL_DEPTH_TEST );
4) draw bone lines
and voila there it is, bones allways on top of the model :)

reason is that if depth test is on, there is test if drawn item should be drawn or it is 'hidden' behind some other graphic object. If depth test is off no test is performed, and item is drawn anyhow.

L. Spiro

  • *
  • Posts: 797
    • View Profile
    • http://www.memoryhacking.com/index.php
Decent FF7 Model Viewer
« Reply #157 on: 2004-09-09 09:25:31 »
Any possible solutions to my problem at all?

What could possibly cause all the correct numbers to place his head under his ass instead of on his shoulders?

I’m definitely not walking in the wrong order.
The bones are definitely loaded correctly and so are the animations.
The models are loaded correctly as well, as shown in the pictures.

But the only error is that the bone goes down instead of up.

Anyone want to post their code of walking/drawing the bone tree with recursion?


L. Spiro

L. Spiro

  • *
  • Posts: 797
    • View Profile
    • http://www.memoryhacking.com/index.php
Decent FF7 Model Viewer
« Reply #158 on: 2004-09-09 09:58:41 »
I think your documentation may be off, mirex.
To get this result:

I had to seek past 4 extra bytes at the start of the animation (go after “u1” in the document) and then skip four MORE bytes, AND start with Odd set to false instead of true (when I copied your code from above, it starts as true).

Weird.

But now you can see I am back to the same problem I had with the overworld models.  Everything is on the wrong side.


HEEEEELLLP!!!


L. Spiro

mirex

  • *
  • Posts: 1645
    • View Profile
    • http://mirex.mypage.sk
Decent FF7 Model Viewer
« Reply #159 on: 2004-09-09 12:02:02 »
if everything is on the wrong side try:
-flipping model coordinates ( negate Y coords or something )
-switching one rotation from positive to negative values

L. Spiro

  • *
  • Posts: 797
    • View Profile
    • http://www.memoryhacking.com/index.php
Decent FF7 Model Viewer
« Reply #160 on: 2004-09-09 12:57:30 »
I did that; I switched the Y and Z so the models would flip over.
But that isn’t the PROPER way to do it.
My models are exact mirrors of the real game.

I’ve tried mangling with the rotations in every way but none lead to Rome.

L. Spiro

Anakin

  • *
  • Posts: 42
    • View Profile
Decent FF7 Model Viewer
« Reply #161 on: 2004-09-09 14:14:24 »
Quote from: L. Spiro
I did that; I switched the Y and Z so the models would flip over.
But that isn’t the PROPER way to do it.
My models are exact mirrors of the real game.

I’ve tried mangling with the rotations in every way but none lead to Rome.

L. Spiro


I am totaly ignorant of programming, especially of graphics programming but could you try to use 360-X for X 360-Y for Y and 360-Z for Z and see what happens?
(or maybe 180-X,Y,Z respectively ...you can understand my thinking)
just a silly idea...
(maybe the PSX has a 'perverse' way of producing 3D graphics...)

L. Spiro

  • *
  • Posts: 797
    • View Profile
    • http://www.memoryhacking.com/index.php
Decent FF7 Model Viewer
« Reply #162 on: 2004-09-09 15:57:37 »
These pictures are too big to post into the forum box but here are a few pictures of my results.
I have been having fun.

http://upload.serverseed.com/pictars4/HereTheyCome.png
http://upload.serverseed.com/pictars4/Ruby%20Weapon%203.png
http://upload.serverseed.com/pictars4/Bahamut%20ZERO.png

But actually you can’t tell that each part is mirrored.

As for rotating 180-X, etc., my problem is that I am sure they didn’t do it that way.  What I have now does work fine, but it too is wrong in the end.
And 3-D manipulation of objects isn’t really complicated so I don’t understand why I messed up somewhere, but it is not big deal anymore.

Maybe my game will just use mirrored graphics and see if anyone notices.


L. Spiro

Anakin

  • *
  • Posts: 42
    • View Profile
Decent FF7 Model Viewer
« Reply #163 on: 2004-09-09 17:34:41 »
probably they didn't do it this way...
but reflecting some more on it I am more convinced that 360-X,Y,Z gives you the mirror of the mirror image = the correct image

L. Spiro

  • *
  • Posts: 797
    • View Profile
    • http://www.memoryhacking.com/index.php
Decent FF7 Model Viewer
« Reply #164 on: 2004-09-09 18:06:10 »
Here is Barret’s normal animation unpacked.
It is the first animation in his **da file(s).


Code: [Select]

Frame 0: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 494.0f -1.0f
Frame 0: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 0: Bone 1: < 12.39258f, 0.7910156f, 4.482422f >
Frame 0: Bone 2: < 353.584f, 3.427734f, 18.89648f >
Frame 0: Bone 3: < 354.5508f, 346.1133f, 34.98047f >
Frame 0: Bone 4: < 329.3262f, 286.7871f, 239.8535f >
Frame 0: Bone 5: < 42.27539f, 346.377f, 270.9668f >
Frame 0: Bone 6: < 292.3242f, 73.47656f, 295.5762f >
Frame 0: Bone 7: < 1.757813f, 15.64453f, 6.416016f >
Frame 0: Bone 8: < 352.5293f, 12.65625f, 333.5449f >
Frame 0: Bone 9: < 338.5547f, 70.3125f, 121.9043f >
Frame 0: Bone 10: < 44.38477f, 322.2949f, 26.45508f >
Frame 0: Bone 11: < 296.543f, 349.1016f, 0.0f >
Frame 0: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 0: Bone 13: < 359.209f, 48.16406f, 61.52344f >
Frame 0: Bone 14: < 64.16016f, 8.789063e-002f, 0.1757813f >
Frame 0: Bone 15: < 306.6504f, 26.89453f, 346.2012f >
Frame 0: Bone 16: < 299.2676f, 0.0f, 0.0f >
Frame 0: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 0: Bone 18: < 341.4551f, 317.4609f, 298.4766f >
Frame 0: Bone 19: < 62.22656f, 0.8789063f, 0.9667969f >
Frame 0: Bone 20: < 318.0762f, 346.7285f, 6.416016f >
Frame 0: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 1: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 490.0f -3.0f
Frame 1: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 1: Bone 1: < 12.65625f, 0.7910156f, 4.482422f >
Frame 1: Bone 2: < 353.1445f, 3.427734f, 18.89648f >
Frame 1: Bone 3: < 354.8145f, 346.1133f, 34.89258f >
Frame 1: Bone 4: < 329.502f, 287.3145f, 239.6777f >
Frame 1: Bone 5: < 42.71484f, 346.2891f, 270.8789f >
Frame 1: Bone 6: < 292.5f, 72.68555f, 296.2793f >
Frame 1: Bone 7: < 1.142578f, 15.82031f, 6.416016f >
Frame 1: Bone 8: < 352.793f, 12.65625f, 333.6328f >
Frame 1: Bone 9: < 337.9395f, 69.25781f, 122.3438f >
Frame 1: Bone 10: < 44.47266f, 320.7129f, 25.3125f >
Frame 1: Bone 11: < 296.6309f, 349.1016f, 0.0f >
Frame 1: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 1: Bone 13: < 359.4727f, 47.37305f, 61.17188f >
Frame 1: Bone 14: < 65.47852f, 8.789063e-002f, 0.1757813f >
Frame 1: Bone 15: < 306.2109f, 28.30078f, 344.9707f >
Frame 1: Bone 16: < 299.2676f, 0.0f, 0.0f >
Frame 1: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 1: Bone 18: < 341.3672f, 318.3398f, 298.3887f >
Frame 1: Bone 19: < 64.16016f, 0.8789063f, 1.054688f >
Frame 1: Bone 20: < 316.9336f, 346.1133f, 7.03125f >
Frame 1: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 2: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 484.0f -7.0f
Frame 2: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 2: Bone 1: < 13.00781f, 0.8789063f, 4.482422f >
Frame 2: Bone 2: < 352.5293f, 3.251953f, 18.89648f >
Frame 2: Bone 3: < 355.166f, 346.1133f, 34.80469f >
Frame 2: Bone 4: < 329.8535f, 287.9297f, 239.3262f >
Frame 2: Bone 5: < 43.33008f, 346.2891f, 270.791f >
Frame 2: Bone 6: < 292.6758f, 71.54297f, 297.4219f >
Frame 2: Bone 7: < 0.2636719f, 15.99609f, 6.328125f >
Frame 2: Bone 8: < 353.1445f, 12.65625f, 333.7207f >
Frame 2: Bone 9: < 337.0605f, 67.76367f, 122.959f >
Frame 2: Bone 10: < 44.56055f, 318.4277f, 23.64258f >
Frame 2: Bone 11: < 296.8066f, 349.1016f, 8.789063e-002f >
Frame 2: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 2: Bone 13: < 359.7363f, 46.23047f, 60.73242f >
Frame 2: Bone 14: < 67.32422f, 0.1757813f, 0.1757813f >
Frame 2: Bone 15: < 305.5957f, 30.41016f, 343.2129f >
Frame 2: Bone 16: < 299.3555f, 0.0f, 0.0f >
Frame 2: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 2: Bone 18: < 341.1914f, 319.4824f, 298.125f >
Frame 2: Bone 19: < 66.88477f, 1.054688f, 1.142578f >
Frame 2: Bone 20: < 315.3516f, 345.1465f, 7.910156f >
Frame 2: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 3: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 478.0f -12.0f
Frame 3: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 3: Bone 1: < 13.53516f, 0.8789063f, 4.482422f >
Frame 3: Bone 2: < 351.6504f, 3.164063f, 18.89648f >
Frame 3: Bone 3: < 355.6055f, 346.2012f, 34.7168f >
Frame 3: Bone 4: < 330.293f, 288.8086f, 238.9746f >
Frame 3: Bone 5: < 44.12109f, 346.2012f, 270.6152f >
Frame 3: Bone 6: < 292.9395f, 70.13672f, 298.7402f >
Frame 3: Bone 7: < 359.209f, 16.17188f, 6.240234f >
Frame 3: Bone 8: < 353.584f, 12.65625f, 333.8086f >
Frame 3: Bone 9: < 336.0938f, 66.00586f, 123.6621f >
Frame 3: Bone 10: < 44.56055f, 315.791f, 21.79688f >
Frame 3: Bone 11: < 296.8945f, 349.0137f, 8.789063e-002f >
Frame 3: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 3: Bone 13: < 8.789063e-002f, 45.0f, 60.29297f >
Frame 3: Bone 14: < 69.3457f, 0.1757813f, 0.1757813f >
Frame 3: Bone 15: < 304.9805f, 32.7832f, 341.1914f >
Frame 3: Bone 16: < 299.3555f, 0.0f, 0.0f >
Frame 3: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 3: Bone 18: < 341.0156f, 320.8887f, 297.7734f >
Frame 3: Bone 19: < 70.04883f, 1.230469f, 1.318359f >
Frame 3: Bone 20: < 313.5059f, 344.0918f, 9.052734f >
Frame 3: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 4: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 472.0f -16.0f
Frame 4: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 4: Bone 1: < 14.0625f, 0.9667969f, 4.482422f >
Frame 4: Bone 2: < 350.7715f, 2.988281f, 18.98438f >
Frame 4: Bone 3: < 356.1328f, 346.2891f, 34.62891f >
Frame 4: Bone 4: < 330.8203f, 289.7754f, 238.5352f >
Frame 4: Bone 5: < 45.0f, 346.1133f, 270.4395f >
Frame 4: Bone 6: < 293.291f, 68.55469f, 300.1465f >
Frame 4: Bone 7: < 358.0664f, 16.43555f, 6.064453f >
Frame 4: Bone 8: < 354.1113f, 12.74414f, 333.8965f >
Frame 4: Bone 9: < 335.127f, 64.24805f, 124.3652f >
Frame 4: Bone 10: < 44.56055f, 313.2422f, 19.95117f >
Frame 4: Bone 11: < 297.0703f, 349.0137f, 0.1757813f >
Frame 4: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 4: Bone 13: < 0.4394531f, 43.68164f, 59.85352f >
Frame 4: Bone 14: < 71.45508f, 0.1757813f, 0.1757813f >
Frame 4: Bone 15: < 304.4531f, 35.33203f, 338.9941f >
Frame 4: Bone 16: < 299.3555f, 0.0f, 0.0f >
Frame 4: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 4: Bone 18: < 340.8398f, 322.207f, 297.5098f >
Frame 4: Bone 19: < 73.21289f, 1.494141f, 1.494141f >
Frame 4: Bone 20: < 311.748f, 342.8613f, 10.37109f >
Frame 4: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 5: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 466.0f -20.0f
Frame 5: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 5: Bone 1: < 14.50195f, 0.9667969f, 4.482422f >
Frame 5: Bone 2: < 349.9805f, 2.8125f, 18.98438f >
Frame 5: Bone 3: < 356.6602f, 346.2891f, 34.45313f >
Frame 5: Bone 4: < 331.3477f, 290.8301f, 238.0957f >
Frame 5: Bone 5: < 45.9668f, 346.0254f, 270.1758f >
Frame 5: Bone 6: < 293.6426f, 66.88477f, 301.6406f >
Frame 5: Bone 7: < 356.748f, 16.69922f, 5.888672f >
Frame 5: Bone 8: < 354.6387f, 12.74414f, 333.9844f >
Frame 5: Bone 9: < 334.248f, 62.66602f, 125.0684f >
Frame 5: Bone 10: < 44.47266f, 310.957f, 18.45703f >
Frame 5: Bone 11: < 297.2461f, 349.0137f, 0.1757813f >
Frame 5: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 5: Bone 13: < 0.6152344f, 42.53906f, 59.58984f >
Frame 5: Bone 14: < 73.30078f, 0.1757813f, 0.1757813f >
Frame 5: Bone 15: < 304.0137f, 37.5293f, 336.9727f >
Frame 5: Bone 16: < 299.3555f, 0.0f, 0.0f >
Frame 5: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 5: Bone 18: < 340.6641f, 323.3496f, 297.1582f >
Frame 5: Bone 19: < 76.02539f, 1.757813f, 1.845703f >
Frame 5: Bone 20: < 310.166f, 341.7188f, 11.51367f >
Frame 5: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 6: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 462.0f -23.0f
Frame 6: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 6: Bone 1: < 15.0293f, 1.054688f, 4.482422f >
Frame 6: Bone 2: < 349.1016f, 2.636719f, 18.98438f >
Frame 6: Bone 3: < 357.0996f, 346.377f, 34.36523f >
Frame 6: Bone 4: < 331.9629f, 291.7969f, 237.6563f >
Frame 6: Bone 5: < 46.8457f, 345.8496f, 270.0f >
Frame 6: Bone 6: < 294.082f, 65.39063f, 303.1348f >
Frame 6: Bone 7: < 355.5176f, 16.96289f, 5.712891f >
Frame 6: Bone 8: < 355.0781f, 12.74414f, 334.1602f >
Frame 6: Bone 9: < 333.7207f, 61.52344f, 125.5078f >
Frame 6: Bone 10: < 44.38477f, 309.375f, 17.31445f >
Frame 6: Bone 11: < 297.334f, 180.0f, 0.1757813f >
Frame 6: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 6: Bone 13: < 0.7910156f, 41.74805f, 59.32617f >
Frame 6: Bone 14: < 74.53125f, 0.1757813f, 0.2636719f >
Frame 6: Bone 15: < 303.6621f, 39.19922f, 335.4785f >
Frame 6: Bone 16: < 299.3555f, 0.0f, 0.0f >
Frame 6: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 6: Bone 18: < 340.4883f, 324.2285f, 296.8945f >
Frame 6: Bone 19: < 77.95898f, 2.021484f, 2.109375f >
Frame 6: Bone 20: < 309.1113f, 340.9277f, 12.48047f >
Frame 6: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 7: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 461.0f -24.0f
Frame 7: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 7: Bone 1: < 15.38086f, 1.054688f, 4.482422f >
Frame 7: Bone 2: < 348.4863f, 2.548828f, 18.98438f >
Frame 7: Bone 3: < 357.4512f, 346.377f, 34.27734f >
Frame 7: Bone 4: < 332.4902f, 292.7637f, 237.3047f >
Frame 7: Bone 5: < 47.72461f, 345.7617f, 269.7363f >
Frame 7: Bone 6: < 294.4336f, 63.89648f, 304.4531f >
Frame 7: Bone 7: < 354.2871f, 17.13867f, 5.537109f >
Frame 7: Bone 8: < 355.5176f, 12.83203f, 334.248f >
Frame 7: Bone 9: < 333.457f, 61.08398f, 125.6836f >
Frame 7: Bone 10: < 44.29688f, 308.7598f, 16.875f >
Frame 7: Bone 11: < 297.334f, 348.9258f, 0.1757813f >
Frame 7: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 7: Bone 13: < 0.8789063f, 41.48438f, 59.23828f >
Frame 7: Bone 14: < 75.05859f, 0.2636719f, 0.2636719f >
Frame 7: Bone 15: < 303.5742f, 39.81445f, 334.9512f >
Frame 7: Bone 16: < 299.3555f, 0.0f, 0.0f >
Frame 7: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 7: Bone 18: < 340.4883f, 324.4922f, 296.8066f >
Frame 7: Bone 19: < 78.66211f, 2.197266f, 2.285156f >
Frame 7: Bone 20: < 308.6719f, 340.5762f, 12.83203f >
Frame 7: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 8: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 461.0f -23.0f
Frame 8: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 8: Bone 1: < 15.64453f, 1.054688f, 4.482422f >
Frame 8: Bone 2: < 348.0469f, 2.460938f, 19.07227f >
Frame 8: Bone 3: < 357.7148f, 346.377f, 34.18945f >
Frame 8: Bone 4: < 332.9297f, 293.5547f, 236.9531f >
Frame 8: Bone 5: < 48.51563f, 345.6738f, 269.5605f >
Frame 8: Bone 6: < 294.7852f, 62.66602f, 305.5078f >
Frame 8: Bone 7: < 353.2324f, 17.40234f, 5.361328f >
Frame 8: Bone 8: < 355.7813f, 12.83203f, 334.248f >
Frame 8: Bone 9: < 333.5449f, 61.34766f, 125.5957f >
Frame 8: Bone 10: < 44.38477f, 309.0234f, 17.13867f >
Frame 8: Bone 11: < 297.334f, 348.9258f, 0.1757813f >
Frame 8: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 8: Bone 13: < 0.8789063f, 41.57227f, 59.23828f >
Frame 8: Bone 14: < 74.79492f, 0.1757813f, 0.2636719f >
Frame 8: Bone 15: < 303.6621f, 39.55078f, 335.2148f >
Frame 8: Bone 16: < 299.3555f, 0.0f, 0.0f >
Frame 8: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 8: Bone 18: < 340.4883f, 324.4043f, 296.8066f >
Frame 8: Bone 19: < 78.31055f, 2.109375f, 2.197266f >
Frame 8: Bone 20: < 308.8477f, 340.752f, 12.65625f >
Frame 8: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 9: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 463.0f -22.0f
Frame 9: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 9: Bone 1: < 15.73242f, 1.054688f, 4.570313f >
Frame 9: Bone 2: < 347.8711f, 2.460938f, 19.07227f >
Frame 9: Bone 3: < 357.8027f, 346.377f, 34.18945f >
Frame 9: Bone 4: < 333.2813f, 294.1699f, 236.6895f >
Frame 9: Bone 5: < 49.13086f, 345.498f, 269.3848f >
Frame 9: Bone 6: < 295.0488f, 61.69922f, 306.3867f >
Frame 9: Bone 7: < 352.3535f, 17.57813f, 5.273438f >
Frame 9: Bone 8: < 355.8691f, 12.83203f, 334.3359f >
Frame 9: Bone 9: < 333.8086f, 61.875f, 125.332f >
Frame 9: Bone 10: < 44.38477f, 309.8145f, 17.66602f >
Frame 9: Bone 11: < 297.334f, 348.9258f, 0.1757813f >
Frame 9: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 9: Bone 13: < 0.7910156f, 42.01172f, 59.41406f >
Frame 9: Bone 14: < 74.17969f, 0.1757813f, 0.1757813f >
Frame 9: Bone 15: < 303.75f, 38.75977f, 335.918f >
Frame 9: Bone 16: < 299.3555f, 0.0f, 0.0f >
Frame 9: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 9: Bone 18: < 340.5762f, 323.9648f, 296.9824f >
Frame 9: Bone 19: < 77.43164f, 1.933594f, 2.021484f >
Frame 9: Bone 20: < 309.375f, 341.1035f, 12.2168f >
Frame 9: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 10: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 466.0f -20.0f
Frame 10: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 10: Bone 1: < 15.64453f, 1.054688f, 4.482422f >
Frame 10: Bone 2: < 348.0469f, 2.460938f, 19.07227f >
Frame 10: Bone 3: < 357.7148f, 346.377f, 34.18945f >
Frame 10: Bone 4: < 333.5449f, 294.6094f, 236.5137f >
Frame 10: Bone 5: < 49.57031f, 345.498f, 269.209f >
Frame 10: Bone 6: < 295.3125f, 61.08398f, 307.002f >
Frame 10: Bone 7: < 351.8262f, 17.66602f, 5.185547f >
Frame 10: Bone 8: < 355.7813f, 12.83203f, 334.248f >
Frame 10: Bone 9: < 334.248f, 62.66602f, 125.0684f >
Frame 10: Bone 10: < 44.47266f, 310.957f, 18.45703f >
Frame 10: Bone 11: < 297.2461f, 349.0137f, 0.1757813f >
Frame 10: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 10: Bone 13: < 0.6152344f, 42.53906f, 59.58984f >
Frame 10: Bone 14: < 73.30078f, 0.1757813f, 0.1757813f >
Frame 10: Bone 15: < 304.0137f, 37.5293f, 336.9727f >
Frame 10: Bone 16: < 299.3555f, 0.0f, 0.0f >
Frame 10: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 10: Bone 18: < 340.6641f, 323.3496f, 297.1582f >
Frame 10: Bone 19: < 76.02539f, 1.757813f, 1.845703f >
Frame 10: Bone 20: < 310.166f, 341.7188f, 11.51367f >
Frame 10: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 11: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 470.0f -17.0f
Frame 11: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 11: Bone 1: < 15.38086f, 1.054688f, 4.482422f >
Frame 11: Bone 2: < 348.4863f, 2.548828f, 18.98438f >
Frame 11: Bone 3: < 357.4512f, 346.377f, 34.27734f >
Frame 11: Bone 4: < 333.6328f, 294.7852f, 236.5137f >
Frame 11: Bone 5: < 49.74609f, 345.4102f, 269.209f >
Frame 11: Bone 6: < 295.3125f, 60.82031f, 307.1777f >
Frame 11: Bone 7: < 351.6504f, 17.75391f, 5.097656f >
Frame 11: Bone 8: < 355.5176f, 12.83203f, 334.248f >
Frame 11: Bone 9: < 334.7754f, 63.63281f, 124.6289f >
Frame 11: Bone 10: < 44.47266f, 312.4512f, 19.42383f >
Frame 11: Bone 11: < 297.1582f, 349.0137f, 0.1757813f >
Frame 11: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 11: Bone 13: < 0.5273438f, 43.24219f, 59.76563f >
Frame 11: Bone 14: < 72.07031f, 0.1757813f, 0.1757813f >
Frame 11: Bone 15: < 304.2773f, 36.12305f, 338.291f >
Frame 11: Bone 16: < 299.3555f, 0.0f, 0.0f >
Frame 11: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 11: Bone 18: < 340.752f, 322.6465f, 297.334f >
Frame 11: Bone 19: < 74.17969f, 1.582031f, 1.582031f >
Frame 11: Bone 20: < 311.2207f, 342.5098f, 10.81055f >
Frame 11: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 12: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 474.0f -15.0f
Frame 12: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 12: Bone 1: < 15.0293f, 1.054688f, 4.482422f >
Frame 12: Bone 2: < 349.1016f, 2.636719f, 18.98438f >
Frame 12: Bone 3: < 357.0996f, 346.377f, 34.36523f >
Frame 12: Bone 4: < 333.457f, 294.4336f, 236.6016f >
Frame 12: Bone 5: < 49.39453f, 345.498f, 269.2969f >
Frame 12: Bone 6: < 295.2246f, 61.34766f, 306.7383f >
Frame 12: Bone 7: < 352.0898f, 17.66602f, 5.185547f >
Frame 12: Bone 8: < 355.0781f, 12.74414f, 334.1602f >
Frame 12: Bone 9: < 335.3906f, 64.77539f, 124.1895f >
Frame 12: Bone 10: < 44.56055f, 314.1211f, 20.56641f >
Frame 12: Bone 11: < 297.0703f, 349.0137f, 8.789063e-002f >
Frame 12: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 12: Bone 13: < 0.2636719f, 44.12109f, 60.0293f >
Frame 12: Bone 14: < 70.75195f, 0.1757813f, 0.1757813f >
Frame 12: Bone 15: < 304.6289f, 34.54102f, 339.6973f >
Frame 12: Bone 16: < 299.3555f, 0.0f, 0.0f >
Frame 12: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 12: Bone 18: < 340.8398f, 321.7676f, 297.5977f >
Frame 12: Bone 19: < 72.24609f, 1.40625f, 1.40625f >
Frame 12: Bone 20: < 312.2754f, 343.3008f, 9.931641f >
Frame 12: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 13: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 478.0f -12.0f
Frame 13: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 13: Bone 1: < 14.50195f, 0.9667969f, 4.482422f >
Frame 13: Bone 2: < 349.9805f, 2.8125f, 18.98438f >
Frame 13: Bone 3: < 356.6602f, 346.2891f, 34.45313f >
Frame 13: Bone 4: < 332.9297f, 293.5547f, 236.9531f >
Frame 13: Bone 5: < 48.51563f, 345.6738f, 269.5605f >
Frame 13: Bone 6: < 294.7852f, 62.66602f, 305.5078f >
Frame 13: Bone 7: < 353.2324f, 17.40234f, 5.361328f >
Frame 13: Bone 8: < 354.6387f, 12.74414f, 333.9844f >
Frame 13: Bone 9: < 336.0938f, 66.00586f, 123.6621f >
Frame 13: Bone 10: < 44.56055f, 315.791f, 21.79688f >
Frame 13: Bone 11: < 296.8945f, 349.0137f, 8.789063e-002f >
Frame 13: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 13: Bone 13: < 8.789063e-002f, 45.0f, 60.29297f >
Frame 13: Bone 14: < 69.3457f, 0.1757813f, 0.1757813f >
Frame 13: Bone 15: < 304.9805f, 32.7832f, 341.1914f >
Frame 13: Bone 16: < 299.3555f, 0.0f, 0.0f >
Frame 13: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 13: Bone 18: < 341.0156f, 320.8887f, 297.7734f >
Frame 13: Bone 19: < 70.04883f, 1.230469f, 1.318359f >
Frame 13: Bone 20: < 313.5059f, 344.0918f, 9.052734f >
Frame 13: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 14: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 482.0f -9.0f
Frame 14: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 14: Bone 1: < 14.0625f, 0.9667969f, 4.482422f >
Frame 14: Bone 2: < 350.7715f, 2.988281f, 18.98438f >
Frame 14: Bone 3: < 356.1328f, 346.2891f, 34.62891f >
Frame 14: Bone 4: < 332.2266f, 292.2363f, 237.4805f >
Frame 14: Bone 5: < 47.37305f, 345.8496f, 269.8242f >
Frame 14: Bone 6: < 294.2578f, 64.59961f, 303.75f >
Frame 14: Bone 7: < 354.9023f, 17.05078f, 5.625f >
Frame 14: Bone 8: < 354.1113f, 12.74414f, 333.8965f >
Frame 14: Bone 9: < 336.709f, 67.14844f, 123.2227f >
Frame 14: Bone 10: < 44.56055f, 317.5488f, 23.02734f >
Frame 14: Bone 11: < 296.8066f, 349.1016f, 8.789063e-002f >
Frame 14: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 14: Bone 13: < 359.8242f, 45.79102f, 60.64453f >
Frame 14: Bone 14: < 67.93945f, 0.1757813f, 0.1757813f >
Frame 14: Bone 15: < 305.4199f, 31.20117f, 342.5977f >
Frame 14: Bone 16: < 299.3555f, 0.0f, 0.0f >
Frame 14: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 14: Bone 18: < 341.1035f, 319.9219f, 298.0371f >
Frame 14: Bone 19: < 67.93945f, 1.054688f, 1.142578f >
Frame 14: Bone 20: < 314.7363f, 344.7949f, 8.261719f >
Frame 14: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 15: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 486.0f -6.0f
Frame 15: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 15: Bone 1: < 13.53516f, 0.8789063f, 4.482422f >
Frame 15: Bone 2: < 351.6504f, 3.164063f, 18.89648f >
Frame 15: Bone 3: < 355.6055f, 346.2012f, 34.7168f >
Frame 15: Bone 4: < 331.3477f, 290.8301f, 238.0957f >
Frame 15: Bone 5: < 45.9668f, 346.0254f, 270.1758f >
Frame 15: Bone 6: < 293.6426f, 66.97266f, 301.6406f >
Frame 15: Bone 7: < 356.748f, 16.69922f, 5.888672f >
Frame 15: Bone 8: < 353.584f, 12.65625f, 333.8086f >
Frame 15: Bone 9: < 337.4121f, 68.29102f, 122.7832f >
Frame 15: Bone 10: < 44.56055f, 319.2188f, 24.25781f >
Frame 15: Bone 11: < 296.7188f, 349.1016f, 8.789063e-002f >
Frame 15: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 15: Bone 13: < 359.6484f, 46.66992f, 60.9082f >
Frame 15: Bone 14: < 66.62109f, 0.1757813f, 0.1757813f >
Frame 15: Bone 15: < 305.8594f, 29.61914f, 343.916f >
Frame 15: Bone 16: < 299.3555f, 0.0f, 0.0f >
Frame 15: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 15: Bone 18: < 341.2793f, 319.043f, 298.2129f >
Frame 15: Bone 19: < 65.91797f, 0.9667969f, 1.054688f >
Frame 15: Bone 20: < 315.8789f, 345.498f, 7.558594f >
Frame 15: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 16: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 490.0f -3.0f
Frame 16: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 16: Bone 1: < 13.00781f, 0.8789063f, 4.482422f >
Frame 16: Bone 2: < 352.5293f, 3.251953f, 18.89648f >
Frame 16: Bone 3: < 355.166f, 346.1133f, 34.80469f >
Frame 16: Bone 4: < 330.5566f, 289.3359f, 238.7109f >
Frame 16: Bone 5: < 44.56055f, 346.1133f, 270.5273f >
Frame 16: Bone 6: < 293.1152f, 69.3457f, 299.4434f >
Frame 16: Bone 7: < 358.6816f, 16.25977f, 6.152344f >
Frame 16: Bone 8: < 353.1445f, 12.65625f, 333.7207f >
Frame 16: Bone 9: < 337.9395f, 69.25781f, 122.3438f >
Frame 16: Bone 10: < 44.47266f, 320.7129f, 25.3125f >
Frame 16: Bone 11: < 296.6309f, 349.1016f, 0.0f >
Frame 16: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 16: Bone 13: < 359.4727f, 47.37305f, 61.17188f >
Frame 16: Bone 14: < 65.47852f, 8.789063e-002f, 0.1757813f >
Frame 16: Bone 15: < 306.2109f, 28.30078f, 344.9707f >
Frame 16: Bone 16: < 299.2676f, 0.0f, 0.0f >
Frame 16: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 16: Bone 18: < 341.3672f, 318.3398f, 298.3887f >
Frame 16: Bone 19: < 64.16016f, 0.8789063f, 1.054688f >
Frame 16: Bone 20: < 316.9336f, 346.1133f, 7.03125f >
Frame 16: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 17: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 493.0f -1.0f
Frame 17: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 17: Bone 1: < 12.65625f, 0.7910156f, 4.482422f >
Frame 17: Bone 2: < 353.1445f, 3.427734f, 18.89648f >
Frame 17: Bone 3: < 354.8145f, 346.1133f, 34.89258f >
Frame 17: Bone 4: < 329.8535f, 287.9297f, 239.3262f >
Frame 17: Bone 5: < 43.33008f, 346.2891f, 270.791f >
Frame 17: Bone 6: < 292.6758f, 71.54297f, 297.4219f >
Frame 17: Bone 7: < 0.2636719f, 15.99609f, 6.328125f >
Frame 17: Bone 8: < 352.793f, 12.65625f, 333.6328f >
Frame 17: Bone 9: < 338.3789f, 70.04883f, 122.0801f >
Frame 17: Bone 10: < 44.38477f, 321.8555f, 26.10352f >
Frame 17: Bone 11: < 296.543f, 349.1016f, 0.0f >
Frame 17: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 17: Bone 13: < 359.2969f, 47.90039f, 61.43555f >
Frame 17: Bone 14: < 64.51172f, 8.789063e-002f, 0.1757813f >
Frame 17: Bone 15: < 306.5625f, 27.24609f, 345.8496f >
Frame 17: Bone 16: < 299.2676f, 0.0f, 0.0f >
Frame 17: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 17: Bone 18: < 341.4551f, 317.7246f, 298.4766f >
Frame 17: Bone 19: < 62.75391f, 0.8789063f, 0.9667969f >
Frame 17: Bone 20: < 317.7246f, 346.5527f, 6.591797f >
Frame 17: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 18: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 494.0f 0.0f
Frame 18: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 18: Bone 1: < 12.39258f, 0.7910156f, 4.482422f >
Frame 18: Bone 2: < 353.584f, 3.427734f, 18.89648f >
Frame 18: Bone 3: < 354.5508f, 346.1133f, 34.98047f >
Frame 18: Bone 4: < 329.4141f, 287.0508f, 239.7656f >
Frame 18: Bone 5: < 42.45117f, 346.2891f, 270.9668f >
Frame 18: Bone 6: < 292.4121f, 73.21289f, 295.9277f >
Frame 18: Bone 7: < 1.494141f, 15.73242f, 6.416016f >
Frame 18: Bone 8: < 352.5293f, 12.65625f, 333.5449f >
Frame 18: Bone 9: < 338.7305f, 70.48828f, 121.8164f >
Frame 18: Bone 10: < 44.38477f, 322.6465f, 26.63086f >
Frame 18: Bone 11: < 296.543f, 349.1016f, 0.0f >
Frame 18: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 18: Bone 13: < 359.1211f, 48.25195f, 61.52344f >
Frame 18: Bone 14: < 63.89648f, 8.789063e-002f, 0.1757813f >
Frame 18: Bone 15: < 306.7383f, 26.63086f, 346.4648f >
Frame 18: Bone 16: < 299.2676f, 0.0f, 0.0f >
Frame 18: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 18: Bone 18: < 341.4551f, 317.2852f, 298.5645f >
Frame 18: Bone 19: < 61.78711f, 0.7910156f, 0.9667969f >
Frame 18: Bone 20: < 318.3398f, 346.8164f, 6.240234f >
Frame 18: Bone 21: < 299.5313f, 0.0f, 0.0f >
Frame 19: Rotations/Translations: 0.0f 0.0f 0.0f 0.0f 495.0f 0.0f
Frame 19: Bone 0: < 270.0f, 336.4453f, 0.0f >
Frame 19: Bone 1: < 12.30469f, 0.7910156f, 4.482422f >
Frame 19: Bone 2: < 353.7598f, 3.515625f, 18.89648f >
Frame 19: Bone 3: < 354.4629f, 346.1133f, 34.98047f >
Frame 19: Bone 4: < 329.2383f, 286.6113f, 239.9414f >
Frame 19: Bone 5: < 42.1875f, 346.377f, 271.0547f >
Frame 19: Bone 6: < 292.2363f, 73.82813f, 295.3125f >
Frame 19: Bone 7: < 1.933594f, 15.64453f, 6.503906f >
Frame 19: Bone 8: < 352.4414f, 12.65625f, 333.5449f >
Frame 19: Bone 9: < 338.8184f, 70.66406f, 121.8164f >
Frame 19: Bone 10: < 44.38477f, 322.9102f, 26.89453f >
Frame 19: Bone 11: < 296.543f, 349.1016f, 0.0f >
Frame 19: Bone 12: < 0.0f, 258.5742f, 270.0f >
Frame 19: Bone 13: < 359.1211f, 48.42773f, 61.61133f >
Frame 19: Bone 14: < 63.7207f, 8.789063e-002f, 0.1757813f >
Frame 19: Bone 15: < 306.8262f, 26.36719f, 346.6406f >
Frame 19: Bone 16: < 299.2676f, 0.0f, 0.0f >
Frame 19: Bone 17: < 0.0f, 54.4043f, 90.0f >
Frame 19: Bone 18: < 341.543f, 317.1973f, 298.5645f >
Frame 19: Bone 19: < 61.52344f, 0.7910156f, 0.9667969f >
Frame 19: Bone 20: < 318.5156f, 346.9043f, 6.152344f >
Frame 19: Bone 21: < 299.5313f, 0.0f, 0.0f >


Every single frame has a rotation and translation (not just the header!).
I loaded this animation without using the translations and it looks quite funny.  His arms and legs rotate around a still body, as if he is trying to wiggle free of something.

Sorry for not posting Cloud’s.  Barret’s was just easier.

But I can post Cloud’s animations tomorrow.  I need sleep now.

L. Spiro

Cyberman

  • *
  • Posts: 1572
    • View Profile
More twisted images (smirk)
« Reply #165 on: 2004-09-09 21:05:52 »
Barret/Tifa

Arise/Red XIII

Yufi

qwerty

  • *
  • Posts: 251
    • View Profile
Decent FF7 Model Viewer
« Reply #166 on: 2004-09-09 21:35:45 »
Some of these images are just plain retarded... :o

Are coordinates really that hard to get right??

Well, I guess so since every frame has so much code... :weep:

alloy

  • *
  • Posts: 57
    • View Profile
Decent FF7 Model Viewer
« Reply #167 on: 2004-09-10 02:34:06 »
Quote from: qwerty
Some of these images are just plain retarded... :o

Are coordinates really that hard to get right??

Well, I guess so since every frame has so much code... :weep:


Heh you showld at least be happy the ARE any images of thiss -.-.

sfx1999

  • *
  • Posts: 1142
    • View Profile
Decent FF7 Model Viewer
« Reply #168 on: 2004-09-10 02:40:13 »
Another way to keep the bones on the outside is to clear the depth buffer. That can help you draw the joints.

L. Spiro

  • *
  • Posts: 797
    • View Profile
    • http://www.memoryhacking.com/index.php
Decent FF7 Model Viewer
« Reply #169 on: 2004-09-10 03:36:04 »
That Tifa looks familiar.

Cyberman, your Barret looks fine.

I can’t tell how the others are wrong.
Mine were wrong because I was working at one bone deeper than I was supposed to be.
But if that was your case also, your shoulders wouldn’t align at the right points, which they do.

That means the numbers you are crunching are probably correct (especially if you compare to mirex’s and mine) but you may be…
I don’t know what could cause those results.
The bones, rotations, etc., are accurate enough that your shoulders landing the right spots (a difficult task in itself) but inaccurate enough that only a few bones are actually going the wrong ways.

I notice particularly that your shoulders align, Aeris’s hair goes the right way, and her toes align to her feet.
Only one wrong rotation is needed to screw all of that up.
But in fact, the only wrong rotations are her left arm elbow and her right leg at the hip.

You should write a bone exporter that shows the information for each bone as I did.  Then you can see the values you are getting and hopefully find a way to change them to what they should be.





As for the animation file formats, I went to bed last night and awakened just now.
Upon awakening I checked the file.  I got my numbers from RAM.
There are 22 bones and each needs 12 bits per rotation, times 3 rotations and 20 frames.
That’s 1,980 bytes for just the first animation in his file.
According to the “Read_Data_Length” value in sbda, his first frame is entirely packed into 879 bytes.
His first frame is unpacked and requires 99 bytes to store in the file (more for the rotation/translation offsets), leaving the rest of the frames 780 bytes.

This means the animations are either stored as key frames or as offsets from the first frame.

If they are keyed, the engine unpacks each interpolated frame in one go and saves the interpolations for speed during the battle (rather than interpolate every frame of the battle).

Plus there are still the rotations and translations in each frame as well.

I hope that helps in solving the format and I am going to keep researching as I can.  Any time I am online, playing a game, hacking, programming, or anything with a computer, it is because I am at work.


L. Spiro

Cyberman

  • *
  • Posts: 1572
    • View Profile
Decent FF7 Model Viewer
« Reply #170 on: 2004-09-10 04:59:18 »
qwerty
Well these are images from the playstation data files.  I haven't tried animating them yet they may do weird twists ;)

sfx1999
Actually mirex suggestion worked dandy and allowed me to ad the origin angle (the white lines are for the origin) blue lines are the skeleton.

L. Spiro
I believe the animation on the PSX is very similiar to that of the PC just without the extra header in the file as each animation is in a seperate section in the PC version.  I think the animation information varies there seems to be some flag information included.  The decoding seems to work fine wither PC or PSX though.

halkun

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
Decent FF7 Model Viewer
« Reply #171 on: 2004-09-10 06:42:11 »
I may not know what I'm talking about....
But remeber to count the root bone. I don't know what the heck that means, but it fixed a problem in the past.

/Boy I wish I know how to do math......

mirex

  • *
  • Posts: 1645
    • View Profile
    • http://mirex.mypage.sk
Decent FF7 Model Viewer
« Reply #172 on: 2004-09-10 07:55:07 »
Well i was thinking that some frames could have some bones left out of animation data, probably those which bone rotation is same as in previous frame ... but its just a wild guess

Notice that by the way we read animations now we can read more then one frame for some models .... for example i can read 2 animations for chocobo (standing, and pecking into ground), and 5 or more for the black weapon (was it emerald?)

L. Spiro

  • *
  • Posts: 797
    • View Profile
    • http://www.memoryhacking.com/index.php
Decent FF7 Model Viewer
« Reply #173 on: 2004-09-10 08:09:49 »
I was thinking some bones may be left out as well but there would need to be a key to determine which bones are missing.  Or something to tell the loader.

But you can use the Barret table I posted and check only the frames that have changed, convert them back into hex, and check for those hex values after the end of his first frame (which is 99 bytes, starting on 1F [and shifted 4 bits]).  The next frame has to come after 0x82 (from the start of the file).

Compression does not explain why some frames load after the first.
Neither does the idea of frames after the first being stored as offsets of the first.


You can look at the way the translations shift in my post and see if there may be a key-frame pattern.
Then find the frame that looks to be the key, translate the values back into hex, and see if you can find a series of hex in the file right after 0x82 that matches those values.

Also, the value listed in mirex’s document on animations labelled “Rec_B” is almost certainly the number of frames in the animation.



Another thing you can do is translate the values after 0x82 and see if they match any values in my Barret post.
Hopefully all of them will fit into one frame or another, and in sequencial order.


L. Spiro

mirex

  • *
  • Posts: 1645
    • View Profile
    • http://mirex.mypage.sk
Decent FF7 Model Viewer
« Reply #174 on: 2004-09-10 08:33:22 »
L.Spiro: those barret's values are rip from memory, or are read from file ? Does model look okay when rotated by those values ?
Cyberman: Could you tell me offset where does the animation start in PSX files cloud.lzs and hicloud.lzs please ?