Decent FF7 Model Viewer

  • Thread starter Thread starter Sephiroth2000
  • Start date Start date
Status
Not open for further replies.
How about everyone posts his complete know-how about the .LZS model files to decrypt it evt. 100%? Are you afraid that you have to credit other people in your application? Shame on you...  :wink:


Unknown1 structure has a pattern that could be hierachical data.
I had not looked at models with textures yet (UV-Coords in Color-data?)

ENEMY000.LZS - Yellow Pyramid

More detailed data follows tomorrow but first:
Now it's YOUR turn.

Hmmm I think this is one of many different objects, for example this gives you one object from cloud, I wonder if there is any way to determine the number of 'elements' in an object.  Using FF7me for a reference helps emensly. As for credit.. I could care less, I just want to figure out the data.  :)  Some things I do are embarasingly coded ;)

However back to the orginal ENEMY000.LZS
It contains only 1 object yet has 5 sections.. I would assume from that information, that each collection (IE CLOUD.LZS etc). has a minimum of 5 sections. I know cloud.LZS has quite a few more parts than Just the first part. I wonder if that unkown information may be part of ithe mystery. I think I'll hunt through sections and see if I can find another part. If not then I think there must be some information in there regarding the number of parts.  I suppose I can dump the data into a POV object and generate an image from rendering that.

The Triangles/ Quadrics list are offsets from the start of the verticies I noticed as well. this limits one to about 8192 vertices.. which is quite a few :) this may also be why the vertex array begins with a byte count instead of a vertex count, so that the FF7 engine could determine if the object was too large for it to use.

I'll play some and let you know what I find/generate :)

Images removed because site is gone

The ordering of the polygon vertices isn't identical to POV's. So I suspect some 'tweaking' will be needed for POV to have things look about right.  POV does not support 'coloring' of verticies either (sadly this means rendering it in POV could be very difficult).

Irregardless I have one section decoding and visable now.  I am certain there are more objects I am going to have a look at the number of sections versus the number of parts FF7me shows. Acording to the author of that utility all the bone information etc. is in the file.  Does cloud have one weapon type in battle all the time?

I need to play the 'used' vertices game I guess <sigh> and see what I can find out.

Cyb
 
A bit of poking around has revealed the following information on FF7's format for the first section. The unknow area I gave a tentative structure information.

Section 0
The first 4 bytes is the relative offset to a piece :)
If it's zero I think it doesn't exist my guess
here is my 'dump' of this data so you can Cheer frown or grump about it
(I donno what to do my self ;) )
I think for converting it to POV information this will pretty much get every part of the person.  I don't know what the Index does my guess is the last two bytes are flags of some sort :)

Section 1
Unknown

Section 2 to N-1 <accept the TIM>
UINT16 ????      I think this is some sort identifyer (see magic number for TIM files)
UINT16 Size      How much data is in this section?
....            Filled to 4byte section size
Code: [Select]
Code:
OFFSET 0001C8 000000Unkown Count = 23OFF=00000000 Index=0 FFD9OFF=000000C4 Index=1 FF5DOFF=00000F28 Index=2 FF6EOFF=00003CA4 Index=1 FF73OFF=00000000 Index=4 FFC5OFF=00000000 Index=5 FF7BOFF=00006E98 Index=6 FF8BOFF=0000826C Index=7 FFABOFF=00009B5C Index=1 FF73OFF=00000000 Index=9 FFC5OFF=00000000 Index=10 FF7BOFF=0000A540 Index=11 FF8OFF=0000B034 Index=12 FFB4OFF=0000B7D8 Index=0 FFDBOFF=00000000 Index=14 FEEBOFF=0000C1BC Index=15 FF03OFF=0000CD70 Index=16 FFB3OFF=0000DBC0 Index=17 FF87OFF=0000E2AC Index=0 FFDBOFF=00000000 Index=19 FEEBOFF=0000E7A8 Index=20 FF03OFF=0000F35C Index=21 FFB3OFF=000101AC Index=22 FF87OFFSET 000288 0000C0VERTICES[  80] ={ [ 0] <   55,    36,   -40> [ 1] <   72,    33,    34> [ 2] <   67,   -37,    34> [ 3] <   55,   -25,   -40> [ 4] <    0,    40,    46> [ 5] <    0,   -41,    46> [ 6] <   60,    41,   -10> [ 7] <   63,   -37,   -10> [ 8] <    0,    48,   -40> [ 9] <    0,    52,    14> [10] <    0,   -38,   -40> [11] <    0,   -46,   -10> [12] <    0,     2,   -52> [13] <   64,     5,   -40> [14] <   75,     2,   -10> [15] <   84,     0,    34> [16] <    0,    -1,    53> [17] <   23,    45,    24> [18] <    0,    46,    38> [19] <   40,    46,   -16> [20] <    0,    53,   -14> [21] <   27,    45,   -40> [22] <    0,    45,   -21> [23] <   41,    43,   -40> [24] <   33,    32,    40> [25] <   42,    45,    29> [26] <   64,    39,   -19> [27] <   76,     3,   -19> [28] <   48,    41,     1> [29] <   35,    40,     4> [30] <   20,    48,    12> [31] <   43,    41,    -5> [32] <   14,    41,    19> [33] <   45,    48,    15> [34] <   74,    37,    11> [35] <   95,   -11,    11> [36] <   25,    42,   -14> [37] <   10,    44,     0> [38] <   27,   -34,   -40> [39] <   31,   -44,   -10> [40] <   33,   -41,    40> [41] <  -33,   -41,    40> [42] <  -31,   -44,   -10> [43] <  -27,   -34,   -40> [44] <  -10,    44,     0> [45] <  -25,    42,   -14> [46] <  -95,   -11,    11> [47] <  -74,    37,    11> [48] <  -45,    48,    15> [49] <  -14,    41,    19> [50] <  -43,    41,    -5> [51] <  -20,    48,    12> [52] <  -35,    40,     4> [53] <  -48,    41,     1> [54] <  -76,     3,   -19> [55] <  -64,    39,   -19> [56] <  -42,    45,    29> [57] <  -33,    32,    40> [58] <  -41,    43,   -40> [59] <  -27,    45,   -40> [60] <  -40,    46,   -16> [61] <  -23,    45,    24> [62] <  -84,     0,    34> [63] <  -75,     2,   -10> [64] <  -64,     5,   -40> [65] <  -63,   -37,   -10> [66] <  -60,    41,   -10> [67] <  -55,   -25,   -40> [68] <  -67,   -37,    34> [69] <  -72,    33,    34> [70] <  -55,    36,   -40> [71] <   65,   -42,    11> [72] <   32,   -47,    15> [73] <    0,   -48,    18> [74] <  -32,   -47,    15> [75] <  -65,   -42,    11> [76] <   71,   -26,    11> [77] <  -71,   -26,    11> [78] <   84,    13,    11> [79] <  -84,    13,    11>}OFFSET 000510 000348OFFSET 000518 000350TRIANGLES[144] ={ [  0] <61 < 28, 24, 32>,       4 < 15, 10, 20>,       57 < 15, 10, 20>> [  1] <41 < 17, 15, 17>,       16 < 15, 10, 20>,       5 < 17, 15, 17>> [  2] <69 < 17, 15, 17>,       79 < 25, 20, 30>,       47 < 25, 22, 28>> [  3] <54 < 15, 10, 20>,       55 < 25, 22, 28>,       63 < 15, 10, 20>> [  4] <47 < 25, 22, 28>,       48 < 30, 25, 35>,       56 < 15, 10, 20>> [  5] <43 < 19, 18, 21>,       11 < 15, 10, 20>,       10 < 25, 20, 30>> [  6] <12 <  5,  0, 10>,       43 < 19, 18, 21>,       10 < 25, 20, 30>> [  7] <64 < 25, 20, 30>,       67 < 30, 25, 35>,       12 <  5,  0, 10>> [  8] <12 <  5,  0, 10>,       58 < 25, 20, 30>,       70 < 32, 28, 39>> [  9] <54 < 15, 10, 20>,       67 < 30, 25, 35>,       64 < 25, 20, 30>> [ 10] <75 < 15, 10, 20>,       77 < 15, 10, 20>,       68 < 17, 15, 17>> [ 11] <57 < 15, 10, 20>,       16 < 15, 10, 20>,       62 < 17, 15, 17>> [ 12] <68 < 17, 15, 17>,       46 < 15, 10, 20>,       62 < 17, 15, 17>> [ 13] <65 < 15, 10, 20>,       54 < 15, 10, 20>,       63 < 15, 10, 20>> [ 14] <64 < 25, 20, 30>,       12 <  5,  0, 10>,       70 < 32, 28, 39>> [ 15] <16 < 15, 10, 20>,       68 < 17, 15, 17>,       62 < 17, 15, 17>> [ 16] <4 < 15, 10, 20>,       61 < 15, 10, 20>,       18 < 25, 20, 30>> [ 17] <18 < 25, 20, 30>,       61 < 15, 10, 20>,       49 < 20, 15, 25>> [ 18] <60 < 35, 30, 40>,       58 < 25, 20, 30>,       59 < 30, 25, 35>> [ 19] <56 < 15, 10, 20>,       57 < 15, 10, 20>,       69 < 17, 15, 17>> [ 20] <61 < 28, 24, 32>,       57 < 15, 10, 20>,       56 < 15, 10, 20>> [ 21] <59 < 25, 20, 30>,       12 <  5,  0, 10>,       8 < 25, 20, 30>> [ 22] <58 < 25, 20, 30>,       12 <  5,  0, 10>,       59 < 25, 20, 30>> [ 23] <55 < 25, 22, 28>,       64 < 25, 20, 30>,       70 < 32, 28, 39>> [ 24] <60 < 35, 30, 40>,       70 < 32, 28, 39>,       58 < 25, 20, 30>> [ 25] <52 < 15, 10, 20>,       49 < 20, 15, 25>,       61 < 15, 10, 20>> [ 26] <50 < 20, 15, 25>,       51 < 19, 17, 20>,       52 < 15, 10, 20>> [ 27] <60 < 20, 15, 25>,       50 < 20, 15, 25>,       66 < 10,  5, 15>> [ 28] <18 < 25, 20, 30>,       49 < 20, 15, 25>,       9 < 10,  5, 15>> [ 29] <49 < 20, 15, 25>,       52 < 15, 10, 20>,       51 < 19, 17, 20>> [ 30] <48 < 30, 25, 35>,       61 < 28, 24, 32>,       56 < 15, 10, 20>> [ 31] <52 < 15, 10, 20>,       48 < 30, 25, 35>,       53 < 30, 27, 37>> [ 32] <79 < 25, 20, 30>,       46 < 15, 10, 20>,       63 < 15, 10, 20>> [ 33] <48 < 30, 25, 35>,       47 < 25, 22, 28>,       53 < 30, 27, 37>> [ 34] <53 < 30, 27, 37>,       47 < 25, 22, 28>,       66 < 10,  5, 15>> [ 35] <46 < 15, 10, 20>,       77 < 15, 10, 20>,       63 < 15, 10, 20>> [ 36] <51 < 19, 17, 20>,       50 < 20, 15, 25>,       60 < 20, 15, 25>> [ 37] <45 < 29, 26, 35>,       60 < 35, 30, 40>,       59 < 30, 25, 35>> [ 38] <51 < 19, 17, 20>,       9 < 10,  5, 15>,       49 < 20, 15, 25>> [ 39] <20 < 25, 20, 30>,       9 < 25, 20, 30>,       44 < 20, 15, 25>> [ 40] <22 < 35, 30, 40>,       59 < 25, 20, 30>,       8 < 25, 20, 30>> [ 41] <22 < 35, 30, 40>,       20 < 15, 10, 20>,       59 < 25, 20, 30>> [ 42] <45 < 29, 26, 35>,       59 < 30, 25, 35>,       44 < 30, 25, 35>> [ 43] <41 < 17, 15, 17>,       75 < 15, 10, 20>,       68 < 17, 15, 17>> [ 44] <42 < 15, 10, 20>,       43 < 19, 18, 21>,       67 < 30, 25, 35>> [ 45] <43 < 19, 18, 21>,       12 <  5,  0, 10>,       67 < 30, 25, 35>> [ 46] <16 < 15, 10, 20>,       41 < 17, 15, 17>,       68 < 17, 15, 17>> [ 47] <16 < 15, 10, 20>,       57 < 15, 10, 20>,       4 < 15, 10, 20>> [ 48] <57 < 15, 10, 20>,       62 < 17, 15, 17>,       69 < 17, 15, 17>> [ 49] <15 < 15, 10, 20>,       24 < 15, 10, 20>,       1 < 15, 10, 20>> [ 50] <24 < 15, 10, 20>,       16 < 15, 10, 20>,       4 < 15, 10, 20>> [ 51] <40 < 17, 15, 17>,       16 < 15, 10, 20>,       2 < 17, 15, 17>> [ 52] <12 <  5,  0, 10>,       38 < 20, 15, 25>,       3 < 24, 22, 27>> [ 53] <38 < 20, 15, 25>,       39 < 15, 10, 20>,       3 < 24, 22, 27>> [ 54] <71 < 15, 10, 20>,       40 < 17, 15, 17>,       2 < 17, 15, 17>> [ 55] <19 < 28, 25, 33>,       36 < 29, 26, 35>,       21 < 20, 15, 25>> [ 56] <20 < 15, 10, 20>,       37 < 15, 10, 20>,       9 < 25, 20, 30>> [ 57] <31 < 10,  5, 15>,       30 < 20, 15, 25>,       19 < 15, 10, 20>> [ 58] <2 < 17, 15, 17>,       35 < 30, 25, 35>,       76 < 15, 10, 20>> [ 59] <34 < 35, 30, 40>,       28 < 35, 30, 40>,       6 < 15, 10, 20>> [ 60] <34 < 35, 30, 40>,       33 < 35, 30, 40>,       28 < 35, 30, 40>> [ 61] <35 < 30, 25, 35>,       78 < 25, 20, 30>,       14 < 20, 15, 25>> [ 62] <33 < 35, 30, 40>,       29 < 28, 25, 33>,       28 < 35, 30, 40>> [ 63] <17 < 28, 24, 32>,       33 < 20, 15, 25>,       25 < 15, 10, 20>> [ 64] <29 < 28, 25, 33>,       32 < 10,  5, 15>,       30 < 20, 15, 25>> [ 65] <31 < 10,  5, 15>,       19 < 15, 10, 20>,       6 < 15, 10, 20>> [ 66] <30 < 20, 15, 25>,       31 < 10,  5, 15>,       29 < 28, 25, 33>> [ 67] <32 < 10,  5, 15>,       29 < 28, 25, 33>,       17 < 28, 24, 32>> [ 68] <0 < 25, 20, 30>,       19 < 28, 25, 33>,       23 < 25, 20, 35>> [ 69] <13 < 15, 10, 20>,       26 < 30, 25, 35>,       0 < 25, 20, 30>> [ 70] <12 <  5,  0, 10>,       23 < 20, 15, 25>,       21 < 20, 15, 25>> [ 71] <12 <  5,  0, 10>,       21 < 20, 15, 25>,       8 < 25, 20, 30>> [ 72] <18 < 25, 20, 30>,       9 < 25, 20, 30>,       32 < 10,  5, 15>> [ 73] <24 < 15, 10, 20>,       17 < 28, 24, 32>,       25 < 15, 10, 20>> [ 74] <30 < 20, 15, 25>,       32 < 10,  5, 15>,       9 < 25, 20, 30>> [ 75] <24 < 15, 10, 20>,       25 < 15, 10, 20>,       1 < 15, 10, 20>> [ 76] <23 < 20, 15, 25>,       19 < 28, 25, 33>,       21 < 20, 15, 25>> [ 77] <37 < 30, 25, 35>,       21 < 20, 15, 25>,       36 < 29, 26, 35>> [ 78] <22 < 20, 15, 25>,       8 < 25, 20, 30>,       21 < 20, 15, 25>> [ 79] <20 < 15, 10, 20>,       22 < 20, 15, 25>,       21 < 20, 15, 25>> [ 80] <17 < 28, 24, 32>,       18 < 25, 20, 30>,       32 < 10,  5, 15>> [ 81] <17 < 28, 24, 32>,       4 < 15, 10, 20>,       18 < 25, 20, 30>> [ 82] <2 < 17, 15, 17>,       16 < 15, 10, 20>,       15 < 15, 10, 20>> [ 83] <13 < 15, 10, 20>,       12 <  5,  0, 10>,       3 < 24, 22, 27>> [ 84] <27 < 20, 15, 25>,       7 < 17, 16, 18>,       14 < 20, 15, 25>> [ 85] <35 < 30, 25, 35>,       2 < 17, 15, 17>,       15 < 15, 10, 20>> [ 86] <16 < 15, 10, 20>,       24 < 15, 10, 20>,       15 < 15, 10, 20>> [ 87] <76 < 15, 10, 20>,       71 < 15, 10, 20>,       2 < 17, 15, 17>> [ 88] <3 < 24, 22, 27>,       27 < 35, 30, 40>,       13 < 15, 10, 20>> [ 89] <23 < 25, 20, 35>,       12 <  5,  0, 10>,       0 < 25, 20, 30>> [ 90] <12 <  5,  0, 10>,       13 < 15, 10, 20>,       0 < 25, 20, 30>> [ 91] <38 < 20, 15, 25>,       12 <  5,  0, 10>,       10 < 25, 20, 30>> [ 92] <11 < 20, 15, 25>,       38 < 20, 15, 25>,       10 < 25, 20, 30>> [ 93] <33 < 20, 15, 25>,       34 < 30, 25, 35>,       25 < 15, 10, 20>> [ 94] <26 < 30, 25, 35>,       27 < 20, 15, 25>,       14 < 20, 15, 25>> [ 95] <78 < 25, 20, 30>,       1 < 15, 10, 20>,       34 < 30, 25, 35>> [ 96] <16 < 15, 10, 20>,       40 < 17, 15, 17>,       5 < 17, 15, 17>> [ 97] <4 < 15, 10, 20>,       17 < 28, 24, 32>,       24 < 15, 10, 20>> [ 98] <39 < 15, 10, 20>,       71 < 15, 10, 20>,       7 < 17, 16, 18>> [ 99] <11 < 20, 15, 25>,       72 < 15, 10, 20>,       39 < 15, 10, 20>> [100] <74 < 15, 10, 20>,       11 < 15, 10, 20>,       42 < 15, 10, 20>> [101] <75 < 15, 10, 20>,       42 < 15, 10, 20>,       65 < 15, 10, 20>> [102] <71 < 15, 10, 20>,       76 < 15, 10, 20>,       7 < 17, 16, 18>> [103] <76 < 15, 10, 20>,       35 < 30, 25, 35>,       14 < 20, 15, 25>> [104] <77 < 15, 10, 20>,       75 < 15, 10, 20>,       65 < 15, 10, 20>> [105] <77 < 15, 10, 20>,       46 < 15, 10, 20>,       68 < 17, 15, 17>> [106] <15 < 15, 10, 20>,       78 < 25, 20, 30>,       35 < 30, 25, 35>> [107] <79 < 25, 20, 30>,       62 < 17, 15, 17>,       46 < 15, 10, 20>> [108] <40 < 17, 15, 17>,       71 < 15, 10, 20>,       72 < 15, 10, 20>> [109] <75 < 15, 10, 20>,       41 < 17, 15, 17>,       74 < 15, 10, 20>> [110] <21 < 20, 15, 25>,       37 < 20, 15, 25>,       20 < 20, 15, 25>> [111] <44 < 20, 15, 25>,       59 < 25, 20, 30>,       20 < 25, 20, 30>> [112] <44 < 30, 25, 35>,       51 < 19, 17, 20>,       45 < 29, 26, 35>> [113] <30 < 20, 15, 25>,       37 < 30, 25, 35>,       36 < 29, 26, 35>> [114] <30 < 20, 15, 25>,       36 < 29, 26, 35>,       19 < 28, 25, 33>> [115] <45 < 29, 26, 35>,       51 < 19, 17, 20>,       60 < 35, 30, 40>> [116] <9 < 10,  5, 15>,       51 < 19, 17, 20>,       44 < 30, 25, 35>> [117] <30 < 20, 15, 25>,       9 < 25, 20, 30>,       37 < 30, 25, 35>> [118] <77 < 15, 10, 20>,       65 < 15, 10, 20>,       63 < 15, 10, 20>> [119] <7 < 17, 16, 18>,       76 < 15, 10, 20>,       14 < 20, 15, 25>> [120] <42 < 15, 10, 20>,       75 < 15, 10, 20>,       74 < 15, 10, 20>> [121] <11 < 15, 10, 20>,       74 < 15, 10, 20>,       73 < 15, 10, 20>> [122] <72 < 15, 10, 20>,       11 < 20, 15, 25>,       73 < 15, 10, 20>> [123] <71 < 15, 10, 20>,       39 < 15, 10, 20>,       72 < 15, 10, 20>> [124] <79 < 25, 20, 30>,       69 < 17, 15, 17>,       62 < 17, 15, 17>> [125] <63 < 15, 10, 20>,       55 < 25, 22, 28>,       66 < 10,  5, 15>> [126] <47 < 25, 22, 28>,       56 < 15, 10, 20>,       69 < 17, 15, 17>> [127] <11 < 15, 10, 20>,       43 < 19, 18, 21>,       42 < 15, 10, 20>> [128] <67 < 30, 25, 35>,       54 < 15, 10, 20>,       65 < 15, 10, 20>> [129] <64 < 25, 20, 30>,       55 < 25, 22, 28>,       54 < 15, 10, 20>> [130] <70 < 32, 28, 39>,       60 < 35, 30, 40>,       55 < 25, 22, 28>> [131] <60 < 20, 15, 25>,       66 < 10,  5, 15>,       55 < 25, 22, 28>> [132] <48 < 30, 25, 35>,       52 < 15, 10, 20>,       61 < 15, 10, 20>> [133] <42 < 15, 10, 20>,       67 < 30, 25, 35>,       65 < 15, 10, 20>> [134] <3 < 24, 22, 27>,       39 < 15, 10, 20>,       7 < 17, 16, 18>> [135] <29 < 28, 25, 33>,       33 < 35, 30, 40>,       17 < 28, 24, 32>> [136] <6 < 15, 10, 20>,       19 < 15, 10, 20>,       26 < 30, 25, 35>> [137] <19 < 28, 25, 33>,       0 < 25, 20, 30>,       26 < 30, 25, 35>> [138] <26 < 30, 25, 35>,       13 < 15, 10, 20>,       27 < 35, 30, 40>> [139] <27 < 35, 30, 40>,       3 < 24, 22, 27>,       7 < 17, 16, 18>> [140] <38 < 20, 15, 25>,       11 < 20, 15, 25>,       39 < 15, 10, 20>> [141] <25 < 15, 10, 20>,       34 < 30, 25, 35>,       1 < 15, 10, 20>> [142] <26 < 30, 25, 35>,       14 < 20, 15, 25>,       6 < 15, 10, 20>> [143] <1 < 15, 10, 20>,       78 < 25, 20, 30>,       15 < 15, 10, 20>>}OFFSET 00105C 000E94QAUDRICS[6] ={ [  0] <73 < 15, 10, 20>,       74 < 15, 10, 20>,       5 < 17, 15, 17>,       41 < 17, 15, 17>> [  1] <66 < 10,  5, 15>,       50 < 20, 15, 25>,       53 < 30, 27, 37>,       52 < 15, 10, 20>> [  2] <31 < 24, 22, 27>,       6 < 15, 10, 20>,       29 < 15, 10, 20>,       28 < 30, 27, 37>> [  3] <72 < 15, 10, 20>,       73 < 15, 10, 20>,       40 < 17, 15, 17>,       5 < 17, 15, 17>> [  4] <14 < 20, 15, 25>,       78 < 25, 20, 30>,       6 < 15, 10, 20>,       34 < 35, 30, 40>> [  5] <79 < 25, 20, 30>,       63 < 15, 10, 20>,       47 < 25, 22, 28>,       66 < 10,  5, 15>>}OFFSET 0010F0 000F28
 
Kislinskiy:
After some dickering with the information some small changes ;)
For objects that have textures things are slightly different
There appears to be a 'normal' section but the upper 16 bits of the count have flags in them I believe and indicate weather these are 'normal' polygons/triangles or 'textured' ones.  If textured the format is DEFINATELY not the same. I Think it gives vertices with UV pixel coordinates instead of vertex colors. Technically this would make them the same size (UV can be done with 2 16 bit ints and the colors are 4 8 bit values).  Or it may give vertex colors and UV values.  I believe the former is more likely. Why? Well it shows how to 'map' the texture onto a list of vertexes.  It makes sense to me at least :) The order of the information given though so far doesn't make much sense. More twiddling I guess for me.

I've rendered a few more interesting object sets if you care to look.
Image removed Site is gone
Yes it's one of WEAPON!

You can see the feet at the end of the pile of objects ;)
There are 28 objects in all for that one.
 
Well I have some better images.

I discovered that the QUADS follow PSX ordering of vertices (yea me :( ).
Quadrics on the PSX are split into 2 trinagles, and that's how the PSX processes a quad (not a joke.  Even though there is a quadric command, this is how the PSX internally handles them. What has this to do with the model data? Well it helps to know how the vertices are actually ordered.
Code: [Select]
Code:
Triangle QuadB--C    B--D|  /    |  || /     |  ||/      |  |A       A--C
These are the ordering of the vertices given to have a correct triangle or quad draw. The normal follows the left hand rule. The vertices are the vertices as they appear in the model data (in order).
Any how I also found out how to make the objects into meshs.  I broke the quads into triangles (because meshes do not support quads in POV).  Currently it creates a huge file however the results speak for themselves.

Images removed Site is gone
ENEMY011 <WEAPON>
ENEMY010 <WEAPON>
TIFA <reprise>
 
Since FF7 models use only vertex colors for shading, I think you'll find the quality of your renders will increase if you turn gouraud/phong shading off (or set self-illumination to 100% or similar).
 
Sorry I had not much time the last weeks. Yes I know about the ordering of the quad vertices -> look at the one in ENEMY000.BIN (the bottom of the pyramid). =)

Textured objects must have vertex colors AND U/V-coords. Look at the face textures. They have transparent areas => textures have to be mapped over colored vertices.

I'll write a small D3D application that can display our progress this month I think.

Vertices, colors, textures, objects are no mysteries anymore. We should look at animation and bone/hierachy data.  :o
 
I'm a little baffled about the UV data so far..  what it looks like is that ALL numbers are used.
I believe it goes this way now:
Code: [Select]
Code:
Vertice CountsVerticesUV CountUV objects (they are 16 bytes each)Line CountLines (16 bytes each as well)Triangle CountTrianglesQuad CountQuaddsUV exist if the lower word is > 0It decodes better now that I have that added in. However I found Lines in a model and it's still not decoding line data correctly yet.. I don't know why.

Qhimm:
I'm using a raytracer so things will look odd. because there is no vertex normal data I can't make them smooth triangles.  In any case the fact I can get it to export model code for a raytracer is a good start :) Yufi decodes quite nicely safe her head. Still working on the UV data.

Cyb
 
I don't know whether line data is really line data.  :)  That was an assumption, because I had looked on ENEMY000 and 012 only.
 
I don't know whether line data is really line data.  :)  That was an assumption, because I had looked on ENEMY000 and 012 only.

Ahh.. well look at ENEMY019.lZS that is the first one with any texture to it. I noticed that the 'line' data is used and another one you ignored was used whenever textures were added.  I need to recompile my OGL components for BCB in order to add function OGL commands. It's been a while since I've messed with it. I guess better now than never? ;)  One anoying thing the author of FF7meV did was use a black background for model viewing, a lot of the FF7 models are REALLY dark so you can't see the shape very well. The second one is that you can't change your POV or the scale of the model being viewed.

I am working on FF8 Models Qhimm as well, I have a scanner for the PSX version that finds valid TIMs I've noticed that all objects begin on XXXXX800 or XXXXX000 boundaries in the *.IMG files. This to me indicates The file is broken up into 2K sectors which makes sense because FMV on the PSX version are 2K video JPEG compression with 256bytes per sector added for the audio Data.  The files must be written in MODE2 with blank data for regular files in the extra 256 bytes and for Movies has the audio stuffed into 256 extra bytes per sector.  So I'm going to try using the model data you have posted and corelate that to the begining of the model file.  This means an FF8 model viewer for the PSX version is possible. I haven't tried FF9 yet.. but my suspicion is they used the same engine and model format with better modeling (because a lot of the characters look quite good in FF9).

Cyb
 
Here are a few teaser screenshots of my D3D9 application  :) :

enemy010_5.jpg


enemy010_1.jpg


enemy010_1w.jpg
 
Ok Fine fine.. I'll post my shots from my internal viewer for TV too (woo).

It took me a couple hours to remember my opengl code and to fix up a few mistakes I made. Anything with textures still can't be read sadle so here is weapon (same as you Kislinskiy) without an FPS being displayed. ( rather unimportant to me hehehe).

Images removed Site is gone

Yep a few hours work and poof.. no textures yet which sucks.. maybe with some more abuse.
 
Looks nice.  :)

This week I will try to handle/unterstand texture data.

One more thing:

I have noticed that the most models have one more visible object than non-zero offsets in the "unknown"-structures. E.g. ff7vM reads 18 objects from ENEMY010. My app can only read 17 objects. Any idea?

We should look at ENEMY145 (mirror) and ENEMY165 (airplane) because they have only 3 visible objects, no textures and 2 offsets in the "unknown"-structures.
 
Here is the visible object format  :D :

SizCoords
Coords[SizCoords / 2]

NumTexturedTriangles (LOWORD only)
TexturedTriangles[NumTexturedTriangles]

NumTexturedPlanes (LOWORD only)
TexturedPlanes[NumTexturedPlanes]

NumTriangles
Triangles[NumTriangles]

NumPlanes
Planes[NumPlanes]
 
Now we can read HICLOUD (ff7vM can not).  8)
It should be easy to implement the textured triangles and planes to our applications. I will do it tomorrow, because I have not much time today. Then I'll look at the "missing-last-visible-objects-problem".  :)

I guess the animation and bone data are harder to decrypt.  :o More on this later.
 
Cool data!

I'll see if I can abuse it as well.  I'm wondering if the textured areas are drawn 2 times, IE first the nontextured versions of the polygons. Then with the textured layer and black being transparent.   Just a thought :)

Oh some more on the information contained in the Unknown area in FF7 I was looking at the bone data Qhimm has listed in FF8's format. The section I called flags has very similar settings in the FF8 data. I believe that might be a good clue as to what it is.  I do believe the unknown area is bone data but I think it might be the data heirarchy information as for actual skeletal data that hasn't poped out yet to my eyes.

I assume by Coords you are refering to vertices ;)

Cyb
 
Coords -> vertices. I call it coords because it is only position data. I call the coords + colors/uv's "vertices".  :)

Your assumptions about the transparent textures are right. You must render the colored vertices before the textured vertices.
 
Status
Not open for further replies.
Back
Top