I guess I better name them. They are the root plain, the overlay plain and the poly plain.
The root plain is the background, but where the character can walk "behind" an object, a color mask is applied.
The overlay plain is placed over the color mask so it overwrites cloud when he's "behind" something.
The ploy plain is an invisible 3d "road" that cloud walks on and is used for placement calculations.
Let me expand a bit. then I really, really, have to go to bed.
Let us say that cloud is in a square room with a piller in the middle. We are looking into the room from above at an angle so cloud has the ability to walk "behind" the piller.
First let's define the poly plain. This is just the floor where cloud can walk. If we were to make it visable we would see a square with a hole in the center. When the field is loaded into memory it takes that poly plain and moves the camera into the correct angle so that the invisable poly plain matches the root plain's floor. Cloud can walk anywhere in the square, but if he's placed into a "null spot", like the hole in the center where there is no road, he will get stuck and only be able to spin around when you move him. Now where the piller is supposed to go we will put a bright pink color mask (this is still on the root plain) and then the overly plain goes ontop with the piller grpahic.
So let's step through how cloud wallks "behind" the piller.
The model of cloud "knows" the invisable poly plain is there, even though we don't see it. when we walk cloud around to behind the piller. the engine loop does this.
First it draws the root plain. Then caluclates clouds postion in 3d place using the poly plain. Then they render cloud. Then they put the overlay plain ontop of the root plain and then blit finished render to the display. If cloud is behind the piller he will be painted over by the piller graphic. that's how the clipping is done.
One last thing. If a character walks up or down a flight of stairs. He's actully walking up/down a ramp in the poly plain. No reason to put stairs there if all he needs to do is go up at an angle. Ladders, are walls though ^_^
I hope I didn't thoughly confuse you all.
[This message has been edited by halkun (edited May 20, 2001).]
[This message has been edited by halkun (edited May 20, 2001).]
[This message has been edited by halkun (edited May 20, 2001).]
This information has been assimilated into the tech doc. Have a nice day. :wink:
Fice.....any progress on being able to edit the things beside the palette? If not, is there anything i can do to help? I only know vb......but maybe i can make a conversion/editor program if someone can supply me infomation about those layers.
That said, I have got one or two ideas on *how* to implement proper FF7 background editing. I don't know whether any of them would work or not, but it's not like I'm at a dead end.
I will have *some* time for my programs now I'm back at my PC; there's no way in hell I'm going to revise all day! But obviously it isn't going to be as much as when I didn't have exams.
How much do you guys know about the background format? I mean, mine and Qhimm's source is already available (and has been for a while), but would it help if I wrote another one of my famous (ha) documents explaining it in more detail? I could do that, it's not like it'd take an enormous amount of time.
Combine this with Halkun's info above, and that sums up about all I/we currently know. Ficedula, if you know more, I'd welcome another one of your documents. :D
Now for those playing along, when you first enter the scene there is a street lamp near the bottom. Cloud can walk behind that. Now The "color mask" for this field file is bright green. that gets layed down first, then the root plain. Now, the root plane has semi-trasparent "holes" that allow lights and other doodads to "shine through". The polygons are then rendered and placed on the root plane. Then the overlay plain is placed on top of that. That also has semi-trasparent "holes" (like the streetlamp) To have the green color "shine through" That's how lighting is done. I hope this helps out.