sfall-team / sfall

sfall - Engine modifications for Fallout 2
https://sfall-team.github.io/sfall/
GNU General Public License v3.0
346 stars 40 forks source link

Death animation issues persist #323

Closed blackpaulillyria closed 4 years ago

blackpaulillyria commented 4 years ago

I'll have to reopen this ( was #310 ) as there are still issues in the latest release. Female animations still don't work correctly and it seems those for male do but they always use default ones even when I have custom BH and BN animations. Problem could be present in BK too but I dunno how to test that.

NovaRain commented 4 years ago

Weird, in my game (RP 2.3.3) at least it can play default fire/electrical death animations for female player in blond/red haired appearance.

EDIT: from critter.dat there's only one BH/BN variant for the player under HMJMPS##, so it looks like the game was never meant to have separate fire/electrical death animations for female player.

blackpaulillyria commented 4 years ago

When I wrote custom, I meant that I edited BH and BN animations and they're being ignored regardless of gender.

And for female animations not firing, I'm not using RP, just vanilla Fallout 2 1.02d with HAM enabled in the latest sfall. Tried them all and all have the issue. I even tried copying over working male animations and renaming them and they're not playing.

I'm doing this test using critter_dmg

NovaRain commented 4 years ago

I'm also doing the test with critter_dmg. Getting killed by enemies or scripts doesn't matter here.

If you want to use your custom BH/BN frames for the player, you need to name them hmjmpsbh.fr0~fr5(split frames for each direction) and hmjmpsbn.frm and put them in Data\art\critters\, not the appearance folders. I tested using the _hfjmpsbn.frm from RP's blond/red haired appearance (because it's different from vanilla) and it worked.

Basically you can only have one set of BH/BN anims for the player, regardless the gender or armor appearance. And this has nothing to do with HAM. You can try disabling HAM and putting your hfjmpsbn.frm in Data\art\critters, and it still won't be played in the game for female player.

blackpaulillyria commented 4 years ago

Thanks for the detailed explanation, that helps to better understand why the custom animations won't play.

However, regarding the female animation - it's definitively a sfall bug as I can replicate it in vanilla Fallout 2 installation from Steam. If I delete ddraw.ini and ddraw.dll the correct animation plays upon death, but if I leave them, the generic one with a pool of blood is played.

EDIT: I'll try to update sfall on Steam and see how it goes

NovaRain commented 4 years ago

I really have no idea about your problem with death animations for female player. I use critter_dmg(dude_obj, 10000, DMG_fire); and critter_dmg(dude_obj, 10000, DMG_electrical); with maximum violence setting, and all female appearance (default, blond, redhair, punk girl) can play "fire dance" and "electrified" death anims normally with sfall 4.2.6.

blackpaulillyria commented 4 years ago

Updating sfall to 4.2.6 on vanilla Steam Fallout 2 didn't resolve the issue with female deaths. I even got the default animation for plasma death now. I'm not sure what's going on honestly as I use the same settings as you.

Can you try testing it on Steam version too?

blackpaulillyria commented 4 years ago

P.S. I had to go offline to avoid Steam reverting the changes to sfall after I updated it. Maybe you're using a different exe than I do, but I presume it's US 1.02d?

NovaRain commented 4 years ago

Updating sfall to 4.2.6 on vanilla Steam Fallout 2 didn't resolve the issue with female deaths. I even got the default animation for plasma death now. I'm not sure what's going on honestly as I use the same settings as you.

Can you try testing it on Steam version too?

There's really nothing special with Steam/GOG version other than some game text/vaultboy frm censorship.

I just downloaded Steam version, extracted sfall 4.2.6 to the game folder, set EnableHeroAppearanceMod=1 in ddraw.ini, copied my test script (suicide with key press) to the game, started a new game with female player, and the "fire dance" and "electrified" death anims are played normally when I killed myself with critter_dmg.

Maybe you're using a different exe than I do, but I presume it's US 1.02d?

It's US 1.02d. sfall doesn't work with other exe unless you set debugging options. TBH this starts getting tiring.

blackpaulillyria commented 4 years ago

Sorry, I thought you were interested in debugging this. Have a nice day, I won't be bothering you again.

NovaRain commented 4 years ago

I'm interested in debugging stuff when the whole situation is clear and reproducible on different systems. You want me to test Steam version and I did with the steps in my previous comment, but the issue this time seems to only happen on your side. Plus you didn't give the steps of how you reproduce the issue in your game.

blackpaulillyria commented 4 years ago

OK, I have to reply to get the record clear..

The thing you're saying how the "whole situation is clear" sounds great but in real world you have situations where the bug cannot be easily reproduced everywhere. I've been a software engineer for 20 years now and I've seen thousands of bugs that could be reproduced only on the client's machine. Maybe it's my Bitdefender antivirus involved in this somehow?

The latest thing I found out is that the bug is occurring randomly on my machine. Sometimes the animation plays, sometimes it doesn't. I have no clue why is that but I'm getting there. If I give up and start giving off excuses how this is tiring, I'm ending up with a flawed product at the end of the day and that won't do. I'd rather throw everything out the window and revert to an ancient sfall than release a TC where animations don't play as they should.

I reproduced the bug in the Steam version by encountering the Enclave patrol and getting wasted. In my TC, I reproduced the bug by creating a spatial script and damaging the played with 500 fire/electricity damage.

Lexx2k commented 4 years ago

To me this sounds like the problem with fr0, etc. files that were still used by older Hero Appearance mod packages. You sure you have updated these files to their latest version?

blackpaulillyria commented 4 years ago

My HAM should be the latest one.

But I'm not sure it makes a difference as I can easily reproduce the bug in vanilla Fallout 2 with disabled sfall. The problem is that it's random. Sometimes it occurs, sometimes it doesn't.

FakelsHub commented 4 years ago

@blackpaulillyria Record a video demonstrate how this happens randomly.

blackpaulillyria commented 4 years ago

Here's a couple of videos of vanilla Fallout 2 Steam + sfall 4.2.6. Sorry about the black area, OBS would only capture a windowed Fallout 2. Sfall doesn't play a role, the bug is reproducible with or without it. Notice how the HP counter almost always stops at 000 when the wrong animation is played.

https://we.tl/t-8PxskYcS3O 0:18: Gauss doesn't cause big hole death 0:55 Plasma doesn't cause melting death 1:33: Electrical death occurs! A rare occasion when the animation plays correctly 2:06: Gauss doesn't cause big hole death 2:36: Electrical death doesn't occur

https://we.tl/t-TjPsHHDNy9 Longer video with loads of wrong death animations except at 1:50 and 3:20 when Gauss causes correct big hole death. There are also Gauss deaths here that play the wrong animation

https://we.tl/t-JYzZQ4j2eV Longer video with loads of wrong death animations except at 0:50 and 3:40 when Gatling laser causes correct slice death.

Lexx2k commented 4 years ago

That animation bug on 0hp exists since forever. Would have been more obvious if you had mentioned that detail. :>

blackpaulillyria commented 4 years ago

Except that I didn't know that until now so I couldn't have mentioned it earlier. But yeah, seems like something that wasn't playtested enough at Interplay.

FakelsHub commented 4 years ago

Everything seems normal.

Notice how the HP counter almost always stops at 000 when the wrong animation is played.

the only bug that I noticed is that there is no death animation in this case.

NovaRain commented 4 years ago

the only bug that I noticed is that there is no death animation in this case.

Looks like for some reason the procedure for setting up death anim got skipped.

Here's how I reproduce the issue (couldn't reproduce it with critter_dmg): I added five bounty hunters (attached ecbhuntr.int) with weapons of various damage types to artemple.map, wrote a CombatDamage hook script to force all damage on the player is 99 point so I can always get killed in one shot (for lv1 player), and another script with DeathAnim1, DeathAnim2, and OnDeath hooks to display related info.

I started the game, run to them and got killed, but the death anim failed to play, with the HP counter dropped to exact 0 instead of negative values it should be. DeathAnim hooks didn't get triggered (only OnDeath), and the message like "and were killed" didn't show up. But if I go into the temple and fight giant ants, or load some saves in town (tested Arroyo & SanFran) and provoke NPCs, I can get killed normally (with anim and msg, DeathAnim hooks triggered).

blackpaulillyria commented 4 years ago

Is the flag DMG_NOANIMATE set for some reason when the bug occurs?

FakelsHub commented 4 years ago

The video files have already been deleted? do not use here such shitty files exchangers.

FakelsHub commented 4 years ago

That animation bug on 0hp exists since forever.

But if I go into the temple and fight giant ants, or load some saves in town (tested Arroyo & SanFran) and provoke NPCs, I can get killed normally (with anim and msg, DeathAnim hooks triggered).

This bug is fix by enabling the AttackComplexFix option.

NovaRain commented 4 years ago

This bug is fix by enabling the AttackComplexFix option.

Is the issue fixed because the result flags setting is altered in the option? But since it also changes how some of arguments work, I'm not sure if it should be default on (if there's anyone uses attack_complex with custom arguments, not just the attack() default macro). Or maybe fix the function without repurposing unused arguments, for example just fix attacker_results & target_results? (I'm also not sure if anyone really uses the repurposed arguments in scripts.)

blackpaulillyria commented 4 years ago

The video files have already been deleted? do not use here such shitty files exchangers.

If still needed I can upload them again somewhere else.

FakelsHub commented 4 years ago

If still needed I can upload them again somewhere else.

See if there were moments in the video when the corresponding animation was not played in cases when HP was not set to 000

FakelsHub commented 4 years ago

But since it also changes how some of arguments work, I'm not sure if it should be default on (if there's anyone uses attack_complex with custom arguments, not just the attack() default macro).

These two arguments called_shot/num_attacks have never worked, I don't think anyone has ever used them. In addition, the last two arguments also worked specifically. If not for those flags it would be possible enable the fix by default.

Lexx2k commented 4 years ago

At least the regulator in Fo1 Adytum that attacks and kills Zimmerman is using custom arguments: attack_complex(JonPtr, 0, 1, 100, 250, 300, 0, 128);

This attack is supposed to only kill Zimmerman, but in one of my playthroughs he missed and hit me instead, which killed me instantly. Was kinda funny.

Just saying.

blackpaulillyria commented 4 years ago

If still needed I can upload them again somewhere else.

See if there were moments in the video when the corresponding animation was not played in cases when HP was not set to 000

Yes there is. On one occasion, the HP went below 000 into minus after being killed by a plasma pistol yet the animation that played was the fall on back with blood pool instead of melting one.

FakelsHub commented 4 years ago

This attack is supposed to only kill Zimmerman, but in one of my playthroughs he missed and hit me instead, which killed me instantly.

AttackComplexFix was enabled ?

Lexx2k commented 4 years ago

No, I never used it.

FakelsHub commented 4 years ago

No, I never used it.

You are probably mistaken, the player should not have been killed in any way, if the option is disabled.

NovaRain commented 4 years ago

No, I never used it.

You are probably mistaken, the player should not have been killed in any way, if the option is disabled.

I think the player is killed because the min damage is set to 100?

FakelsHub commented 4 years ago

Min damage is 250. This does not mean to kill instantly since the damage was done, the function uses the value 128 flag of death, killing regardless of the number of lives. But in the original f1/f2, this construction with flag would not work.

Lexx2k commented 4 years ago

¯\(ツ)/¯ Anyway, that wasn't why I mentioned it. Just wanted to point out that there is at least one situation where custom arguments are used for attack_complex().

FakelsHub commented 4 years ago

@blackpaulillyria

Yes there is. On one occasion, the HP went below 000 into minus after being killed by a plasma pistol yet the animation that played was the fall on back with blood pool instead of melting one.

I can't reproduce this bug. Please upload this video where there is this moment.

blackpaulillyria commented 4 years ago

@blackpaulillyria

Yes there is. On one occasion, the HP went below 000 into minus after being killed by a plasma pistol yet the animation that played was the fall on back with blood pool instead of melting one.

I can't reproduce this bug. Please upload this video where there is this moment.

Hi, here is the link. It happens at 0:55. https://drive.google.com/file/d/16uwBvsP0UMZyPXXT7LmoL0fKrtwOeiUj/view?usp=sharing

If needed I can upload the other two videos I posted earlier too.

FakelsHub commented 4 years ago

Hi, here is the link. It happens at 0:55.

Set the violence level to NORMAL.

blackpaulillyria commented 4 years ago

Hi, here is the link. It happens at 0:55.

Set the violence level to NORMAL.

Female death animations work if violence level is set to NORMAL?

EDIT: I just tried that and it didn't make a difference. I was killed with a Gauss pistol, the HPs went below 000 and the animation that played was falling back with blood pool instead of big hole.

FakelsHub commented 4 years ago

Strangely, ANIM_charred_body animation was not implemented for female characters. I wonder, all the female characters don't have this animation?

blackpaulillyria commented 4 years ago

Seems like female death animations are totally screwed up. I wonder how they missed this. Maybe it's working in 1.00 vanilla FO2? Or even in vanilla FO1?

I find it hard to believe that during the production of two games nobody noticed that.

FakelsHub commented 4 years ago

The fact is that the in engine does not specify that this animation should be taken from a male character, as it is done for other animations. Okay, so it's time for me to implement a fix/feature that I've been wanting for a long time.

NovaRain commented 4 years ago

Strangely, ANIM_charred_body animation was not implemented for female characters. I wonder, all the female characters don't have this animation?

From the jumpsuit set, female character doesn't have ANIM_charred_body, ANIM_electrify, ANIM_burned_to_nothing, ANIM_electrified_to_nothing, and the single frame version of them, also ANIM_fire_dance. Supposedly the game should take them from male since they look pretty much gender neutral.

EDIT: it seems some animations in death2 group don't work for both sex. I tried to kill the male player with plasma and electrical damage with normal violence level, he also just plays "fall on back" anim instead of charred body.

Okay, so it's time for me to implement a fix/feature that I've been wanting for a long time.

Searching any animation from male character when female doesn't have it?

FakelsHub commented 4 years ago

EDIT: it seems some animations in death2 group don't work for both sex. I tried to kill the male player with plasma and electrical damage with normal violence level, he also just plays "fall on back" anim instead of charred body.

I don't have any problems with animations for male

blackpaulillyria commented 4 years ago

EDIT: it seems some animations in death2 group don't work for both sex. I tried to kill the male player with plasma and electrical damage with normal violence level, he also just plays "fall on back" anim instead of charred body.

Wait, is you issue related to #310 ?

NovaRain commented 4 years ago

No. That was a problem on my side.

blackpaulillyria commented 4 years ago

I just tested it in FO1 and the same bug exists there too. Looks like this slipped everyone's attention at Interplay

NovaRain commented 4 years ago

Now ANIM_charred_body and ANIM_charred_body_sf are available for all armor appearances, just like electrify and fire_dance. Before the death anim can only be played when in the male vault suit appearance (HMJMPS).

blackpaulillyria commented 4 years ago

Great! At least one issue is resolved.

NovaRain commented 4 years ago

You can grab the current build for testing.

blackpaulillyria commented 4 years ago

Thanks, I'll definitively do that and report back!