Miscellaneous Forums > Scripting and Reverse Engineering

.dat Files FF8 - Section 5 - animation sequences - Enemy / characters findings

(1/5) > >>

smalldirt:
Hello guys,  :)

I’ve been editing the dat files in the past weeks and i’ve found some interesting data in the „sequence” section (section 6 reffering to Wiki for monster enemies). I haven’t seen any detailed documentation on the wiki neither on the forums so i would like to share with you, it might be useful for future gameplay mods.

I’ll put it forward that i dont have programming exp, so i might express myself improperly at some points.

Both enemies and playable character have this type of section. (For characters it can be found in the weapon dat file in section 4, except for Edea since she doesnt have a weapon it can be found in her character file i think section 8, but unsure, and for Zell / Kiros in section 2- because their weapons dont have independent bones / animation)

So all moves (for characters – Commands) have their own animation sequence, which is playin multiple animations in a specific order + in addition it can:
     •   Display enemy related Text data while performing a move – developers used this to combine the texts with camera movements (in the AI you can CALL texts too but it’s without camera
          movements)  (character camera movements can be found in secion 6, following the same struct as a battle stage cameras)
     •   Play Aura effect (green light)  or if properly modified – Limit break auras yellow / blue, GF summon effect
     •   Make the modell disappear Reappear
     •   Loop an animation during a magic effect / Define it to repeat e.g. 3x (in Hex) times
     •   Move the modell while animating
     •   Trigger the damage and write out the figures
     •   Make an attack effect (given by a specific ID in hex) appear while triggering the damage (e.g. Seifer blue sword slash)
     •   Exit the modell from the fight – e.g. GF fights, where the enemy doesn’t have a death animation but the fight ends

I have to make a distinction here between enemies and characters, the section has the same function but a different purpose.
The structure of the section are the same in both cases

Offset      Length (byte)           Description
0              2                           Number of sequence
2              nr of seq *2           Relative offset to the start of the sequence

The sequences itself vary alot, but there are similarities.


Enemies:

If we take an enemy in Ifrit editor for example the third colum shows the related animation sequence number, for magic, it uses the 11th animation sequence. (Fujin c0m 119.dat).  (By the way, the similarity between all DAT files, that every character’s 11th animation sequence is used for magic attacks).

Lets take an example.


https://imgur.com/iGxgizc


The thing is the structure vary, for the characters dat file magic usage is different, because they jump out with an additional animation and while the animation ID is launched they have an additional animation for looping. (It is also handled here)
Let’s take another example Disc 2 Seifer – the sequence Nr where Seifer teases Squall (Text 1 – I will show who’s the better man blablabla, Text – 2  Show me what you got blablabla)

video link if it's dont clear what part i am talking about:  https://youtu.be/Iv_bbsDYXNE?t=390


https://imgur.com/MPMFKMx


(I am not sure tho, if anyone have got some useful information about this section, that would help alot to understand the whole.)

There should be a byte either in loading / displaying which determines that for how many frames are the text displayed. Need to check it out.
So as you can see the structure vary, if an enemy quits the fight, then instead of A2 the enemy uses
A3 XX E6 FF (XX optional – animation number) + (A3 / A9 – A3 for disappear quit and A9 for the simple quit but i am unsure on that one).

Characters:

For characters, each character has 1E – Total 30 number of sequences which is triggered by commands or triggered by memory depends what happen on the battle stage (HP, Runaway, Death). The number of sequences that can be found here is fixed for all characters, but some may be unused. For example some characters winning animation are contained in the r0win.dat. in 3 sections
 1.   Character animation
 2.   Weapon animation
 3.   Sequence – Plays the animation and exits
Or another example there is an additional limit break start sequence for zell finisher – blue light.
I’ve made a list of the sequences based on the data i found in Zell’s file. The list may not be 100% correct.


1 - Basic Standing Animation loop
2 - Exhausted - low hp animation loop
3 – Death loop
4 - Damage Taken into a low hp phase
5 - Damage Taken Normal
6 - Damage Taken Crit
7 - Nothing happens
8 - Apperance (like at the start of the battle)
9 - Staying in "rdy to attack standing"
10 - Draw command fail animation
11 - Magic animation
12 - Basic Standing Animation
13 - Attack - normal
14 - Guardian Force Summoning (Disappear)
15 - Item Use
16 - Runaway 1
17 - Runaway 2 - Escaped disappear
18 - Victory Animation
19 - Changing into "rdy to attack standing"
20 - Guardian Force Summoning (Re-appear)
21 - Limit break 1 (Normal)
22 - Draw/Defend Phase again?
23 - Changing into Defend/Draw Phase
24 - Kamikaze Command - Running to the enemy
25 - Attack - Darkside
26 - Runaway 2? (same as 1) - maybe used at Edea Disc 1 fight? (Rinoa / Irvine appearance)
27 - Defend/Draw stock
28 - Limit break 2 (Special, e.g. Squall/Zell Blue aura)
29 - Defend command standing again
30 - Draw Stock Magic


As you can see GF summons play sequence NR 14 and after the animation ends the system automatically triggers the sequence NR 20 for re-appearing.


I tried to search back how the character limit breaks look like and add multi counting. I found Seifer animations in the exe at offset xA2B518. (Contains the character animations, weapon animations & the sequences, however the animation sequences look weird, by the code it plays the animations 1 by 1 then exits, even if there are animation looping during his limit break etc.etc. ) It should be somewhere else in the exe where the ID handles magic effects.

Anyone got additional information about this?  :?


Controlling enemy freeze:

My main goal was to make some enemies controllable, it seemed to be quite easy with cheat engine, but enemy codes didn’t really make them useful since the game crashes while triggering different commands because of the following:
•   enemies have less sequences than characters and follow a different order
•   the only similarity is that the animation sequence used for magic is same for all dat files
•   thats why the game do not break on magic command while using an enemy in your party
•   if you trigger an empty animation sequence the game freezes
•   maybe some memory editing can fix this issue?


I've been modifying .dat file sequences lately with spells, and you can achieve pretty cool stuffs:  :mrgreen:

https://www.youtube.com/watch?v=ubh0DDNprcE

 

smalldirt:
I just realized that i've actually misstyped. It's section 5 in the monster dat files.   :-\

Sega Chief:
That Ifrit summon animation was super cool, having him jump up first went really well with the appearance part of the summon animation. I was wanting to have GFs use their own ability (or sometimes a different GF's ability) in my mod, but calling the animation with a standard spell-casting animation tends to have bad side-effects, particularly with the camera.

If I were to try and replicate what you'd done, would the steps be something like this?

1) Make a copy of the data that handles Ifrit's jump attack and put it into one of Ifrit's empty animation slots.
2) Add the limit break effect to it (does this have to be hooked to a specific frame of the animation or does it just play by itself when the animation starts?)
3) I'm guessing Jump doesn't call a magic animation as-is so that would need to be added somewhere midway + a flag to disappear?
4) After summon animation has played, Ifrit needs to be flagged to reappear (maybe using a copy of a character's #20 animation script for reappearing).

The info you've posted might be handy for fixing up some unused but busted animations on certain enemies as well. X-ATM had a double-leg attack that looks like it was intended to hit the two characters on the flanks but it has no sound and can hang.

smalldirt:

--- Quote from: Sega Chief on 2019-11-19 22:50:48 ---That Ifrit summon animation was super cool, having him jump up first went really well with the appearance part of the summon animation. I was wanting to have GFs use their own ability (or sometimes a different GF's ability) in my mod, but calling the animation with a standard spell-casting animation tends to have bad side-effects, particularly with the camera.

If I were to try and replicate what you'd done, would the steps be something like this?

1) Make a copy of the data that handles Ifrit's jump attack and put it into one of Ifrit's empty animation slots.
2) Add the limit break effect to it (does this have to be hooked to a specific frame of the animation or does it just play by itself when the animation starts?)
3) I'm guessing Jump doesn't call a magic animation as-is so that would need to be added somewhere midway + a flag to disappear?
4) After summon animation has played, Ifrit needs to be flagged to reappear (maybe using a copy of a character's #20 animation script for reappearing).

The info you've posted might be handy for fixing up some unused but busted animations on certain enemies as well. X-ATM had a double-leg attack that looks like it was intended to hit the two characters on the flanks but it has no sound and can hang.

--- End quote ---

Hi Sega,

Yes something like that but for Ifrit attack -
Ifrit Special attack contains 7 (seperate) animations sequenced, also sequence data triggers the sound effects too and the punch graphical effect when it hits + writes out the dmg figures, so copying and putting a disappear at the end wont help, in addition whenever you replace an ability magic ID with a summoning magic ID the battle camera do not get set back into the original place, thats why you need a separate animation sequence for disappearing and reappearing aligned to two different abilities to get the proper result.

1) for summoning attack -  a proper animation sequence with disappearance (no battle camera movement since the magic ID handles it)
2) reapperance with an ability which contains battle camera movement (battle camera movement Y/N can be set by doomtrain easily for an enemy ability)


So the AI should be written to trigger theese two abilities after each other.
About the sequences:
Here is a link about my notes i made while i was writing it:
https://imgur.com/5POf6Sq


I used only the first 3 animation of Ifrit's punch attack, and removed the rest so it wont trigger the damage / attack sound effect. Here is how it looks like from another angle.

https://youtu.be/BvQ9yGdq-4g


Add the limit break effect to it (does this have to be hooked to a specific frame of the animation or does it just play by itself when the animation starts?)

Nope, you dont have to specify a frame of an animation, but it think it should be set before an animation.


Also if it's not not clear how to make it, i uploaded my Ifrit file for you if you want to dig into it.
(stats are messed up and the ability triggers as a counter attack in the AI)

https://drive.google.com/open?id=1Gmhf4MsYKCdX9mXQgiMVeMN0o7Kr4qNZ   

X-ATM had a double-leg attack that looks like it was intended to hit the two characters on the flanks but it has no sound and can hang.

Yea i think it's his 26th animation from section 3 if it helps. I wanted to check it out too, trying to make a small gameplay mod.

KR  :)


IzzacSturnburg:
Impressive find dirt! I'm truly excited about this, i hope this foundation gets built on to make custom stories, scenes, and home brewed battle animations. thanks for that wonderful display of use. Really like the video.

Navigation

[0] Message Index

[#] Next page

Go to full version