Skip to content

Fade out/in SFX bus during scene transitions #1929

@wjt

Description

@wjt

Currently we never adjust the SFX audio bus volume automatically, only under the user's manual control.

Unlike music (#637) I think it would actually be correct to fade SFX out and in along with the visual fade. For an example, go to Fray's End and start the musician's quest. I think it sounds bad that the ambient water/tree/white noise immediately plays at full volume; and that it cuts abruptly when you collect the thread and move to the ink combat scenes.

The simple option would be do this in transitions.gd, with e.g.

func _set_sfx_volume(volume_linear: float) -> void:
    AudioServer.set_bus_volume_linear(AudioServer.get_bus_index(&"SFX"), volume_linear)

# ...
var current_volume := AudioServer.get_bus_volume_linear(AudioServer.get_bus_index(&"SFX"))
tween_method(_set_sfx_volume, current_volume, 0.0)
# ...
tween_method(_set_sfx_volume, 0.0, current_volume)

This would need to be a parallel call on the same tweens.

Annoyingly Callable.bind binds from the right, not left, so can't be used.

XP Summary (total 300)

Subdomain Skill XP
Engineering: Gameplay & Systems Programming Problem Solving 75
Engineering: Gameplay & Systems Programming Creativity & Design Thinking 75
Engineering: Gameplay & Systems Programming Technical Literacy 150

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions