Author Topic: FF7 sprite/model details  (Read 10113 times)

ShinRa Inc

  • *
  • Posts: 416
  • The Ascension of the Ordinary Man
    • View Profile
    • http://shinrainc.org
FF7 sprite/model details
« on: 2002-04-27 05:42:57 »
Today's post is brough to you by:
http://members.aol.com/acaiitoarms/janitor.jpg

Anyway.
The afore mentioned
Sidearm fix
.  ...Made it a *bit* too high.  I'll fix it sooner or later.

Hardedge-Wieldiing female SOLDIER: 3rd

And
a more conventional melee weapon



Magic.lgp Curiousity:
All of the main character's weapons (Aside from Tifa and Red) are in Magic.lgp...But reduced to something very similar to field scale.  As noted previously, they're oriented differently than the other field scale weapons- That is, except Vincent and Barret's.

Of course, this was after butchering a Buster Sword into the above Hardedge...

The Long Barrel R

Barret's Drill

Appearently, Cid's Dynamite.

Sephiroth 3D

  • *
  • Posts: 1679
    • View Profile
    • ModCitizen 42
FF7 sprite/model details
« Reply #1 on: 2002-04-27 07:43:03 »
Forgive me for sounding rude or anything, but what the hell does these images have to do with FF7 technical stuff? It looks to me like it belongs more in the general forum section, despite having a "technical" aspect to them It seem to me like they're more of fan-art.

 If you can give me a good, reasonable answer, I won't move this topic.

Sephiroth 3D

"I don't understand..." "You don't have to understand." - Final Fantasy: The Spirits Within

Sephiroth 3D.com
[email protected]

Sir Canealot

  • *
  • Posts: 900
    • View Profile
FF7 sprite/model details
« Reply #2 on: 2002-04-27 11:20:42 »
Heh. Those weapons have been ripped from the FFVII files. Its technical. The remake team could use that to include some better action in the remake while on feild.

ShinRa Inc

  • *
  • Posts: 416
  • The Ascension of the Ordinary Man
    • View Profile
    • http://shinrainc.org
FF7 sprite/model details
« Reply #3 on: 2002-04-27 16:13:53 »
Quote
Heh. Those weapons have been ripped from the FFVII files. Its technical. The remake team could use that to include some better action in the remake while on feild.


That about covers it.

-Corrected Pistol orientation
-Quite a few of the non-summons .p files in Magic.lgp are down-scaled to be compatible with Field sprites.
-Character Weapons from Battle.lgp are duplicated, but rescaled.
-Limit Break specific models are in magic.lgp (Cid's Dynamite, Tifa's Dolphin, Highwind Missiles, etc)  Probably not much of a suprise, though.

Also, if you're looking for different weapons to use in the remake, there are quite a few in there from the Knights of the Round Summon, and they appear to be scaled and aligned similarly to the character's weapons.

I have a theory about the duplicated character weapons;
The "Throw" command.
The remake team should keep that in mind if they *do* go about changing weapons around.  Wouldn't be too jive if you go to throw some new weapon, but Barret's A*M Cannon flies out to smack something upside the head instead.

I also have a theory on why certain files don't work correctly, and why modified/created files seem to have problems being integrated into the actual game.

I'll start off with the easiest example I can think of:
Try viewing Heri2_st in Ifalna.  Unless I've got some kind of unique set of errors, it shouldn't work for anyone else, either.

Open up it's HRC file in Notepad (bzhf.hrc)

Look at the Body-Root bone, and notice it's got 12(!) RSDs linked to it, and thus has a number 12 in front of the string.  Replace that 12 with a single digit (It doesn't seem to matter at all; I used an 8, based off heri_st).  Save it, append it, link it, and all the work needed to replace the original file with this new one, and *now* try and view it in Ifalna.

...And now it works.  I used the same method on the Chocobo Wagon, and if there are any other models with more than 9 RSDs linked to a single bone, this method will probably work.

Now I'm moving into a field I'll probably have trouble explaining correctly, but here goes:
Somewhere, I think one or more of the programs are having difficulty translating the base ten system into hexidecimal.  Using the above example...Instead of properly reading the correct number for the body-root bone (twelve), It's reading it as a One, and then interpeting the Two as a seperate character.

I'm not sure how widespread this problem might be, or even if I'm anywhere close to being on the right track...but if I am, then a *lot* of the translation / conversion problems you guys have might be due to the same basic problem:  Reading any integer over 9 as two seperate numbers.


ps:  Saint, does that count as uncanny mathematical skills?  O.o

Goku7

  • *
  • Posts: 1301
    • View Profile
FF7 sprite/model details
« Reply #4 on: 2002-04-27 22:37:27 »
LOL!!

Just saw your new Shinra add with the janitor.  Where do you get this stuff?!  As my friend would say, "That's a Classic!"

ShinRa Inc

  • *
  • Posts: 416
  • The Ascension of the Ordinary Man
    • View Profile
    • http://shinrainc.org
FF7 sprite/model details
« Reply #5 on: 2002-04-27 23:19:41 »
Quote
Just saw your new Shinra add with the janitor. Where do you get this stuff?!


Erm.  The sprites?  Judicious HRC file editing and patching them somewhere in char.lgp, then viewing through Ifalna.  Now that I have Ultima working, I'm moving into directly editing the individual .p files.

Speaking of...  This is probably a stupid question, but do the amount of Vertecies / Polygons in a model affect the filesize / how well it runs on older computers.  I'd think yes...but if so, Why does square continually have multiple vertices / Polys on the same coordinates?  Getting different colouring effects would explain some of them...but not all that many.

On a similar tangent...This is probably true of other files as well, but It's become *really* obvious in char.lgp.  As near as I can tell, any hrc file can reference any RSD file, And can even display multiple instances (i.e., I've given Reno's sprite two copies of the pistol .p; One for each hand)...You could probably reduce the size of char.lgp just by eliminating all of the endlessly duplicated models -- There are something like 6 copies of Cloud/Zack...The only differences between them is if/where the Buster Sword is displayed (which is *always* a seperate .p file, displayed on the same bone as the hand/chest) and the head.  Well, Zack's models have better shading, but that's trivial really.  Sephiroth has five or six different sprites...Albiet, for some reason, the different things in his hands are fused into a single .P instead of seperate ones as with Cloud and other models.  Still, that's not a big issue to get around.  At least five MPs (Regular, one with the Buster Sword, one with Cloud's head, and another Cloud-head, with the normal MP head[Helmet] in his hand, and one with the rifle).  All of the main characters are duplicated with only a new chest for the Parachute sequence, and Aerith's flower basket.  About two-thirds of all the sprites use one of like...six hands or feet.  And they use them *twice*, since there's rarely much difference between the different sides for those models.  The list could go on and on.  It would seem if Square had taken the time to rework Char.LGP to eliminate all the useless duplications, and have the HRCs point to a single .p file instead, they could have chopped the size of the file in half, probably more.

At first I thought it might have something to do with some part of how the files work that I didn't understand or whatnot, but then there's the last three files;  MMMN.HRC, MMMM.rsd, and MMMO.p.  If you pull it up, you'll see it's Reno's third model.  The odd thing about it, however, is unlike the other two, his head *is* a slightly different shade.  But if you look at the HRC, it's an *exact* duplicate of his first HRC, with only the head RSD changed to the new one.  So, someone at Square was thinking the same thing I am, it seems...But like with the higher-quality field sprites I've already posted about here, They up and abandoned yet another project that would have probably resulted in better game performance...  It's easier if the game only has to browse five thousand files than twelve, no?

And that's basically how I've been creating the "original" sprites...HRC editing using existing data.

ficedula

  • *
  • Posts: 2178
    • View Profile
    • http://www.ficedula.co.uk
FF7 sprite/model details
« Reply #6 on: 2002-04-28 00:03:54 »
Quote

Speaking of... This is probably a stupid question, but do the amount of Vertecies / Polygons in a model affect the filesize / how well it runs on older computers. I'd think yes...but if so, Why does square continually have multiple vertices / Polys on the same coordinates? Getting different colouring effects would explain some of them...but not all that many.

It would affect speed, yes. The reason why could well be that Ifalna/Ultima is displaying too many ... Alhexx & Mirex noted in their descriptions that many P files contain two copies of the polygon-block at different resolutions. Presumably the game knew only to use certain polygons, but Ifalna which wasn't programmed with that in mind, displays *everything* in the file.

Quote

It would seem if Square had taken the time to rework Char.LGP to eliminate all the useless duplications, and have the HRCs point to a single .p file instead, they could have chopped the size of the file in half, probably more.

Yes - this is very true. I haven't looked into the data files too much for this, but there is duplication, which is a bit surprising, but as you say ... that's how it is.

Quote

They up and abandoned yet another project that would have probably resulted in better game performance... It's easier if the game only has to browse five thousand files than twelve, no?

Not much, to be honest. Searching 12,000 entries takes very little time in memory (you're talking 300KB or so, tops, and that's *nothing* for RAM) - and, more to the point, the file table is indexed so you can jump straight to the rough place in the file you want and then pinpoint it from there.
By doing all the optimisation they *might* have saved perhaps 1MB of RAM through smaller tables, but nothing significant.
More to the point, though, the smaller file sizes would've been significant ... I can see that there's not a *great* speedup involved, but I personally would have optimised it *anyway*.

Sephiroth 3D

  • *
  • Posts: 1679
    • View Profile
    • ModCitizen 42
FF7 sprite/model details
« Reply #7 on: 2002-04-28 01:22:35 »
They were rushed with the deadline as is. They didn't have time to optimize the game. I heard they were going to add things they wanted in the PSX version, such as bring Aeris back to life, but they cut it out because there wasn't time. I also heard a lot of the game is like the PSX version cause the fans demanded that they be identical. Stupid fans...

Oh, I can see the tech aspect now. I'm not moving this at all.

Sephiroth 3D

"I don't understand..." "You don't have to understand." - Final Fantasy: The Spirits Within

Sephiroth 3D.com
[email protected]

ShinRa Inc

  • *
  • Posts: 416
  • The Ascension of the Ordinary Man
    • View Profile
    • http://shinrainc.org
FF7 sprite/model details
« Reply #8 on: 2002-04-28 02:18:23 »
Quote
would affect speed, yes. The reason why could well be that Ifalna/Ultima is displaying too many ... Alhexx & Mirex noted in their descriptions that many P files contain two copies of the polygon-block at different resolutions. Presumably the game knew only to use certain polygons, but Ifalna which wasn't programmed with that in mind, displays *everything* in the file.


I'm not sure that's it...  Last night I was working on the Speed Square's tram(jet_st.  I'm working on finishing the starboard side, which was appearently left blank, probably because you only see it from one side, as I recall), and there seems to be two or three different sets of vertices on the same coordinates, with each set linked to similar polygons...which results in what looks to me like two or three different colored surfaces running through the exact same plane, causing different colors to show depending on the angle you view it at...I'm not sure if I'm making sense anymore, though.  Next time I'm working on it, I'll get some screenshots..

And I'm assuming that the two different resolutions thing is why there's Small and Big model options(albiet nonfunctional) in Ultima?

I'm working on the Cargo ship right now...It's a monster.  Sooo many un-needed vertices....

sidenote:  edited the thread name to something more general, since there was some confusion about what I was talking about earlier.  I usually just figure that putting up a graphic of what I'm talking about makes it easier for other people to know what I'm talking about, since a lot of the terminology I use to describe things might not be the same that everyone else is used to...and stuff.

mirex

  • *
  • Posts: 1645
    • View Profile
    • http://mirex.mypage.sk
FF7 sprite/model details
« Reply #9 on: 2002-04-28 02:32:07 »
I think that polygons used on ff7 models should be visible only from one side, so when there is something like thin wall, there are two polygons at same place, one as inner, and one as outer side of wall. But sometimes there are multiple polygons at same place even when not needed. Maybe lazy graphicians at Square  :)
And about big/small models in P file ... i dont think that small model is used at all. Never seen it anywhere. And i think that small model is not a small model, but a array of normals for big model. Maybe.

ShinRa Inc

  • *
  • Posts: 416
  • The Ascension of the Ordinary Man
    • View Profile
    • http://shinrainc.org
FF7 sprite/model details
« Reply #10 on: 2002-04-28 06:23:03 »
re:  Large/Small Models.

To be honest, I don't think there are any either.  It sounds to me like you're describing something similar to flight simulators and the like;  The really *detailed* model of a certain element is brought up once your plane is within x amout of whatever units...If so, I don't think I've seen anything along those lines.  I would think it would be easier to program in a way of reading the field level the character has just entered to determine what scale to display the single model at, rather than creating different models for each field scale.

Ultima keeps throwing a Runtime error 9 at me whenever I try and take a look at an edited model's wireframe...I'm assuming because I'm not patient enough to manually reenter the Edge values.  At least now I've figured out how to prevent *one* of the more frequent errors...