Decent FF7 Model Viewer

  • Thread starter Thread starter Sephiroth2000
  • Start date Start date
Status
Not open for further replies.
And now for something completely different.
First ALL the weapon models are stored with the character model.
The END of the character model is the TIM image in the file. However everything beyond that is a model for there weapons.  No Changes to decoding of the section need to be made, it decodes it as is just like section 0 is decoded. TADA! :)

That's IT I can view the weapons just dandy this way.

And here is the image to prove it!
Image removed Site is gone
PS only one.. we don't need all the weapons to see this fact.
PPS Each Character has 16 weapons.. low rez Sephiroth has 16 Masuami's for example.
 
That's a good news.  :)

Currently I have no time to look at the file format because i want to learn more on advanced OOP first (patterns, composition, delegation, interfaces etc.). Then I will try to code a well designed model viewer for this file format to continue decyrption more comfortable.  8)
 
That's a good news.  :)

Currently I have no time to look at the file format because i want to learn more on advanced OOP first (patterns, composition, delegation, interfaces etc.). Then I will try to code a well designed model viewer for this file format to continue decyrption more comfortable.  8)

Oh.. I take the other approach to things get something working for a bit then rebuild it after I see how far I can push it. I suppose I should try and make it more balanced. I've already had to introduce multithreading just so I can scan a disk without the form freezing.  I probably should do that for reading models as well. Lots of improvements to make.

Although I think soon I should be able to break the bone format, it's coming bit by bit. Now that I know what those extra things are past the TIM image are, I can focus on what's between the TIM and the model data.  Section 1 is the most suspicious one of these It contains a number of odd short ints and ints I think they are a list of offsets, there also seem to be a list of short ints later on.. I suspect they are bone offsets and rotations.

Anyhow glad you aren't dead.

I went back to my original 'extraction' method for textures (go through the textures and use the correct palette) this works correctly now.  My only problem is I need to blend the textures with the polygons now like decals in OGL :)

Cyb
 
A few things on textures:


Forget that about U = 1 - U.
Forget that about U/V correction.


fU = 1 / Width * U
fV = 1 / Height * V


HICLOUD-TIM (256x192, 8 bit):

0) 0...127,128...255
1) 0...127,128...255
...
191) 0...127,128...255

convert to:

0) 128...255,0...127
1) 128...255,0...127
...
191) 128...255,0...127

(Any other models with 8 bit TIM? Swap them too?)


CLUT information stored between textured triangle/plane data:

4 bit:

00 78 = CLUT 0
40 78 = CLUT 1
80 78 = CLUT 2
...

8 bit:
14 30 = CLUT 0


Evt. further changes of U/V mapping. Look at first textured part of ENEMY019.
 
Well I have the texture ordering almost right.. (heh)
So it reverses the UV coordinates on an 8bpp bitmap as oposed to a 4bpp bitmap? that's bizare. Of course as one person I heard say 'FF7 file formats are horribly complicated and the guy making them must have been horribly confused' :)

Cyb
 
Solution of the "Last Object Missed Problem"

"unknown structures" of ENEMY165:

ENEMY165.gif


number of structs
structs
point of interest

There is a UINT32 after the "unknown structures" and before the coordinates of the first visible object. This is an offset to a visible object like the first UINT32's of the "unknown structures".

Now we should not look at the "unknown structures" in this way:

number of structs
struct 0
struct 1
...
struct n
struct m

We should look at it in this way:

number of structs
offset 0 <- connector 0 -> offset 1 <- connector 1 -> ... <- connector n -> offset m
 
So basically it's a list of the number of 'information' structures surrounded by pointers?
I remember going through it Quite meticulously

So what we really have is

N Entries
One 32 bit empty pointer at the begining and
<heirchy> U16
<flags> U16
<Offset> U32
There always seems to be a reference to the last object as well. :)
So looking at it that way may make more sense (Shift the whole array by 4 bytes)
I know what you are (originally) saying however there are no links to anything real otherwise. If you shift it by four bytes and refer to it as that array then the data makes a bit more sense. Let me tinker with it and see if I can get anything useful.

Still haven't found the Structure of Section 1 yet but I think it has to do with the model standing still.

None of the numbers as yet make sense but I believe it's critical to knowing how to piece together the model (correctly). There are a series of short ints and long ints. Then what might be coordinates. I guess I continue to beat on the data tell I decipher it?

I looked at the data (the way I tweaked it) seems to make sense now really (with the offset at the end and skiping to an offset 12 to start looking at the structure).

Cyb
 
Has anyone fully rendered Jessie? I remember going through with a model viewer and finding a Jessie model somewhere in there.
 
Has anyone fully rendered Jessie? I remember going through with a model viewer and finding a Jessie model somewhere in there.
These are battle models, scene models are included with the scenes they are in (IE say the reactor at the begining of the game or the train station).  Cloud Jesse Barret etc are all included in the actual scene. For battle the game loads in a different set of models (that look totally different as well). At the moment these models haven't been found or extracted by anything I've made :)

Cyb
 
Yeah, the Jessie model I saw was a battle model; it was only the top half of Jessie so I assumed the viewer couldn't fully render the model.
 
Yeah, the Jessie model I saw was a battle model; it was only the top half of Jessie so I assumed the viewer couldn't fully render the model.

Jessie is not possible to have in a battle thus it can't be a battle model.  I've never seen Jessie in a battle in all the times I've played FF7 through the part Jessie is still alive. Jessie is never in  your battle group either. The only thing I can think of is someone extracted Jessie from a scene file and put it in a battle sccene (quite doable).

Sounds like something Ficedula would do with Zanan.

I made a 'exporter' plugin module for that and POV Ray, I suppose if I understood FF7 battle scenes well enough I could make something like Zangan.

Cyb
 
By scene model you mean the low-poly model that you use to navigate the game right?

The model I saw was the top half of what appeared to be a battle model, or something that could have been possibly used in a battle sequence.
 
That model was used in the scene where you and Jessie are standing in front of the monitor, and she explains the Midgar rail system to you. I've seen it in the PC version, using I believe Ifalna. There is one of Cloud in the same scale.

-Contra-
 
the highly detailed Cloud and half-Jessie models are never used in the game.  It's been theorized that Square was going to make higher-resolution models throughout the game, but gave up, leaving what you see there.
 
Are you *sure* they aren't used when Cloud and Jessie are looking at the railway map?

I mean, I could be wrong, but I really think they are.
 
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:

Code: [Select]
Code:
Bits                    Description======================================32                      NumOffsets32 * NumOffsets         Offsets32                      NumUnknown132                      00 00 00 0064 * NumUnknown1        Unknown1 structures (Hierachy data ?)32                      00 00 00 0032                      VertexDataSize in Bytes8 * VertexDataSize      VertexData (4 * 2 Bytes -> X, Y, Z, Unknown)32                      00 00 20 0032                      NumLines--- LINE STRUCTURE * NumLines --- (not used in game) -------------------64                      Indices in VertexData(4 * 2 Bytes -> A, B, 0, 0)32 * 2                  Color (4 * 1 Byte -> R, G, B, Unknown)------------------------------------------------------------------------32                      NumTriangles--- TRIANGLE STRUCTURE * NumTriangles ----------------------------------64                      Indices in VertexData(4 * 2 Bytes -> A, B, C, 0)32 * 3                  Color (4 * 1 Byte -> R, G, B, Unknown)------------------------------------------------------------------------32                      NumQuads--- QUAD STRUCTURE * NumQuads ------------------------------------------64                      Indices in VertexData(4 * 2 Bytes -> A, B, C, D)32 * 4                  Color (4 * 1 Byte -> R, G, B, Unknown)------------------------------------------------------------------------XX                      UNKNOWN + AnimationData?Last Entry of Offsets   TIM-File (only palette(s) if model has no texture)== END ==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.

Excuse my ignorance, but aren't .LZS files supposed to be compressed?
and if so how can I uncompress them? (lzs.exe from Ficedula's site seems to constantly crash on either XP or Win98)
Thank you in advance
 
Welcome to the Forums Anakin. We will be watching your career with great interest...

Please don't bring back dead topics like this if you don't have something to add to the discussion. It's in the rules.

Yes .lzs files are compressed. If ficedula's app isn't working for you (makes sense--it's designed for files from the PC version), the only other one I know of is a tool written by M4v3R. I can't find a working link, though, so you'll just have to hope he posts one (no whining/begging, please. I don't have it.)

the highly detailed Cloud and half-Jessie models are never used in the game.
that model was used in the scene where you and Jessie are standing in front of the monitor, and she explains the Midgar rail system to you. I've seen it in the PC version, using I believe Ifalna. There is one of Cloud in the same scale.
After a quick Techdoc consultation, it looks like Contra is correct. Here's proof:
The train monitor location is rootmap.
rootmap loads the following two 3D models:
clgd.hrc -high res. Cloud
cmde.hrc -high res. Jessy upper torso
 
Welcome to the Forums Anakin. We will be watching your career with great interest...

Please don't bring back dead topics like this if you don't have something to add to the discussion. It's in the rules.

Yes .lzs files are compressed. If ficedula's app isn't working for you (makes sense--it's designed for files from the PC version), the only other one I know of is a tool written by M4v3R. I can't find a working link, though, so you'll just have to hope he posts one (no whining/begging, please. I don't have it.)

LOL
Thx for bothering to answer
 
LOL
Thx for bothering to answer

Hmmm well the thread isn't dead however it's just not been active because I ran into trouble with getting OpenGL to apply textures to surfaces, I don't know what I am doing wrong either.

As for compression
All LZS files are compressed, in fact almost all files are compressed in FF7, I suppose if they hadn't done that they couldn't fit the entire game on 3 disks (4 like the successors).  FF7 had a lot of cool ideas in it, however I think 1/3 of them never saw completion (such as the Shinra dolls).

Suggestion don't quote a huge section of text next time ;)

If you have questions regarding the Battle models for the playstation version ask away :)

Cyb
 
Thx

Well in fact I'm also interested in the simpler -deformed- character models that are used throughout the game (always refering to the PSX version).
I would like to be able to export the coordinates of the shapes that make up these characters as well so I could reconstruct them in AutoCad or 3DMax.
Only I don't know where to start from, where to look...
 
Status
Not open for further replies.
Back
Top