Decane / SRP

Sky Reclamation Project for S.T.A.L.K.E.R.: Clear Sky
http://www.moddb.com/mods/srp
119 stars 20 forks source link

Restore Original Duty Voices in Bloodsucker Cutscene #163

Open forbiddenspiral opened 4 months ago

forbiddenspiral commented 4 months ago

Hi everyone,

I'm a Clear Sky player who values immersion and appreciates the bug fixes implemented in the patch. I noticed that in the Agroprom Cutscene with the bloodsucker fight, the Duty soldiers use Clear Sky voices. While I understand not all cut content may be restored, I wanted to suggest considering the original Duty voices for this encounter to enhance immersion.

While I don't have the modding expertise to tackle this myself, I wanted to bring this potential inconsistency to your attention. Restoring the original Duty voices for this encounter would further enhance the immersion and authenticity for many players, as it did with previously restored cut content.

Is this something the team might consider addressing in a future update? Any insights or updates on this aspect would be greatly appreciated.

Thanks for your time and continued efforts!

YouTube Video

https://github.com/Decane/SRP/assets/140277652/3a24b2d1-7ccd-4975-9d8e-9e59d2a59dd2

https://github.com/Decane/SRP/assets/140277652/d33dcf1f-ab06-4066-b7d5-c54560677fc2

Decane commented 4 months ago

Marsh creature squad reaction sounds get triggered from bloodsucker_reaction.script. Four sets of sounds are utilized. They are defined in script_sound.ltx:

The last three are played via the usual mechanism, xr_sound.set_sound_play. [commander_to_squad] isn't used by the game, so it's commented out in the SRP. Instead, the comander_tosquad* sounds are played by invoking the engine method, play_no_feedback, directly. At a glance, it's not obvious to me why; there's probably a good reason I'll discover when I get around to play-testing this.

Two approaches come to mind for utilizing the corresponding sounds from scenario\agroprom\ when appropriate:

Approach 1:

Copy the audio files from:

... and modify [squad_fear], [fear_fire], and [alife_bloodsucker] in script_sound.ltx e.g. as follows:

[squad_fear]
npc_prefix = true ; prepends e.g. 'human_01\csky\' to path depending on NPC's character profile
type = npc
avail_communities = csky, dolg
path = reactions\bloodsucker\squad_fear_ ; vanilla: scenario\marsh\bloodsucker\squad_fear_
shuffle = rnd
idle = 1,1

Note: With a bit of extra scripting, support could be added for selecting between an npc_prefix of:

... instead of only the 1st and 3rd options, as currently. That would enable copying the sounds only into the human_01 tree instead of having to duplicate them for all three of human_0{1,2,3}.

Down-sides:

Approach 2:

Define Agroprom-specific duplicates of [squad_fear], [fear_fire], and [alife_bloodsucker] in script_sound.ltx and tweak bloodsucker_reaction.script to select between them depending on whether the level is Agroprom or the Swamps - or, alternatively, depending on whether the squad is Clear Sky or Duty.

Down-sides:

forbiddenspiral commented 4 months ago

Hi Decane,

Thank you so much for taking the time to explain this in such detail! I really appreciate you going into the technical aspects of the issue and offering two potential solutions.

Both approaches seem well-considered, especially the second one. As someone who's still learning the ropes of modding, I understand that sometimes creative solutions are needed with older engines like X-Ray, and yours definitely fit that description!

I especially appreciate your breakdown of the pros and cons of each approach. While I initially envisioned a similar idea with conditional logic for the second one, it seems my solution lacked the nuance of the approaches you outlined.

I completely agree that Approach 1 raises concerns about localization and storage inefficiency. It's clear you've thought deeply about this, and I trust your judgment on the best way to tackle this issue, even if it involves some "hacky implementations" or "workarounds" as you mentioned because I've gone trough it too! After all, sometimes those creative solutions are what make modding so rewarding!

Thanks again for your time and effort.

forbiddenspiral commented 4 months ago

Oops! So sorry, I accidentally closed this issue when I meant to do something else. I'm super new to GitHub and still figuring things out. Please ignore the close and consider the issue still open!

And to reiterate my previous message, I appreciate the detailed explanation and the two proposed solutions!