Qhimm.com Forums
Miscellaneous Forums => Scripting and Reverse Engineering => Topic started by: Akari on 2008-10-25 12:16:53
-
Did anyone has info about psx FFVII battle models format?
-
Found it.
http://wiki.qhimm.com/FF7/Playstation_Battle_Model_Format
-
Yes... worked on it with a mickey and a few others a long while ago. Added it to the wiki, I wonder if anyone has updated the animation information?
Have fun with it, it should be similar to the field data with the big difference being textures.
Cyb
-
Yes... worked on it with a mickey and a few others a long while ago. Added it to the wiki, I wonder if anyone has updated the animation information?
Have fun with it, it should be similar to the field data with the big difference being textures.
Cyb
It's different. Battle model info much easier then field model. Though battle map model if harder... at least now =)
-
Now I can't find animation format =)
It's different from PC. Or at least I don't understand PC format =)
-
Now I can't find animation format =)
It's different from PC. Or at least I don't understand PC format =)
I believe someone stuffed it into the wiki. Not positive. I'll have to look as it was in a PDF file that disappeared off of here I think someone may have relinked it. L Spiro was the talent behind that (with help from Qhimm). It's a rather nasty format in that it uses delta compression and is rather complicated. I believe that was what I was working on .. getting working with the battle models when I had the 'deadly' computer crash. :D
Cyb
-
Now I can't find animation format =)
It's different from PC. Or at least I don't understand PC format =)
I believe someone stuffed it into the wiki. Not positive. I'll have to look as it was in a PDF file that disappeared off of here I think someone may have relinked it. L Spiro was the talent behind that (with help from Qhimm). It's a rather nasty format in that it uses delta compression and is rather complicated. I believe that was what I was working on .. getting working with the battle models when I had the 'deadly' computer crash. :D
Cyb
This is PC format http://wiki.qhimm.com/FF7/Battle/Battle_Animation_(PC)
But I don't understand how apply it to PSX data.
-
Little disasm revealed that bit compression are the same. At least 5th byte are show how much to left shift data to reveive real angle. But I still don't understand how it affect bones.
And it's strange but for each frame it reads a lot's of animations.
for MP idle it reads first animation, second and 10th animation.
for fire from mashingun it reads first animation, second and 10th animation, forth, and 12th animation. It seems that there are blending between animations or something this kind.
-
The Playstation formation may be similar but the PC variant did lots of tweaks to make things easier for the PC code. Perhaps most of the PS1 animation data is a series of frames?
I had a hard time figuring out how to use the data, the first frame didn't always come out as expected.
Cyb
-
I was mistaken, everything just like was written in this article... but I just cant get it without disasming it myself.
Unknown parts seems be related to camera movement.
-
Did anyone has idea what second block is?
First is mesh, third and so on - animations, last - textures. But what are second block?
-
Did anyone has idea what second block is?
First is mesh, third and so on - animations, last - textures. But what are second block?
I looked at it but could not make heads or tales of it, it is different for each one but what it means escapes me. Perhaps it identifies the sections past #2 and before the near last.
Also you are wrong the last is not always a texture. Watch out for that because the character battle models have there weapons in the 16 last sections of the file.
Cyb
-
Did anyone has idea what second block is?
First is mesh, third and so on - animations, last - textures. But what are second block?
I looked at it but could not make heads or tales of it, it is different for each one but what it means escapes me. Perhaps it identifies the sections past #2 and before the near last.
Also you are wrong the last is not always a texture. Watch out for that because the character battle models have there weapons in the 16 last sections of the file.
Cyb
Oh! I got it. Part of this file is action scripts (or sequence)
from offset 0x68 there are 0x20 offsets to sequence of commands.
For example action attack with tonfa for MP
Action id 4
Sequence: FCF0 06 D12003000004F0 07 F704 08 FAF0 09 E5EE54
Commands are everything greater than 0x8e
This action playes animations with id 06 07 08 09
06 - start of jump
07 - half jump
08 - end jump
09 - attack
After this action id resets to 0 (idle) and play sequence
A9C900C1
pointer value 3 2 for each cycle
// C1 (33) this reset pointer to 0 and then increment it until it points to opcode past C9
// 00 - play animation 0
-
Oh! I got it. Part of this file is action scripts (or sequence)
from offset 0x68 there are 0x20 offsets to sequence of commands.
For example action attack with tonfa for MP
Action id 4
Sequence: FCF0 06 D12003000004F0 07 F704 08 FAF0 09 E5EE54
Commands are everything greater than 0x8e
This action playes animations with id 06 07 08 09
06 - start of jump
07 - half jump
08 - end jump
09 - attack
After this action id resets to 0 (idle) and play sequence
A9C900C1
pointer value 3 2 for each cycle
// C1 (33) this reset pointer to 0 and then increment it until it points to opcode past C9
// 00 - play animation 0
Now that is interesting, it is no wondered I couldn't make heads or tails of it, as the script codes were the last thing on my mind. I was thinking it might have been information about the specific contents of the file. Is the data well organized? IE does it follow a format that can help identifying animation data versus texture versus model? I believe on the characters the weapon is somehow added as a bone (the of which the bone can change obviously). So I was wondering about how it worked into the animation sequences. If the second section in the file helps with that, then it would be easier to work with FF7's data.
Stephen
-
Found where animation scripts defind: in enemy data in scene.bin at offset 0x0038 there are 16 bytes with animation scripts id. After that are 16 two bytes records with attack id.
-
I understood usual sequences of attacks.
// machine gun
FC EA 02 AD07B801010A D8011000 F708 03 04 05 E5EE
// opcodes
// FC set direction for animation for target and attacker based on target and other things.
// EA show attack name
// 02 play animation 2 (jump to half enemy)
// AD[07][B801][01][0A] Attach effect to joint 07 with lenght 1B8 which starts at 01 and ends at 0x0a. Always mashingun fire.
// D8[01][1000] some effect related???
// F7[08] time before target plays hurt action. This will display damage and effect.
// 03 play animation 3
// 04 play animation 4
// 05 play animation 5
// E5 return direction (oposite of FC)
// EE reset to idle.
// tonfa
FC F0 06 D12003000004 F0 07 F704 08 FA F0 09 E5 EE
opcodes
// FC set direction for animation for target and attacker based on target and other things.
// F0 set dusty effect to feet
// 06 play animation 6 (jump to enemy)
// D1[2003][0000][04] set jump to target.
// F0 set dusty effect to feet
// 07 play animation 7
// F7[04] time before target plays hurt action. This will display damage and effect.
// 08 play animation 8
// FA return start position of unit. Opposite to D1.
// F0 set dusty effect to feet
// 09 play animation 9
// E5 return direction (oposite of FC)
// EE reset to idle.