Working on Field models.

  • Thread starter Thread starter Akari
  • Start date Start date
Status
Not open for further replies.
A

Akari

Guest
At last I start to understand what is going on with models during field loading.
Flow of loading is simple:
- Field DAT (data)
- Field BSX (models)
- All global models.
- Textures for global models.

After that field is running and it starts to load MIM file (background textures) for field loaded with closest gateway trigger. If you get close to another gateway trigger is starts load it's MIM.

The hardest thing is to understand how global and field models work together, because they are loaded to different location.
FFVII team use additional description structure. They copy all offsets from BSX and BCX (global model) and data about bones, model parts and animation there (they not copy data itself such as vertexes texture UV and angle, only header data like number of those things and offsets). It seems that data left in files not used at all. Now I stopped at bones structure initialization. After finishing initialization I can start working on animation and texture assign itself, and maybe start extracting them.
 
Good luck with this new challenge and thanks for keeping us updated.
 
This week gives a good amount of results.

I understood animation routine. It's really simple, but I didn't wrote documentation yet. Mainly it just increase frame value. Depending on on current state it can stay in last frame or reset to zero. All opcodes play animation only once. Next they could return to usual routine (state 0), or stay in last frame (state 3). In last case you must call one more opcode to finish it. Of course all states reset to 0 if we set movement to manual.

And I mainly understand how animation format works. Now I in the middle of reversing function that sets transformation matrixes for bones. Animation sets not only by angle, but with translation too. For example all walking characters has root bone moving by Z axis. I wonder if it was found in PC version.

Next week I'll try test this in old Q-Gears code without exporting it.

ps: http://community.livejournal.com/q_gears/
 
Yes, the PC version animations also keep the Z axis root position for every frame.
 
The BSX files include animation sequences for field models for each location yes? (not character ones obviously)
Are the animations used for the character models in field therefore in the BCX files and run by the scripts? I suspect that's what they did.
Merely wanting to confirm I am not out in left field :D

Cyb
 
The BSX files include animation sequences for field models for each location yes? (not character ones obviously)
Are the animations used for the character models in field therefore in the BCX files and run by the scripts? I suspect that's what they did.
Merely wanting to confirm I am not out in left field :D

Cyb
Each BCX contains only 3 animation for character (stand walk and run). BSX contains additional animation used in field.
 
this makes very interesting reading.
good luck. what are you guys wanting to achieve when your finished? (sorry cant remember what FAQ said)
 
good luck. what are you guys wanting to achieve when your finished? (sorry cant remember what FAQ said)
working ff series engine that would support psx and pc data.

so far most effort is put into figurinn out ff7 and ff9 data, there is also some small progress on fft and xenogears.
 
This week update will be with screenshot =)

s320x320


This is test I create using q-gears 0.13. There is no opcodes in there but Models can play animation, so if anyone interested - he can implement everything =) I will only do this for new Q-Gears. I finish revercing of bone matrix creation. This is function that go through all bones and create transformation matrix for specific bone acording to all animation, translation, rotation, camera, offset and many many other data used in engine. So animation is finished. But not all models in game displayed correctly. Mainly because rendering is not understood yet. I just start working on it, so it doesn't display textured poly and doesn't has light anf other effects. This is next few weeks task.

Now I start work on KAWAI opcode. This opcode was created by Hiroshi Kawai who was character programmer in FFVII. Using this opcodes you can create effects like blinking or effect when character looks like he is in water. Thats all for this week =)
 
Interesting I look forward to the information regarding the code used for animation.

I am very interested in that part of the script engine.

The bone matrix transformations are also of interest too me because I never got those correct (sad).

Cyb
 
When you make these changes do you commit them to Subversion?
 
When you make these changes do you commit them to Subversion?
No, I'm bit lazy for that, and besides I can't upload it to main branch because game itself not working. I can ask G to upload it somethere.
 
Feel free to use to create a branch in the q-gears SVN if you want.
 
good luck. what are you guys wanting to achieve when your finished? (sorry cant remember what FAQ said)
working ff series engine that would support psx and pc data.

so far most effort is put into figurinn out ff7 and ff9 data, there is also some small progress on fft and xenogears.

that sounds pretty cool, where the xenogears that game rocked. :D so you re-create the game engine that would achive? better performance and gfx and gameplay etc?  since the FFVII works fine for me :D :D :D
 
good luck. what are you guys wanting to achieve when your finished? (sorry cant remember what FAQ said)
working ff series engine that would support psx and pc data.

so far most effort is put into figurinn out ff7 and ff9 data, there is also some small progress on fft and xenogears.

that sounds pretty cool, where the xenogears that game rocked. :D so you re-create the game engine that would achive? better performance and gfx and gameplay etc?  since the FFVII works fine for me :D :D :D
I don't think many people need engine that simply runs game on PC. There are a lot of great emulators that can do this. My goal is to create engine that allow you to create your own game with all posibilities which square engine has. FFVII will be run on that engine too. Most likely it will be like sample project.
 
I don't think many people need engine that simply runs game on PC
that's true for windows users. linux folks (like me) are another story, though :]

keeping it as a more generic game engine is a great idea, though - it could be extended to run ff8 as well (since ff7 and ff9 are in the works already), in time, or to make your own rpg games.
 
You can't run PCSX or ePSXe versions under Linux? I use too been a while.

Cyb
 
I said I use to run ePSXe and PCSX under linux.
I probably should turn on my linux box, blow dust off it's keyboard, and update it's video drivers for OpenGL (it has now an ancient GF3 in it).

Cyb
 
This week brings almost nothing. I'm in the middle of reversing creating packet drafts and filling them with real data. But it liiks like I will need to parse eyes texture loading too. As I can see Square did all rasterization all by themself. During loading for all types of polygon packet draft is created. Packet draft is place in memory where all static data for specific packet is filled (packet header, texture data). During render vertex coords copied in there too and, i suppose, they sent to GPU. A lot of work lies ahead =)
 
Status
Not open for further replies.
Back
Top