Author Topic: Strange Dual-Animation Glitch  (Read 1469 times)

Sega Chief

  • No life
  • *
  • Posts: 3282
  • Karma: 188
  • These guys is sick
    • View Profile
Strange Dual-Animation Glitch
« on: 2014-01-14 23:33:42 »
I was testing fights when I found I'd accidentally left some model IDs unchanged in the scene.bin, so instead of Sweepers and Mono Drives I got a horde of Clod and Harpy instead. Thing is, after a few turns the Clods synched up with each other and started to use two spell animations together at the same time.

It starts after 40s in this vid: http://youtu.be/3ER8EAcr1rc

Proud Clod was using his 04 animation (according to the Proud Clod (...) editor) for the spell attacks which is one of his normal animations for attacking (wrist laser) as far as I'm aware. The game locks up when Haste is used with Matra Magic, which I'd presumed was because of a mis-match between Clod's and Harpy's animations but I think they synched with Light Shell and Vacuum prior to that. There was nothing special in the AI that I could see, which I've provided at the end. Is there something different about the way Proud Clod's animations work because of his Jamar Armor? Anyone got any ideas on this or seen something like it before? If it's not specific to Clod then it could perhaps be used (with some finesse) for 'combining' spell animations in gameplay mods. Maybe.

'Proud Clod'/Sweeper AI
Code: [Select]
0x000 If (Random MOD 4 == 0)
0x000 {
0x009 TargetMask <- RandomBit(AllOpponentMask)
0x011 Perform("Matra Magic"[0052], EnemyAttack)
0x016 }
0x016 Else
0x016 {
0x019 }
0x019 Else
0x019 {
0x01C If (Random MOD 4 == 1)
0x01C {
0x021 If ( (AllOpponentMask.Status:Darkness == 0) )
0x021 {
0x02E TargetMask <- RandomBit( (AllOpponentMask.Status:Darkness == 0) )
0x03D Perform("Tear Gas"[0119], EnemyAttack)
0x043 }
0x043 Else
0x043 {
0x046 TargetMask <- RandomBit(AllOpponentMask)
0x04E Perform("W-Suppressor"[0118], EnemyAttack)
0x054 }
0x054 Else
0x054 {
0x057 }
0x057 Else
0x057 {
0x05A TargetMask <- RandomBit(AllOpponentMask)
0x062 Perform("W-Suppressor"[0118], EnemyAttack)
0x068 }
0x068 Else
0x068 {
0x06BPOP(Random MOD 4)
0x06CSCRIPT END

'Harpy'/Mono-Drive AI
Code: [Select]
0x000TargetMask <- RandomBit(AllyMask)
0x008 If (Not  (Random MOD 4) )
0x008 {
0x010 Perform("Heal"[026A], EnemyAttack)
0x016 }
0x016 Else
0x016 {
0x019 Perform("System Upgrade"[0013], EnemyAttack)
0x01ESCRIPT END

NFITC1

  • No life
  • *
  • Posts: 2910
  • Karma: 73
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Strange Dual-Animation Glitch
« Reply #1 on: 2014-01-15 18:56:00 »
Here's PC's animation scripts:

Code: [Select]
0:
00 FE C0
1:
C7(0001, 01) 01 F6 E5 EE
2:
C7(0001, 02) E5 EE
3:
C7(0001, 03) 02 03 04 F7(03) 05 E5 EE
4:
E8 C7(0001, 04) EA 06 07 08 EC 09 E5 EE
5:
E8 C7(0001, 05) EA 0A 0B 0C EC 0D E5 EE
6:
E8 C7(0001, 06) EA 0A 0B 0C EC 0D E5 EE
7:
C7(0001, 07) 0E 0F AD(0E, 044C, 05, 0A) AD(0D, 044C, 05, 0A) D8(05, 0010) F7(0C) 10 11 E5 EE
8:
E8 C7(0001, 08) FC EA 12 13 14 EC 15 E5 EE
9:
C7(0001, 09) 16 EE
10:
18 FE C0
11:
C7(0001, 0B) 19 F6 E5 EE
12:
E8 C7(0001, 0C) EA 1A 1B 1C EC 1D E5 EE
13:
C7(0001, 0D) 1E EE
14:
C7(0001, 0E) 1F EE
19:
C7(0001, 13) C3 F4(0F) F3 B8 EE

Note that the majority of these start with C7(0001, XX) as the first or second command. This code tells the animation engine to make the actor in enemy slot 1 (or one slot ahead of it, I'm not sure) perform animation XX. That's how it communicates with Jamar Armor to make it move along with PC. So when one of the PCs is moving, it's essentially telling the next one to perform its animation too (it looks like you have more than two PCs in that video). If Harpy is farther down the formation list there, it will try to make Harpy perform some of these animations too. However:
Code: [Select]
0:
A9 C9 00 C1
1:
01 F6 E5 EE
2:
E5 EE
3:
BE(21) BE(26) C2(26) FC 02 D1(04B0, 0000, 08) F0 03 04 FA F0 05 E5 EE
4:
E8 B6(00) AA FC EA 06 C9 07 CA 08 EC 09 E5 EE
5:
E8 B6(00) AA FC EA 0A C9 0B CA 0C EC 0D E5 EE
6:
E8 B6(00) AA FC EA 0E C9 0F CA 10 EC 11 E5 EE

Harpy's only got 7 animations. Trying to execute animation 8 or higher will likely cause an error. I'm not sure how the game handles this, but that's your explanation of what's going on.

Sega Chief

  • No life
  • *
  • Posts: 3282
  • Karma: 188
  • These guys is sick
    • View Profile
Re: Strange Dual-Animation Glitch
« Reply #2 on: 2014-01-15 22:27:57 »
Yeah, the Harpy was in a slot ahead of the Clods; it was in slot 2 while the Clods were in slot 0 (another enemy was in slot 1 but unused for that formation). Many thanks for that info, it'll come in handy. I'm going to see if an invisible mini-Clod can synch up with an enemy and start mixing animations ♪