mise en place de fade sonores pour les dialogues, suppression des oiseaux de l'ambiance de Demeter

This commit is contained in:
2026-02-22 12:57:21 +01:00
parent 9f65d5bbef
commit 46bf8087ae
5 changed files with 185 additions and 157 deletions

View File

@@ -2,7 +2,7 @@
importer="oggvorbisstr" importer="oggvorbisstr"
type="AudioStreamOggVorbis" type="AudioStreamOggVorbis"
uid="uid://dyv128cll6e15" uid="uid://6yx6txbgc6pt"
path="res://.godot/imported/ambiance_astra.ogg-c1e9bdfc0ebfa9518b0518ec57815251.oggvorbisstr" path="res://.godot/imported/ambiance_astra.ogg-c1e9bdfc0ebfa9518b0518ec57815251.oggvorbisstr"
[deps] [deps]

View File

@@ -2,7 +2,7 @@
importer="oggvorbisstr" importer="oggvorbisstr"
type="AudioStreamOggVorbis" type="AudioStreamOggVorbis"
uid="uid://ca8n3mvauex0w" uid="uid://c8gbtdul2x8ws"
path="res://.godot/imported/ambiance_borea.ogg-bdd873a3b02e98a2b30b14228d0c975e.oggvorbisstr" path="res://.godot/imported/ambiance_borea.ogg-bdd873a3b02e98a2b30b14228d0c975e.oggvorbisstr"
[deps] [deps]

View File

@@ -5,10 +5,10 @@
[ext_resource type="AudioStream" uid="uid://bm0tdi6bd2e65" path="res://common/audio_manager/assets/ambiance/niveau/ambiance_phase_2.ogg" id="3_7uv4r"] [ext_resource type="AudioStream" uid="uid://bm0tdi6bd2e65" path="res://common/audio_manager/assets/ambiance/niveau/ambiance_phase_2.ogg" id="3_7uv4r"]
[ext_resource type="AudioStream" uid="uid://b1hut6lc1jevh" path="res://common/audio_manager/assets/morceaux/niveau/mines_phase_2.ogg" id="4_2fduo"] [ext_resource type="AudioStream" uid="uid://b1hut6lc1jevh" path="res://common/audio_manager/assets/morceaux/niveau/mines_phase_2.ogg" id="4_2fduo"]
[ext_resource type="AudioStream" uid="uid://dftxjfdqgsbd3" path="res://common/audio_manager/assets/ambiance/niveau/ambiance_phase_3.ogg" id="4_tuvql"] [ext_resource type="AudioStream" uid="uid://dftxjfdqgsbd3" path="res://common/audio_manager/assets/ambiance/niveau/ambiance_phase_3.ogg" id="4_tuvql"]
[ext_resource type="AudioStream" uid="uid://dyv128cll6e15" path="res://common/audio_manager/assets/ambiance/astra/ambiance_astra.ogg" id="5_8204s"] [ext_resource type="AudioStream" uid="uid://6yx6txbgc6pt" path="res://common/audio_manager/assets/ambiance/astra/ambiance_astra.ogg" id="5_8204s"]
[ext_resource type="AudioStream" uid="uid://dcbuhtc085q2x" path="res://common/audio_manager/assets/morceaux/niveau/mines_phase_1.ogg" id="5_ajci6"] [ext_resource type="AudioStream" uid="uid://dcbuhtc085q2x" path="res://common/audio_manager/assets/morceaux/niveau/mines_phase_1.ogg" id="5_ajci6"]
[ext_resource type="AudioStream" uid="uid://cwu71o0sl2vto" path="res://common/audio_manager/assets/ambiance/dialogues/ambiance_Demeter.ogg" id="6_8204s"] [ext_resource type="AudioStream" uid="uid://cwu71o0sl2vto" path="res://common/audio_manager/assets/ambiance/dialogues/ambiance_Demeter.ogg" id="6_8204s"]
[ext_resource type="AudioStream" uid="uid://ca8n3mvauex0w" path="res://common/audio_manager/assets/ambiance/borea/ambiance_borea.ogg" id="7_spekb"] [ext_resource type="AudioStream" uid="uid://c8gbtdul2x8ws" path="res://common/audio_manager/assets/ambiance/borea/ambiance_borea.ogg" id="7_spekb"]
[ext_resource type="AudioStream" uid="uid://bpf6witukorka" path="res://common/audio_manager/assets/morceaux/menu/main_menu.ogg" id="7_tuvql"] [ext_resource type="AudioStream" uid="uid://bpf6witukorka" path="res://common/audio_manager/assets/morceaux/menu/main_menu.ogg" id="7_tuvql"]
[ext_resource type="AudioStream" uid="uid://bmwaw1yb8hucf" path="res://common/audio_manager/assets/ambiance/vaisseau/ship_music.ogg" id="8_tuvql"] [ext_resource type="AudioStream" uid="uid://bmwaw1yb8hucf" path="res://common/audio_manager/assets/ambiance/vaisseau/ship_music.ogg" id="8_tuvql"]
[ext_resource type="AudioStream" uid="uid://dsphn6dbbd55a" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_1.ogg" id="9_am7i4"] [ext_resource type="AudioStream" uid="uid://dsphn6dbbd55a" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_1.ogg" id="9_am7i4"]

View File

@@ -11,6 +11,8 @@ var music_action : AudioAction
var ambiance_action : AudioAction var ambiance_action : AudioAction
var playing_music : AudioStreamPlayer = null var playing_music : AudioStreamPlayer = null
var playing_ambiance : AudioStreamPlayer = null var playing_ambiance : AudioStreamPlayer = null
var is_in_timeline := false
var timeline_ambiance : AudioStreamPlayer = null
var default_volumes := {} var default_volumes := {}
@@ -74,6 +76,8 @@ func process_audio_launch(
return player return player
func _on_change_scene(scene : Scene): func _on_change_scene(scene : Scene):
if not is_in_timeline:
stop_ambiance() stop_ambiance()
match scene.scene_id: match scene.scene_id:
@@ -98,21 +102,30 @@ func _on_change_scene(scene : Scene):
func _on_timeline_started(): func _on_timeline_started():
var timeline_name = Dialogic.current_timeline.resource_path.split("/")[-1].trim_suffix(".dtl") var timeline_name = Dialogic.current_timeline.resource_path.split("/")[-1].trim_suffix(".dtl")
stop_ambiance()
match timeline_name: if timeline_name in [
"demeter_astra_failed": "demeter_astra_failed",
play_ambiance("Demeter") "demeter_ship_presentation",
"demeter_ship_presentation": "demeter_intro",
play_ambiance("Demeter") "demeter_post_tutorial",
"demeter_intro": "demeter_outro"
play_ambiance("Demeter") ]:
"demeter_post_tutorial": start_timeline_ambiance("Demeter")
play_ambiance("Demeter")
"demeter_outro":
play_ambiance("Demeter")
func _on_timeline_ended(): func _on_timeline_ended():
# Stop ambiance timeline proprement
if timeline_ambiance:
await set_volume(timeline_ambiance, MIN_VOLUME, 0.5).finished
timeline_ambiance.stop()
timeline_ambiance = null
# Restore ambiance principale si elle existe
if playing_ambiance and playing_ambiance.playing:
set_volume(playing_ambiance, get_volume(playing_ambiance), 0.5)
is_in_timeline = false
if SceneManager.actual_scene: if SceneManager.actual_scene:
_on_change_scene(SceneManager.actual_scene) _on_change_scene(SceneManager.actual_scene)
@@ -205,6 +218,21 @@ func play_sfx(sfx_name : String):
else: else:
printerr("Sfx %s not found" % sfx_name) printerr("Sfx %s not found" % sfx_name)
func start_timeline_ambiance(player_name: String):
var player := %Ambiance.find_child(player_name) as AudioStreamPlayer
if not player:
printerr("Timeline ambiance %s not found" % player_name)
return
if playing_ambiance and playing_ambiance.playing:
set_volume(playing_ambiance, -20.0, 0.5)
timeline_ambiance = player
timeline_ambiance.volume_db = MIN_VOLUME
timeline_ambiance.play()
set_volume(timeline_ambiance, get_volume(timeline_ambiance), 0.5)
class AudioAction: class AudioAction:
pass pass