elishacloud / Silent-Hill-2-Enhancements

A project designed to enhance Silent Hill 2 (SH2) graphics and audio for the PC. It also includes scripts to build or modify SH2 audio files (SFX, BGM and Dialog).
http://www.enhanced.townofsilenthill.com/SH2/
zlib License
588 stars 41 forks source link

Spawn James in Closet After Cutscene End #485

Closed Polymega closed 2 years ago

Polymega commented 2 years ago

Problem

I make it a point to watch people stream our project, especially if it's their first time playing the game, and it's alarming how many people miss the key in the apartment closet when hiding from Pyramid Head.

This Twitch clip sums it up well: https://clips.twitch.tv/EnergeticHyperFrogOSsloth-9WU7kVnrUP4aqbFH

Despite that I've brightened this key's ambient color to help make it more noticeable during the cutscene (short of making it glow like it's radioactive), if a player doesn't notice the key during the cutscene they're incredibly likely to miss it. This then leads to frustration and them Googling what they're missing after wasting a lot of time being stuck.

This is a consistent issue on any version of the game and we want to mitigate this frustration to help overall player experience. Finding this key isn't meant to be a puzzle/riddle, hence the unsatisfied frustration once a player succumbs to Googling where to find it.


Solution

We want to change James' spawn point after the cutscene ends, to have him be inside the closet, more-or-less where he stood at the end of the cutscene. The key will be in frame, and James will already be looking at it.

This requires the use of three new addresses:

On game launch set:

Upon cutscene 0x0E end:

; Places James inside the apartment closet after the cutscene ends, to help guide the player's attention to the key inside. (0|1)
ChangeClosetSpawn = 1

Thank you to @AeroWidescreen for their time, research, and solution for this issue.

Screenshot-2022-01-21-15-21-57

ForgotMyPassoword commented 2 years ago

@Polymega I didn't want to create a new issue for this because it's really simple, but I would like to bring to your attention something I caught while watching a streamer play the modded game that could be changed to improve the presentation of the project. If the player has a weapon equipped before a cutscene starts, the weapon will vanish from James' hands during the sequence and be brought back when it finishes. Normally this isn't a problem, but in room 312 when the tape cutscene ends James goes from his standing stance to a holding weapon pose, which is really jarring when the hunting rifle or shotgun was equipped before the cutscene started and can slightly break the immersion in the most important part of the game. Since there are no enemies in room 312, this wouldn't put players at a disadvantage either, only requiring them to equip what they had again when leaving. Here is an example of what I'm talking about. Maybe when this cutscene is triggered it could James to unequip his weapon.

Polymega commented 2 years ago

Thanks for the suggestion here, @ForgotMyPassoword. I can't promise when we'll look into it, but I'll make a note of it.

Polymega commented 2 years ago

I should mention for this feature: CameraFOV 01F80FC0 float can be very useful as a global, catch-all address for other things. I don't know/anticipate us using it for any other features, but just in case, I'd recommend adding this address to Common.cpp.

elishacloud commented 2 years ago

This update should be added now.

Testing build: d3d8.zip

Polymega commented 2 years ago

Tested and confirmed working on all binaries. Thanks to your's and Aero_'s work here, we have now alleviated a frustrating and persistent pain-point in the game. My hat's off to you both.