diff --git a/asset/audio/sfx/交互/sfx_关闭设置.wav b/asset/audio/sfx/交互/sfx_关闭设置.wav new file mode 100644 index 00000000..f51222f4 Binary files /dev/null and b/asset/audio/sfx/交互/sfx_关闭设置.wav differ diff --git a/asset/audio/sfx/交互/sfx_关闭设置.wav.import b/asset/audio/sfx/交互/sfx_关闭设置.wav.import new file mode 100644 index 00000000..589eeb32 --- /dev/null +++ b/asset/audio/sfx/交互/sfx_关闭设置.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cmi6fd68s1ukb" +path="res://.godot/imported/sfx_关闭设置.wav-daf18d6b41e6c9aae5284e1acf71ec6e.sample" + +[deps] + +source_file="res://asset/audio/sfx/交互/sfx_关闭设置.wav" +dest_files=["res://.godot/imported/sfx_关闭设置.wav-daf18d6b41e6c9aae5284e1acf71ec6e.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/audio/sfx/交互/sfx_打开设置.wav b/asset/audio/sfx/交互/sfx_打开设置.wav new file mode 100644 index 00000000..919380ad Binary files /dev/null and b/asset/audio/sfx/交互/sfx_打开设置.wav differ diff --git a/asset/audio/sfx/交互/sfx_打开设置.wav.import b/asset/audio/sfx/交互/sfx_打开设置.wav.import new file mode 100644 index 00000000..a172637c --- /dev/null +++ b/asset/audio/sfx/交互/sfx_打开设置.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dlt4nv6qjhlpy" +path="res://.godot/imported/sfx_打开设置.wav-739f5ac6ea5404f925e6f8293fb4a6f2.sample" + +[deps] + +source_file="res://asset/audio/sfx/交互/sfx_打开设置.wav" +dest_files=["res://.godot/imported/sfx_打开设置.wav-739f5ac6ea5404f925e6f8293fb4a6f2.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/audio/sfx/交互/sfx_检阅道具.wav b/asset/audio/sfx/交互/sfx_检阅道具.wav new file mode 100644 index 00000000..cbcc9644 Binary files /dev/null and b/asset/audio/sfx/交互/sfx_检阅道具.wav differ diff --git a/asset/audio/sfx/交互/sfx_检阅道具.wav.import b/asset/audio/sfx/交互/sfx_检阅道具.wav.import new file mode 100644 index 00000000..5a2d6016 --- /dev/null +++ b/asset/audio/sfx/交互/sfx_检阅道具.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://c57eu0dnr821k" +path="res://.godot/imported/sfx_检阅道具.wav-7d4b83f5fd66b45373254fc1fcb22907.sample" + +[deps] + +source_file="res://asset/audio/sfx/交互/sfx_检阅道具.wav" +dest_files=["res://.godot/imported/sfx_检阅道具.wav-7d4b83f5fd66b45373254fc1fcb22907.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/audio/sfx/交互/sfx_煤油灯点燃成功.wav b/asset/audio/sfx/交互/sfx_煤油灯点燃成功.wav new file mode 100644 index 00000000..3367b517 Binary files /dev/null and b/asset/audio/sfx/交互/sfx_煤油灯点燃成功.wav differ diff --git a/asset/audio/sfx/交互/sfx_煤油灯点燃成功.wav.import b/asset/audio/sfx/交互/sfx_煤油灯点燃成功.wav.import new file mode 100644 index 00000000..1c60204d --- /dev/null +++ b/asset/audio/sfx/交互/sfx_煤油灯点燃成功.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cljr4g0sivpdh" +path="res://.godot/imported/sfx_煤油灯点燃成功.wav-5ec82c68c35713786ea2a3d4a746b42e.sample" + +[deps] + +source_file="res://asset/audio/sfx/交互/sfx_煤油灯点燃成功.wav" +dest_files=["res://.godot/imported/sfx_煤油灯点燃成功.wav-5ec82c68c35713786ea2a3d4a746b42e.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/audio/sfx/交互/第一章/sfx_坍塌.wav b/asset/audio/sfx/交互/第一章/sfx_坍塌.wav new file mode 100644 index 00000000..2857c341 Binary files /dev/null and b/asset/audio/sfx/交互/第一章/sfx_坍塌.wav differ diff --git a/asset/audio/sfx/交互/第一章/sfx_坍塌.wav.import b/asset/audio/sfx/交互/第一章/sfx_坍塌.wav.import new file mode 100644 index 00000000..927f13e7 --- /dev/null +++ b/asset/audio/sfx/交互/第一章/sfx_坍塌.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://d0w4nxwj126pf" +path="res://.godot/imported/sfx_坍塌.wav-935812c1204d7020b52e369b3edcb036.sample" + +[deps] + +source_file="res://asset/audio/sfx/交互/第一章/sfx_坍塌.wav" +dest_files=["res://.godot/imported/sfx_坍塌.wav-935812c1204d7020b52e369b3edcb036.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/audio/sfx/交互/第一章/sfx_手交互成功.wav b/asset/audio/sfx/交互/第一章/sfx_手交互成功.wav new file mode 100644 index 00000000..e7fecaec Binary files /dev/null and b/asset/audio/sfx/交互/第一章/sfx_手交互成功.wav differ diff --git a/asset/audio/sfx/交互/第一章/sfx_手交互成功.wav.import b/asset/audio/sfx/交互/第一章/sfx_手交互成功.wav.import new file mode 100644 index 00000000..f8bbcc40 --- /dev/null +++ b/asset/audio/sfx/交互/第一章/sfx_手交互成功.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://44slgncnt6sj" +path="res://.godot/imported/sfx_手交互成功.wav-4d532f5089b62707f0d65285531d74f7.sample" + +[deps] + +source_file="res://asset/audio/sfx/交互/第一章/sfx_手交互成功.wav" +dest_files=["res://.godot/imported/sfx_手交互成功.wav-4d532f5089b62707f0d65285531d74f7.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/audio/sfx/交互/第一章/sfx_折纸.wav b/asset/audio/sfx/交互/第一章/sfx_折纸.wav new file mode 100644 index 00000000..3b6451e7 Binary files /dev/null and b/asset/audio/sfx/交互/第一章/sfx_折纸.wav differ diff --git a/asset/audio/sfx/交互/第一章/sfx_折纸.wav.import b/asset/audio/sfx/交互/第一章/sfx_折纸.wav.import new file mode 100644 index 00000000..de62e9f2 --- /dev/null +++ b/asset/audio/sfx/交互/第一章/sfx_折纸.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bomvnle4oh1ol" +path="res://.godot/imported/sfx_折纸.wav-149b4d9a386e4f2b35ba9f0b10ab601b.sample" + +[deps] + +source_file="res://asset/audio/sfx/交互/第一章/sfx_折纸.wav" +dest_files=["res://.godot/imported/sfx_折纸.wav-149b4d9a386e4f2b35ba9f0b10ab601b.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/audio/sfx/交互/第一章/sfx_敲门1.wav b/asset/audio/sfx/交互/第一章/sfx_敲门1.wav new file mode 100644 index 00000000..f96a9fc7 Binary files /dev/null and b/asset/audio/sfx/交互/第一章/sfx_敲门1.wav differ diff --git a/asset/audio/sfx/交互/第一章/sfx_敲门1.wav.import b/asset/audio/sfx/交互/第一章/sfx_敲门1.wav.import new file mode 100644 index 00000000..3ccf4c89 --- /dev/null +++ b/asset/audio/sfx/交互/第一章/sfx_敲门1.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://7of24bqow07e" +path="res://.godot/imported/sfx_敲门1.wav-1c8265fc5da1dd78fdf657a9fa511d7b.sample" + +[deps] + +source_file="res://asset/audio/sfx/交互/第一章/sfx_敲门1.wav" +dest_files=["res://.godot/imported/sfx_敲门1.wav-1c8265fc5da1dd78fdf657a9fa511d7b.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/audio/sfx/交互/第一章/sfx_敲门2.wav b/asset/audio/sfx/交互/第一章/sfx_敲门2.wav new file mode 100644 index 00000000..b31057f9 Binary files /dev/null and b/asset/audio/sfx/交互/第一章/sfx_敲门2.wav differ diff --git a/asset/audio/sfx/交互/第一章/sfx_敲门2.wav.import b/asset/audio/sfx/交互/第一章/sfx_敲门2.wav.import new file mode 100644 index 00000000..c8d1c5f5 --- /dev/null +++ b/asset/audio/sfx/交互/第一章/sfx_敲门2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dw8dprxhvas85" +path="res://.godot/imported/sfx_敲门2.wav-f372a18cad0983ad8369afcad6836870.sample" + +[deps] + +source_file="res://asset/audio/sfx/交互/第一章/sfx_敲门2.wav" +dest_files=["res://.godot/imported/sfx_敲门2.wav-f372a18cad0983ad8369afcad6836870.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/audio/sfx/交互/第一章/sfx_肉落下.wav b/asset/audio/sfx/交互/第一章/sfx_肉落下.wav new file mode 100644 index 00000000..21588df3 Binary files /dev/null and b/asset/audio/sfx/交互/第一章/sfx_肉落下.wav differ diff --git a/asset/audio/sfx/交互/第一章/sfx_肉落下.wav.import b/asset/audio/sfx/交互/第一章/sfx_肉落下.wav.import new file mode 100644 index 00000000..41daa722 --- /dev/null +++ b/asset/audio/sfx/交互/第一章/sfx_肉落下.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://b1kaqn1ewg2ly" +path="res://.godot/imported/sfx_肉落下.wav-2aa043e67d8246ba6216a36daaeb060d.sample" + +[deps] + +source_file="res://asset/audio/sfx/交互/第一章/sfx_肉落下.wav" +dest_files=["res://.godot/imported/sfx_肉落下.wav-2aa043e67d8246ba6216a36daaeb060d.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/audio/sfx/交互/第一章/sfx_闷雷声.wav b/asset/audio/sfx/交互/第一章/sfx_闷雷声.wav new file mode 100644 index 00000000..75808bd9 Binary files /dev/null and b/asset/audio/sfx/交互/第一章/sfx_闷雷声.wav differ diff --git a/asset/audio/sfx/交互/第一章/sfx_闷雷声.wav.import b/asset/audio/sfx/交互/第一章/sfx_闷雷声.wav.import new file mode 100644 index 00000000..76c06376 --- /dev/null +++ b/asset/audio/sfx/交互/第一章/sfx_闷雷声.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://civuwccn6v6yk" +path="res://.godot/imported/sfx_闷雷声.wav-8eaf27fcd5a94020964c338fc0c3a391.sample" + +[deps] + +source_file="res://asset/audio/sfx/交互/第一章/sfx_闷雷声.wav" +dest_files=["res://.godot/imported/sfx_闷雷声.wav-8eaf27fcd5a94020964c338fc0c3a391.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/audio/sfx/脚步/猫咪走路1.wav b/asset/audio/sfx/脚步/猫咪走路1.wav new file mode 100644 index 00000000..506a7b6d Binary files /dev/null and b/asset/audio/sfx/脚步/猫咪走路1.wav differ diff --git a/asset/audio/sfx/脚步/猫咪走路1.wav.import b/asset/audio/sfx/脚步/猫咪走路1.wav.import new file mode 100644 index 00000000..2f7e1e3b --- /dev/null +++ b/asset/audio/sfx/脚步/猫咪走路1.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://3lgyj2wweska" +path="res://.godot/imported/猫咪走路1.wav-feb5141e944f1844e09a0f2e9b9e0b59.sample" + +[deps] + +source_file="res://asset/audio/sfx/脚步/猫咪走路1.wav" +dest_files=["res://.godot/imported/猫咪走路1.wav-feb5141e944f1844e09a0f2e9b9e0b59.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/audio/sfx/脚步/猫咪走路2.wav b/asset/audio/sfx/脚步/猫咪走路2.wav new file mode 100644 index 00000000..49296bdb Binary files /dev/null and b/asset/audio/sfx/脚步/猫咪走路2.wav differ diff --git a/asset/audio/sfx/脚步/猫咪走路2.wav.import b/asset/audio/sfx/脚步/猫咪走路2.wav.import new file mode 100644 index 00000000..975aa770 --- /dev/null +++ b/asset/audio/sfx/脚步/猫咪走路2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dd2whbtg7ah8a" +path="res://.godot/imported/猫咪走路2.wav-d5be14a9881c2656a5f0832dee1c777c.sample" + +[deps] + +source_file="res://asset/audio/sfx/脚步/猫咪走路2.wav" +dest_files=["res://.godot/imported/猫咪走路2.wav-d5be14a9881c2656a5f0832dee1c777c.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/asset/audio/sfx/脚步/猫咪走路3.wav b/asset/audio/sfx/脚步/猫咪走路3.wav new file mode 100644 index 00000000..d21902bd Binary files /dev/null and b/asset/audio/sfx/脚步/猫咪走路3.wav differ diff --git a/asset/audio/sfx/脚步/猫咪走路3.wav.import b/asset/audio/sfx/脚步/猫咪走路3.wav.import new file mode 100644 index 00000000..16d0fc3a --- /dev/null +++ b/asset/audio/sfx/脚步/猫咪走路3.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cf5wdijp6o8oo" +path="res://.godot/imported/猫咪走路3.wav-a25b4b95825eb1c9dcb1d7ab53af8d0f.sample" + +[deps] + +source_file="res://asset/audio/sfx/脚步/猫咪走路3.wav" +dest_files=["res://.godot/imported/猫咪走路3.wav-a25b4b95825eb1c9dcb1d7ab53af8d0f.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/config/animation/entity_sprite_frames.tres b/config/animation/entity_sprite_frames.tres index 657eeaba..84c5a2ca 100644 --- a/config/animation/entity_sprite_frames.tres +++ b/config/animation/entity_sprite_frames.tres @@ -3445,7 +3445,7 @@ animations = [{ }], "loop": true, "name": &"c02_盒子猫_running_r", -"speed": 7.0 +"speed": 9.0 }, { "frames": [{ "duration": 1.0, @@ -3471,7 +3471,7 @@ animations = [{ }], "loop": true, "name": &"c02_盒子猫_walking_r", -"speed": 5.0 +"speed": 6.0 }, { "frames": [{ "duration": 1.0, diff --git a/config/audio/sfx/footstep_meow.tres b/config/audio/sfx/footstep_meow.tres new file mode 100644 index 00000000..3e659ec0 --- /dev/null +++ b/config/audio/sfx/footstep_meow.tres @@ -0,0 +1,11 @@ +[gd_resource type="Resource" script_class="AudioStreamCollection" load_steps=5 format=3 uid="uid://cdf22t7bg2edp"] + +[ext_resource type="AudioStream" uid="uid://3lgyj2wweska" path="res://asset/audio/sfx/脚步/猫咪走路1.wav" id="1_2gs13"] +[ext_resource type="Script" uid="uid://bgxi2pq6x5d88" path="res://config/audio/audio_stream_collection.gd" id="1_xb1uk"] +[ext_resource type="AudioStream" uid="uid://dd2whbtg7ah8a" path="res://asset/audio/sfx/脚步/猫咪走路2.wav" id="2_rf711"] +[ext_resource type="AudioStream" uid="uid://cf5wdijp6o8oo" path="res://asset/audio/sfx/脚步/猫咪走路3.wav" id="3_xgf5m"] + +[resource] +script = ExtResource("1_xb1uk") +audios = Array[AudioStream]([ExtResource("1_2gs13"), ExtResource("2_rf711"), ExtResource("3_xgf5m")]) +metadata/_custom_type_script = "uid://bgxi2pq6x5d88" diff --git a/manager/audio_manager/audio_manager.gd b/manager/audio_manager/audio_manager.gd index b5067fc2..ed19172f 100644 --- a/manager/audio_manager/audio_manager.gd +++ b/manager/audio_manager/audio_manager.gd @@ -1,8 +1,11 @@ extends Node +# random players var sfx_players = [] as Array[AudioStreamPlayer] var idx = 0 +# bgm player var bgm_dict = {} +# vibe player func _ready() -> void: @@ -12,6 +15,18 @@ func _ready() -> void: sfx_player.bus = "game_sfx" add_child(sfx_player) + # 初始化基础播放器 + _base_player = AudioStreamPlayer.new() + _base_player.name = "BaseAmbiencePlayer" + add_child(_base_player) + + # 初始化点缀音播放器池 + for i in range(_EMBELLISHMENT_PLAYER_POOL_SIZE): + var player = AudioStreamPlayer.new() + player.name = "EmbellishmentPlayer_" + str(i) + add_child(player) + _embellishment_players.append(player) + func play_sfx(sfx: AudioStream, db := 1.0) -> void: sfx_players[idx].stream = sfx @@ -41,7 +56,7 @@ func loop_bgm_music(music_name: StringName, stream: AudioStream, db := 0.0, loop audio_player.finished.connect(audio_player.play) -func stop_bgm_music(music_name: StringName, ease_duration:= 3.0) -> void: +func stop_bgm_music(music_name: StringName, ease_duration := 3.0) -> void: var audio_player = bgm_dict.get(music_name) as AudioStreamPlayer if audio_player: if ease_duration <= 0: @@ -54,3 +69,98 @@ func stop_bgm_music(music_name: StringName, ease_duration:= 3.0) -> void: bgm_dict.erase(music_name) else: print("music bgm not found: ", music_name) + + +#### vibe management +## 负责实际创建 AudioStreamPlayer 节点并播放、管理 VibeGroup。 + +# 当前正在播放的音轨组资源 +var current_vibe_group: VibeGroup = null + +# 用于播放基础环境音的播放器 +var _base_player: AudioStreamPlayer +# 用于播放点缀音的播放器池。使用池可以处理多个点缀音同时播放的情况。 +var _embellishment_players: Array[AudioStreamPlayer] = [] +# 用于管理点缀音播放间隔的计时器 +var _embellishment_timers: Array[Timer] = [] + +const _EMBELLISHMENT_PLAYER_POOL_SIZE = 8 # 点缀音播放器池的大小,可根据需求调整 + + +## 核心方法:播放一个指定的 VibeGroup +func play_group(group: VibeGroup): + if not is_instance_valid(group): + printerr("VibeManager: VibeGroup is not valid.") + stop_all() + return + + # 如果请求播放的是当前已在播放的组,则忽略 + if group == current_vibe_group: + return + + stop_all() + current_vibe_group = group + + # 播放基础环境音 + if is_instance_valid(current_vibe_group.base_sound): + _base_player.stream = current_vibe_group.base_sound + # TODO 设置循环 + if _base_player.stream is AudioStreamOggVorbis: + (_base_player.stream as AudioStreamOggVorbis).loop = true + # 注意:WAV 默认导入设置中需要勾选 loop + _base_player.volume_db = current_vibe_group.group_db + current_vibe_group.base_sound_db + _base_player.play() + + # 设置并启动所有点缀音的计时器 + for embellishment in current_vibe_group.embellishments: + if not is_instance_valid(embellishment) or not is_instance_valid(embellishment.sound): + continue + + var timer = Timer.new() + timer.one_shot = true + # 使用 lambda 函数或 bind 将点缀音数据传递给超时处理函数 + timer.timeout.connect(_on_embellishment_timer_timeout.bind(embellishment, timer)) + add_child(timer) + _embellishment_timers.append(timer) + + # 首次启动计时器 + var random_wait_time = randf_range(embellishment.min_interval, embellishment.max_interval) + timer.start(random_wait_time) + + +## 停止所有当前播放的音效和计时器 +func stop_all(): + _base_player.stop() + + for player in _embellishment_players: + player.stop() + + for timer in _embellishment_timers: + timer.queue_free() + _embellishment_timers.clear() + + current_vibe_group = null + + +# 当某个点缀音的计时器到期时调用 +func _on_embellishment_timer_timeout(embellishment: Embellishment, timer: Timer): + # 寻找一个空闲的点缀音播放器 + var player = _get_available_embellishment_player() + if is_instance_valid(player): + player.stream = embellishment.sound + player.volume_db = current_vibe_group.group_db + embellishment.db + player.play() + + # 重新启动计时器,实现循环随机播放 + var random_wait_time = randf_range(embellishment.min_interval, embellishment.max_interval) + timer.start(random_wait_time) + + +# 从池中获取一个当前未在播放的播放器 +func _get_available_embellishment_player() -> AudioStreamPlayer: + for player in _embellishment_players: + if not player.playing: + return player + # 如果所有播放器都在忙,可以考虑返回null或者动态创建新的播放器(不推荐,可能导致节点泄漏) + printerr("VibeManager: No available embellishment player in the pool.") + return null diff --git a/manager/audio_manager/embellishment.gd b/manager/audio_manager/embellishment.gd new file mode 100644 index 00000000..93ab98b6 --- /dev/null +++ b/manager/audio_manager/embellishment.gd @@ -0,0 +1,26 @@ +@tool +class_name Embellishment +extends Resource + +## Embellishment.gd +## 定义一个“点缀音”的数据结构。 +## 作为一个可复用的资源,你可以在文件系统中创建多个点缀音配置, +## 比如 "cricket_sound.tres", "wind_gust.tres" 等。 + +# 点缀音的音源文件(wav, ogg, mp3等)。 +@export var sound: AudioStream + +# 播放此点缀音时,相对于 VibeGroup 整体音量的分贝(dB)调整值。 +# 0 表示不变, 负数表示减小音量, 正数表示增大音量。 +@export_range(-60, 6, 0.1, "dB") var db: float = 0.0 + +# 播放此点缀音的最小随机间隔时间(秒)。 +@export_range(0.1, 300.0, 0.1, "s") var min_interval: float = 5.0 + +# 播放此点缀音的最大随机间隔时间(秒)。 +@export_range(0.1, 300.0, 0.1, "s") var max_interval: float = 10.0 + +func _init(): + # 确保 min <= max + if min_interval > max_interval: + max_interval = min_interval \ No newline at end of file diff --git a/manager/audio_manager/embellishment.gd.uid b/manager/audio_manager/embellishment.gd.uid new file mode 100644 index 00000000..5d268a35 --- /dev/null +++ b/manager/audio_manager/embellishment.gd.uid @@ -0,0 +1 @@ +uid://eydkufjbf7n6 diff --git a/manager/audio_manager/vibe_group.gd b/manager/audio_manager/vibe_group.gd new file mode 100644 index 00000000..26e4ac16 --- /dev/null +++ b/manager/audio_manager/vibe_group.gd @@ -0,0 +1,26 @@ +@tool +class_name VibeGroup +extends Resource + +## VibeGroup.gd +## 定义一个“音轨组”的数据结构。 +## 这是一个核心资源,包含了完整的环境音效配置方案。 +## 你可以创建如 "forest_day.tres", "dungeon_terror.tres" 等资源文件。 +@export var group_name := "" + +# 该音轨组的全局音量调整(dB)。会影响到其下所有的声音。 +@export_range(-60, 6, 0.1, "dB") var group_db: float = 0.0 + + +@export_group("Base Ambience", "base_") +# 基础环境音(白噪音),要求是无缝循环的音频文件。 +@export var base_sound: AudioStream + +# 基础环境音的独立音量调整(dB)。 +@export_range(-60, 6, 0.1, "dB") var base_sound_db: float = 0.0 + + +@export_group("Embellishments", "embellishment_") +# 点缀音效列表。可以从库中拖入预设好的 Embellishment.tres 资源。 +# 你也可以直接在这里新建 Embellishment 资源,实现“特制wav”的需求。 +@export var embellishments: Array[Embellishment] diff --git a/manager/audio_manager/vibe_group.gd.uid b/manager/audio_manager/vibe_group.gd.uid new file mode 100644 index 00000000..ea0d24f8 --- /dev/null +++ b/manager/audio_manager/vibe_group.gd.uid @@ -0,0 +1 @@ +uid://cy1ngx5no67v diff --git a/manager/audio_manager/vibe_sfx.gd b/manager/audio_manager/vibe_sfx.gd new file mode 100644 index 00000000..5464a954 --- /dev/null +++ b/manager/audio_manager/vibe_sfx.gd @@ -0,0 +1,53 @@ +@tool +class_name VibeSfx +extends Node + +## VibeSfx.gd +## 场景中的环境音效控制器节点(“遥控器”)。 +## 你可以将此节点放置在任何场景中,用于配置和触发不同的 VibeGroup。 +## 它通过调用全局的 VibeManager 来实现功能。 + +# VibeGroup 库。使用字典可以方便地通过名称(如 "default", "battle")来引用不同的音轨组。 +# 你可以在 Inspector 中配置这个字典,将名称映射到 VibeGroup.tres 资源文件。 +@export var vibe_groups: Dictionary[String, VibeGroup] = {"default": null} + +# 当此节点进入场景树时,是否自动播放指定的 VibeGroup。 +@export var autoplay: bool = true + +const autoplay_group_name := &"default" + + +func _ready(): + # 仅在游戏运行时执行 + if Engine.is_editor_hint(): + return + + if autoplay: + if vibe_groups.has(autoplay_group_name): + switch_to(autoplay_group_name) + else: + printerr( + ( + "VibeSfx: Autoplay group '%s' not found in vibe_groups dictionary." + % autoplay_group_name + ) + ) + + +## 公共方法:切换到指定的 VibeGroup。 +## 可以在其他脚本(如过场动画控制器、区域触发器)中调用此方法。 +## example: $VibeSfx.switch_to("event_1_vibe") +func switch_to(group_name: StringName): + if vibe_groups.has(group_name): + var group_resource: VibeGroup = vibe_groups[group_name] + if is_instance_valid(group_resource): + AudioManager.play_group(group_resource) + else: + printerr("VibeSfx: Resource for group '%s' is null or invalid." % group_name) + else: + printerr("VibeSfx: Group name '%s' not found." % group_name) + + +## 公共方法:停止所有由 VibeManager 控制的环境音。 +func stop(): + AudioManager.stop_all() diff --git a/manager/audio_manager/vibe_sfx.gd.uid b/manager/audio_manager/vibe_sfx.gd.uid new file mode 100644 index 00000000..e9744b91 --- /dev/null +++ b/manager/audio_manager/vibe_sfx.gd.uid @@ -0,0 +1 @@ +uid://cpejxlfni6n52 diff --git a/scene/entity/general/bgm_control.gd b/scene/entity/audio/bgm_control.gd similarity index 100% rename from scene/entity/general/bgm_control.gd rename to scene/entity/audio/bgm_control.gd diff --git a/scene/entity/general/bgm_control.gd.uid b/scene/entity/audio/bgm_control.gd.uid similarity index 100% rename from scene/entity/general/bgm_control.gd.uid rename to scene/entity/audio/bgm_control.gd.uid diff --git a/scene/entity/general/sfx.gd b/scene/entity/audio/sfx.gd similarity index 100% rename from scene/entity/general/sfx.gd rename to scene/entity/audio/sfx.gd diff --git a/scene/entity/general/sfx.gd.uid b/scene/entity/audio/sfx.gd.uid similarity index 100% rename from scene/entity/general/sfx.gd.uid rename to scene/entity/audio/sfx.gd.uid diff --git a/scene/entity/general/sfx.tscn b/scene/entity/audio/sfx.tscn similarity index 89% rename from scene/entity/general/sfx.tscn rename to scene/entity/audio/sfx.tscn index 12a64cb8..bffb7d20 100644 --- a/scene/entity/general/sfx.tscn +++ b/scene/entity/audio/sfx.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=3 format=3 uid="uid://byj234hen4btr"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="1_ng32y"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="1_ng32y"] [ext_resource type="AudioStream" uid="uid://cvttds81trcoc" path="res://asset/audio/sfx/UI/click.wav" id="1_xj6dy"] [node name="Sfx" type="AudioStreamPlayer"] diff --git a/scene/entity/general/sfx2d.gd b/scene/entity/audio/sfx2d.gd similarity index 100% rename from scene/entity/general/sfx2d.gd rename to scene/entity/audio/sfx2d.gd diff --git a/scene/entity/general/sfx2d.gd.uid b/scene/entity/audio/sfx2d.gd.uid similarity index 100% rename from scene/entity/general/sfx2d.gd.uid rename to scene/entity/audio/sfx2d.gd.uid diff --git a/scene/entity/general/sfx2d.tscn b/scene/entity/audio/sfx2d.tscn similarity index 89% rename from scene/entity/general/sfx2d.tscn rename to scene/entity/audio/sfx2d.tscn index 801f59de..33ad3a16 100644 --- a/scene/entity/general/sfx2d.tscn +++ b/scene/entity/audio/sfx2d.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=3 format=3 uid="uid://bq1ngudr2hnkg"] [ext_resource type="AudioStream" uid="uid://cvttds81trcoc" path="res://asset/audio/sfx/UI/click.wav" id="1_7vcpo"] -[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/general/sfx2d.gd" id="1_k1qpr"] +[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="1_k1qpr"] [node name="Sfx2d" type="AudioStreamPlayer2D"] stream = ExtResource("1_7vcpo") diff --git a/scene/entity/closeup.tscn b/scene/entity/closeup.tscn index 88d5d83a..67eb6300 100644 --- a/scene/entity/closeup.tscn +++ b/scene/entity/closeup.tscn @@ -5,7 +5,7 @@ [ext_resource type="Texture2D" uid="uid://bc8sn2v4t1yta" path="res://asset/art/ui/action_mark/UI开锁.png" id="3_dnubm"] [ext_resource type="Texture2D" uid="uid://gui0ubwlwoi0" path="res://asset/art/ui/action_mark/UI手.png" id="4_18yy2"] [ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="4_dnubm"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="5_dnubm"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="5_dnubm"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_ogin7"] resource_local_to_scene = true diff --git a/scene/entity/hd_entity.tscn b/scene/entity/hd_entity.tscn index b275ef26..60274f7a 100644 --- a/scene/entity/hd_entity.tscn +++ b/scene/entity/hd_entity.tscn @@ -2,7 +2,7 @@ [ext_resource type="Script" uid="uid://c5hjtm0kn3ig3" path="res://scene/entity/hd_entity.gd" id="1_fp2a8"] [ext_resource type="AudioStream" uid="uid://cvttds81trcoc" path="res://asset/audio/sfx/UI/click.wav" id="2_eiqig"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="3_5dpvj"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_5dpvj"] [ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="3_jupnr"] [ext_resource type="Texture2D" uid="uid://bei1s1uucktso" path="res://asset/art/tool/neutral_point_light.webp" id="3_oxpta"] diff --git a/scene/entity/inspectable.tscn b/scene/entity/inspectable.tscn index d1f489d3..55809c42 100644 --- a/scene/entity/inspectable.tscn +++ b/scene/entity/inspectable.tscn @@ -3,7 +3,7 @@ [ext_resource type="Script" uid="uid://ctd1xlvqdcsg4" path="res://scene/entity/inspectable.gd" id="1_0pc4s"] [ext_resource type="Texture2D" uid="uid://c0rw25jl762a1" path="res://asset/art/ui/action_mark/UI眼睛.png" id="2_ossmq"] [ext_resource type="AudioStream" uid="uid://dky3j8lwcy5sk" path="res://asset/audio/sfx/UI/物品查看.mp3" id="3_kilnm"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="3_p1g2a"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_p1g2a"] [ext_resource type="Texture2D" uid="uid://bei1s1uucktso" path="res://asset/art/tool/neutral_point_light.webp" id="3_vbivp"] [ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="4_1yty8"] diff --git a/scene/entity/interactable.tscn b/scene/entity/interactable.tscn index 6d8f55b5..044b7b3e 100644 --- a/scene/entity/interactable.tscn +++ b/scene/entity/interactable.tscn @@ -7,7 +7,7 @@ [ext_resource type="AudioStream" uid="uid://inmdv5gqqius" path="res://asset/audio/sfx/UI/门锁互动.mp3" id="4_n1rbo"] [ext_resource type="Texture2D" uid="uid://gui0ubwlwoi0" path="res://asset/art/ui/action_mark/UI手.png" id="4_njk43"] [ext_resource type="AudioStream" uid="uid://ccng5y2fip6mc" path="res://asset/audio/sfx/UI/开锁声.mp3" id="5_exp6m"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="6_l2kr5"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="6_l2kr5"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_8d3b4"] resource_local_to_scene = true diff --git a/scene/entity/local_inspectable.tscn b/scene/entity/local_inspectable.tscn index 93181a4f..43795165 100644 --- a/scene/entity/local_inspectable.tscn +++ b/scene/entity/local_inspectable.tscn @@ -4,7 +4,7 @@ [ext_resource type="Texture2D" uid="uid://c0rw25jl762a1" path="res://asset/art/ui/action_mark/UI眼睛.png" id="2_3pauf"] [ext_resource type="AudioStream" uid="uid://byjcmxy5crce5" path="res://asset/audio/sfx/UI/纸条.mp3" id="3_3ldx7"] [ext_resource type="Texture2D" uid="uid://bei1s1uucktso" path="res://asset/art/tool/neutral_point_light.webp" id="3_o562w"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="3_q18ff"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_q18ff"] [ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="4_do8tr"] [ext_resource type="Texture2D" uid="uid://dwgxa5j6602vv" path="res://asset/art/ui/prop/inspect文本衬底蒙版.png" id="6_q18ff"] [ext_resource type="FontVariation" uid="uid://1ryw42kej6lv" path="res://config/font_ui.tres" id="7_ianbs"] diff --git a/scene/entity/note.tscn b/scene/entity/note.tscn index f99993b2..e10fe14e 100644 --- a/scene/entity/note.tscn +++ b/scene/entity/note.tscn @@ -4,7 +4,7 @@ [ext_resource type="Texture2D" uid="uid://c0rw25jl762a1" path="res://asset/art/ui/action_mark/UI眼睛.png" id="2_ycvi5"] [ext_resource type="Texture2D" uid="uid://bei1s1uucktso" path="res://asset/art/tool/neutral_point_light.webp" id="3_xb81s"] [ext_resource type="AudioStream" uid="uid://byjcmxy5crce5" path="res://asset/audio/sfx/UI/纸条.mp3" id="3_y3pwa"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_ycvi5"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_ycvi5"] [ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="5_dhwp5"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_k6och"] diff --git a/scene/entity/npc.tscn b/scene/entity/npc.tscn index 20de7058..a2dccb9f 100644 --- a/scene/entity/npc.tscn +++ b/scene/entity/npc.tscn @@ -2,7 +2,7 @@ [ext_resource type="Script" uid="uid://cqd5dqafxnwl1" path="res://scene/entity/npc.gd" id="1_jegr2"] [ext_resource type="AudioStream" uid="uid://cvttds81trcoc" path="res://asset/audio/sfx/UI/click.wav" id="3_7lwt5"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_j5svs"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_j5svs"] [ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="4_nokx4"] [ext_resource type="Texture2D" uid="uid://bwt5nxyncfuqu" path="res://asset/art/ui/action_mark/说话标识1.png" id="5_foitt"] [ext_resource type="Texture2D" uid="uid://8bnn3s72o87y" path="res://asset/art/ui/action_mark/说话标识2.png" id="6_2n6ge"] diff --git a/scene/entity/pickable.tscn b/scene/entity/pickable.tscn index 776294ef..172400e9 100644 --- a/scene/entity/pickable.tscn +++ b/scene/entity/pickable.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=7 format=3 uid="uid://dsa6frlw6e6gg"] [ext_resource type="Script" uid="uid://cd3tb2he77vv4" path="res://scene/entity/pickable.gd" id="1_jk1u0"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="3_1h8r3"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_1h8r3"] [ext_resource type="AudioStream" uid="uid://dutk2d7nilv3m" path="res://asset/audio/sfx/UI/令牌道具获取.wav" id="3_dxdbj"] [ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="4_44f4h"] [ext_resource type="Texture2D" uid="uid://bei1s1uucktso" path="res://asset/art/tool/neutral_point_light.webp" id="5_yhysn"] diff --git a/scene/entity/portal.tscn b/scene/entity/portal.tscn index 4e87fbeb..0bc3a3d2 100644 --- a/scene/entity/portal.tscn +++ b/scene/entity/portal.tscn @@ -8,7 +8,7 @@ [ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="4_ty1ds"] [ext_resource type="AudioStream" uid="uid://ccng5y2fip6mc" path="res://asset/audio/sfx/UI/开锁声.mp3" id="5_l48hy"] [ext_resource type="AudioStream" uid="uid://dqdjxy04ge0r5" path="res://asset/audio/sfx/旧版/c02/场景转场.mp3" id="6_1sj6c"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="6_bxihn"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="6_bxihn"] [ext_resource type="AudioStream" uid="uid://c1eftumrd4mgw" path="res://asset/audio/sfx/交互/开门.wav" id="6_p48ld"] [ext_resource type="AudioStream" uid="uid://inmdv5gqqius" path="res://asset/audio/sfx/UI/门锁互动.mp3" id="7_bjcty"] diff --git a/scene/ground/ground.gd b/scene/ground/ground.gd index 5b4daaca..21c06c80 100644 --- a/scene/ground/ground.gd +++ b/scene/ground/ground.gd @@ -43,7 +43,7 @@ var footstep_type: String = "硬地面": const FOOTSTEP_AUDIO = { #"wood": preload("res://config/audio/footstep/footstep_wood.tres"), #"carpet": preload("res://config/audio/footstep/footstep_carpet.tres"), - "concrete": preload("res://config/audio/footstep/footstep_concrete.tres"), + # "concrete": preload("res://config/audio/footstep/footstep_concrete.tres"), #"grass": preload("res://config/audio/footstep/footstep_grass.tres"), #"snow": preload("res://config/audio/footstep/footstep_snow.tres"), "ghost": preload("res://config/audio/sfx/footstep_ghost.tres"), @@ -51,7 +51,7 @@ const FOOTSTEP_AUDIO = { "室外": preload("res://config/audio/sfx/footstep_室外.tres"), "crawling": preload("res://config/audio/sfx/footstep_crawling.tres"), # 待替换 - "盒子猫": preload("res://config/audio/footstep/footstep_concrete.tres"), + "盒子猫": preload("res://config/audio/sfx/footstep_meow.tres"), } var restarting = false diff --git a/scene/ground/scene/c01/s05_院长房间.tscn b/scene/ground/scene/c01/s05_院长房间.tscn index 75a0f1f3..13c9f0ac 100644 --- a/scene/ground/scene/c01/s05_院长房间.tscn +++ b/scene/ground/scene/c01/s05_院长房间.tscn @@ -8,7 +8,7 @@ [ext_resource type="AudioStream" uid="uid://c45hu50ivpd42" path="res://asset/audio/sfx/交互/序章/01_院长房间_扶正相框.wav" id="3_jk3np"] [ext_resource type="AudioStream" uid="uid://b5iv527ujwp0i" path="res://asset/audio/peiyin_new/c01_1小小蝶_开头阅读1.wav" id="3_sluu3"] [ext_resource type="Texture2D" uid="uid://blv2ftjrmvlmh" path="res://asset/art/scene/c01/s05_院长房间/fg_前景.png" id="3_vmr0f"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_1jor4"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_1jor4"] [ext_resource type="Texture2D" uid="uid://bh7l6ykoayvve" path="res://asset/art/scene/c01/s05_院长房间/e_门.png" id="4_gdhoy"] [ext_resource type="AudioStream" uid="uid://c7k1gohcfiyg3" path="res://asset/audio/sfx/UI/开门.mp3" id="5_1jor4"] [ext_resource type="AudioStream" uid="uid://c1obirjf802gc" path="res://asset/audio/sfx/交互/序章/01_院长房间_下床.wav" id="5_f33sv"] @@ -18,7 +18,7 @@ [ext_resource type="Texture2D" uid="uid://dihrl7mgckinx" path="res://asset/art/scene/c01/s05_院长房间/e_钢琴.png" id="8_mnduo"] [ext_resource type="Texture2D" uid="uid://cmrpf3w0oetem" path="res://asset/art/scene/c01/s05_院长房间/e_桌椅.png" id="9_x837o"] [ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="10_18v0g"] -[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/general/sfx2d.gd" id="10_kyds0"] +[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="10_kyds0"] [ext_resource type="Texture2D" uid="uid://choqjery7hf58" path="res://asset/art/scene/c01/s05_院长房间/e_画框.png" id="11_6gq1s"] [ext_resource type="Texture2D" uid="uid://dae5yrbb5llia" path="res://asset/art/scene/c01/s05_院长房间/e_鸡毛掸子.png" id="12_jtglg"] [ext_resource type="SpriteFrames" uid="uid://b7fhheih1hbvf" path="res://config/animation/entity_sprite_frames.tres" id="14_e1bmq"] diff --git a/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn b/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn index d8effaa5..c7f2ab27 100644 --- a/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn +++ b/scene/ground/scene/c01/s06_孤儿院长廊围墙.tscn @@ -9,7 +9,7 @@ [ext_resource type="Texture2D" uid="uid://c40gmvqw3vd88" path="res://asset/art/scene/c01/s06_孤儿院长廊围墙/l_长廊光.png" id="4_6ffae"] [ext_resource type="Texture2D" uid="uid://bllt2wycchkp2" path="res://asset/art/scene/c01/s06_孤儿院长廊围墙/e_红柱子.png" id="4_dtycx"] [ext_resource type="Texture2D" uid="uid://cc1jlm2e465um" path="res://asset/art/scene/c01/s06_孤儿院长廊围墙/bg_墙园门顶层.png" id="4_ga8xr"] -[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/general/sfx2d.gd" id="4_qq2uh"] +[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="4_qq2uh"] [ext_resource type="AudioStream" uid="uid://dlsd8wrx3v31f" path="res://asset/audio/sfx/环境音/序章/02_孤儿院走廊.wav" id="5_6mww0"] [ext_resource type="PackedScene" uid="uid://cpc5037mesjl7" path="res://scene/ground/script/c01/s06_踢球男孩.tscn" id="5_erliv"] [ext_resource type="Texture2D" uid="uid://b08jrwtr3dpaq" path="res://asset/art/scene/c01/s06_孤儿院长廊围墙/bg_树干遮挡.png" id="5_rdmp5"] diff --git a/scene/ground/scene/c01/s07_书店外.tscn b/scene/ground/scene/c01/s07_书店外.tscn index 7ebcfd88..9481b18e 100644 --- a/scene/ground/scene/c01/s07_书店外.tscn +++ b/scene/ground/scene/c01/s07_书店外.tscn @@ -7,7 +7,7 @@ [ext_resource type="AudioStream" uid="uid://cxwvfeuq4o71o" path="res://asset/audio/sfx/环境音/序章/03_书店外黄昏.wav" id="3_na2nu"] [ext_resource type="Texture2D" uid="uid://dklacql2hdtwv" path="res://asset/art/scene/c01/s07_书店外/e_装饰 书店外黄昏.png" id="4_8do8y"] [ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/shading/fog.tscn" id="4_62isb"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_c7jb6"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_c7jb6"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_ulvsd"] [ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="5_3pha1"] [ext_resource type="AudioStream" uid="uid://bdnqngprqadud" path="res://asset/audio/sfx/交互/序章/03_书店外黄昏_报童.wav" id="5_7sdrt"] @@ -21,7 +21,7 @@ [ext_resource type="PackedScene" uid="uid://b50n0hvs4yh75" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn" id="9_slaub"] [ext_resource type="Texture2D" uid="uid://cxi0n7ra3blhr" path="res://asset/art/scene/c01/s07_书店外/书店外街道黄昏参考.png" id="12_vjih6"] [ext_resource type="AudioStream" uid="uid://dwvpevfbtqbm1" path="res://asset/audio/sfx/环境音/序章/03_书店外黄昏_舞刀声音.wav" id="14_c7jb6"] -[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/general/sfx2d.gd" id="19_sqlmr"] +[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="19_sqlmr"] [sub_resource type="AtlasTexture" id="AtlasTexture_amurr"] atlas = ExtResource("3_l7171") diff --git a/scene/ground/scene/c01/s08_书店.tscn b/scene/ground/scene/c01/s08_书店.tscn index a8696e90..5d90d363 100644 --- a/scene/ground/scene/c01/s08_书店.tscn +++ b/scene/ground/scene/c01/s08_书店.tscn @@ -7,7 +7,7 @@ [ext_resource type="AudioStream" uid="uid://bnjyw5v85s6qe" path="res://asset/audio/sfx/交互/序章/04_书店内_主角摔倒.wav" id="3_b6wsl"] [ext_resource type="AudioStream" uid="uid://vygcjwgo1j4a" path="res://asset/audio/sfx/环境音/序章/04_书店内_奶奶写字.wav" id="4_5j1ov"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="4_c4lg5"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_p6k3c"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_p6k3c"] [ext_resource type="AudioStream" uid="uid://bfcamfnhqjrnp" path="res://asset/audio/sfx/环境音/序章/05_诡异通用.wav" id="5_eerhd"] [ext_resource type="Texture2D" uid="uid://cqy0qfmko00rx" path="res://asset/art/scene/c01/s08_书店/e_梯子.png" id="5_tnrke"] [ext_resource type="PackedScene" uid="uid://nwpbl5yuh280" path="res://scene/ground/script/c01/s00_自动跟随的老鼠.tscn" id="6_05do1"] diff --git a/scene/ground/scene/c01/s09_公寓楼外.tscn b/scene/ground/scene/c01/s09_公寓楼外.tscn index 9191fced..5c740aa2 100644 --- a/scene/ground/scene/c01/s09_公寓楼外.tscn +++ b/scene/ground/scene/c01/s09_公寓楼外.tscn @@ -6,9 +6,9 @@ [ext_resource type="PackedScene" uid="uid://b68oedsmd0tof" path="res://scene/ground/script/c01/s01_公寓外_自动枯萎的花朵.tscn" id="3_52pqy"] [ext_resource type="Texture2D" uid="uid://gpwul4tcu43h" path="res://asset/art/scene/c01/s09_公寓楼外/bg_黄包车裁剪场景.png" id="3_828bq"] [ext_resource type="AudioStream" uid="uid://cyy88bgsvf3e2" path="res://asset/audio/sfx/环境音/序章/06_公寓楼道_花枯萎.wav" id="3_b5sdk"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_3f7n1"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_3f7n1"] [ext_resource type="PackedScene" uid="uid://h0s5ms7r7d8g" path="res://scene/shading/ghost.tscn" id="4_wqm5r"] -[ext_resource type="Script" uid="uid://bbg4vopj4apl6" path="res://scene/entity/general/bgm_control.gd" id="5_hy0mc"] +[ext_resource type="Script" uid="uid://bbg4vopj4apl6" path="res://scene/entity/audio/bgm_control.gd" id="5_hy0mc"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="5_pssh2"] [ext_resource type="AudioStream" uid="uid://c1orqd7uxh8iu" path="res://asset/audio/sfx/环境音/序章/05_诡异通用_2.wav" id="6_lrqbi"] [ext_resource type="Texture2D" uid="uid://dol25yn3fixim" path="res://asset/art/fog_mask.png" id="7_828bq"] diff --git a/scene/ground/scene/c01/s10_公寓楼道.tscn b/scene/ground/scene/c01/s10_公寓楼道.tscn index 243d3b3e..9ac7657b 100644 --- a/scene/ground/scene/c01/s10_公寓楼道.tscn +++ b/scene/ground/scene/c01/s10_公寓楼道.tscn @@ -5,8 +5,8 @@ [ext_resource type="AudioStream" uid="uid://d2sdgkatyat7i" path="res://asset/audio/sfx/环境音/序章/06_公寓楼道.wav" id="3_6prdo"] [ext_resource type="Texture2D" uid="uid://clsj2fcth8ts3" path="res://asset/art/scene/c01/s10_公寓过道/bg_过道夜晚.png" id="3_slkid"] [ext_resource type="SpriteFrames" uid="uid://dtwl5tgu7f4k5" path="res://asset/art/gif/c01_公寓过道/c01_公寓过道_frames.tres" id="4_bhb7e"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_qmc83"] -[ext_resource type="Script" uid="uid://bbg4vopj4apl6" path="res://scene/entity/general/bgm_control.gd" id="5_2jx0x"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_qmc83"] +[ext_resource type="Script" uid="uid://bbg4vopj4apl6" path="res://scene/entity/audio/bgm_control.gd" id="5_2jx0x"] [ext_resource type="PackedScene" uid="uid://bf6oxxe2e6vxj" path="res://scene/ground/script/c01/s10_鬼差探头.tscn" id="5_dnd0r"] [ext_resource type="PackedScene" uid="uid://svvlohuicvhf" path="res://scene/entity/ambient/light.tscn" id="5_rw4mf"] diff --git a/scene/ground/scene/c01/s11_黄包车演出.tscn b/scene/ground/scene/c01/s11_黄包车演出.tscn index 86bca127..67ed47ae 100644 --- a/scene/ground/scene/c01/s11_黄包车演出.tscn +++ b/scene/ground/scene/c01/s11_黄包车演出.tscn @@ -5,7 +5,7 @@ [ext_resource type="Texture2D" uid="uid://cjllurf1ouxf" path="res://asset/art/scene/c01/s04_旧版序章/fg_前景1.png" id="3_fduds"] [ext_resource type="SpriteFrames" uid="uid://b7fhheih1hbvf" path="res://config/animation/entity_sprite_frames.tres" id="3_hnnuc"] [ext_resource type="AudioStream" uid="uid://qu38tv548jhj" path="res://asset/audio/sfx/旧版/c01/拉黄包车_loop.wav" id="3_ummkx"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="3_vx53v"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_vx53v"] [ext_resource type="Texture2D" uid="uid://qbwh5si2owve" path="res://asset/art/scene/c01/s04_旧版序章/fg_前景3.png" id="4_1flr0"] [ext_resource type="AudioStream" uid="uid://qku3yk82g364" path="res://asset/audio/sfx/交互/标题出现音效.wav" id="5_amglq"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="6_3k8jj"] diff --git a/scene/ground/scene/c01/s12_书店外_诡异版.tscn b/scene/ground/scene/c01/s12_书店外_诡异版.tscn index 4d8e5c28..1ea7bc77 100644 --- a/scene/ground/scene/c01/s12_书店外_诡异版.tscn +++ b/scene/ground/scene/c01/s12_书店外_诡异版.tscn @@ -3,7 +3,7 @@ [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_llw14"] [ext_resource type="Script" uid="uid://bh4h0e158t1oj" path="res://scene/ground/scene/c01/s12_animation.gd" id="2_krdvw"] [ext_resource type="Texture2D" uid="uid://bc64s5xfysrc3" path="res://asset/art/scene/c01/s07_书店外/bg_书店外_夜晚.png" id="3_npdxo"] -[ext_resource type="Script" uid="uid://bbg4vopj4apl6" path="res://scene/entity/general/bgm_control.gd" id="3_p7n7n"] +[ext_resource type="Script" uid="uid://bbg4vopj4apl6" path="res://scene/entity/audio/bgm_control.gd" id="3_p7n7n"] [ext_resource type="Texture2D" uid="uid://ctukk7c8xo4uc" path="res://asset/art/scene/c01/s07_书店外/e_装饰 书店外夜晚.png" id="4_c1x3p"] [ext_resource type="AudioStream" uid="uid://c1orqd7uxh8iu" path="res://asset/audio/sfx/环境音/序章/05_诡异通用_2.wav" id="4_mxf8g"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_o7hfk"] diff --git a/scene/ground/scene/c02/s01_街道.tscn b/scene/ground/scene/c02/s01_街道.tscn index 5d777bae..d2dc68b7 100644 --- a/scene/ground/scene/c02/s01_街道.tscn +++ b/scene/ground/scene/c02/s01_街道.tscn @@ -5,7 +5,7 @@ [ext_resource type="AudioStream" uid="uid://c2wgvynhg3mec" path="res://asset/audio/sfx/环境音/第一章/室外院子1.wav" id="3_4jml0"] [ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="3_6lnxd"] [ext_resource type="Texture2D" uid="uid://d05pqud4yoxx3" path="res://asset/art/scene/c02/s01_公寓门口/bg_公寓门口.png" id="3_a5loe"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_gqpp0"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_gqpp0"] [node name="S01" type="Node2D"] diff --git a/scene/ground/scene/c02/s02_过道.tscn b/scene/ground/scene/c02/s02_过道.tscn index 39e4678e..37f0af6e 100644 --- a/scene/ground/scene/c02/s02_过道.tscn +++ b/scene/ground/scene/c02/s02_过道.tscn @@ -2,7 +2,7 @@ [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_wrr6r"] [ext_resource type="Script" uid="uid://bfrgnmde3hjn0" path="res://scene/ground/scene/c02/s02_animation.gd" id="2_5p8ev"] -[ext_resource type="PackedScene" uid="uid://byj234hen4btr" path="res://scene/entity/general/sfx.tscn" id="3_fvldj"] +[ext_resource type="PackedScene" uid="uid://byj234hen4btr" path="res://scene/entity/audio/sfx.tscn" id="3_fvldj"] [ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="3_fy0o1"] [ext_resource type="Texture2D" uid="uid://5428j51dwarc" path="res://asset/art/scene/c02/s02_大门过道/bg_过道背景.png" id="3_gjwum"] [ext_resource type="SpriteFrames" uid="uid://b7fhheih1hbvf" path="res://config/animation/entity_sprite_frames.tres" id="4_wbif8"] @@ -19,7 +19,7 @@ [ext_resource type="AudioStream" uid="uid://dq2ndg5yd3rps" path="res://asset/audio/sfx/旧版/c02/出现.mp3" id="11_u68d7"] [ext_resource type="PackedScene" uid="uid://ci5anaxsa1apl" path="res://scene/entity/local_inspectable.tscn" id="12_0fckv"] [ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="13_ck13g"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="14_jg8g0"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="14_jg8g0"] [ext_resource type="Texture2D" uid="uid://8otjg8gn0m6p" path="res://asset/art/gif/c02_公寓过道/眨眼睛/0.png" id="17_m1xet"] [ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="17_mpkj1"] [ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="19_6wwyd"] diff --git a/scene/ground/scene/c02/s03_animation.gd b/scene/ground/scene/c02/s03_animation.gd index e1f3c541..b2dd3c7b 100644 --- a/scene/ground/scene/c02/s03_animation.gd +++ b/scene/ground/scene/c02/s03_animation.gd @@ -16,6 +16,7 @@ func _ready() -> void: if Engine.is_editor_hint(): return + var eavesdrop_window: AnimatedSprite2D var madman_npc: Npc2D var small_shoe: Pickable2D @@ -24,6 +25,7 @@ var burning_layer var counter var fg + func _on_ground_ready() -> void: fg = $"../ParallaxForeground/FGParallaxLayer/FGSprite2D" gate = $"../DeployLayer/Interactable铁门" as Interactable2D @@ -31,7 +33,7 @@ func _on_ground_ready() -> void: gate.get_node("Wall/CollisionShape2D").disabled = true else: gate.interacted.connect(_on_gate_interacted) - + eavesdrop_window = $"../DeployLayer/李氏赖子房间人影" if ArchiveManager.get_global_value("c02_eavesdrop_finished"): $"../DeployLayer/Ambush偷听对话".enabled = false @@ -71,7 +73,6 @@ func _on_ground_ready() -> void: madman_npc.visible = false madman_npc.get_node("StaticBody2D/CollisionShape2D").disabled = true - if ArchiveManager.get_global_value("c02_the_blind_room_unlocked"): # 奠字 + 纸钱 $"../DeployLayer/新背景_奠".visible = true @@ -128,7 +129,8 @@ func _on_gate_interacted() -> void: func shocking_lighting() -> void: # 纸人闪现 惊悚闪电 闷雷声缓缓而来 - pass + $"Sfx闷雷".play() + # TODO func eavesdrop() -> void: diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn index cfb25bfe..c6b00a3e 100644 --- a/scene/ground/scene/c02/s03_院子.tscn +++ b/scene/ground/scene/c02/s03_院子.tscn @@ -1,16 +1,17 @@ -[gd_scene load_steps=73 format=3 uid="uid://djc2uaefhmu7"] +[gd_scene load_steps=74 format=3 uid="uid://djc2uaefhmu7"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_0dylx"] [ext_resource type="Script" uid="uid://dsp5plrdkrsd7" path="res://scene/ground/scene/c02/s03_animation.gd" id="2_dt5aj"] [ext_resource type="AudioStream" uid="uid://lp46utp018ac" path="res://asset/audio/sfx/环境音/第一章/03_一楼院子.wav" id="3_2y8cu"] [ext_resource type="Texture2D" uid="uid://b3odt4ojsvu5n" path="res://asset/art/scene/c02/s03_公寓一楼院子/bg_一楼.png" id="3_sqv8l"] [ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="4_gd6xp"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_ygnci"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_ygnci"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="5_00b7a"] [ext_resource type="AudioStream" uid="uid://s7uigovfp5g3" path="res://asset/audio/sfx/环境音/第一章/火灾演出.wav" id="5_ygnci"] [ext_resource type="Texture2D" uid="uid://f8yjp5ggr8qw" path="res://asset/art/scene/c02/s03_公寓一楼院子/算卦布.png" id="6_1tart"] [ext_resource type="Texture2D" uid="uid://0uh6qaalhqju" path="res://asset/art/scene/c02/s11_一楼火灾/总背景/bg_院子1楼火灾.png" id="6_d7h4s"] [ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="6_t48d1"] +[ext_resource type="AudioStream" uid="uid://civuwccn6v6yk" path="res://asset/audio/sfx/交互/第一章/sfx_闷雷声.wav" id="6_vddfx"] [ext_resource type="Texture2D" uid="uid://bxqetnlx0bpv4" path="res://asset/art/scene/c02/门_贴图/1012保卫科.png" id="6_ygnci"] [ext_resource type="Texture2D" uid="uid://cmm6oxlbl2wps" path="res://asset/art/scene/c02/门_贴图/1013肉铺.png" id="7_c3f8o"] [ext_resource type="PackedScene" uid="uid://dsa6frlw6e6gg" path="res://scene/entity/pickable.tscn" id="7_em2ma"] @@ -354,6 +355,12 @@ audio_dict = Dictionary[String, AudioStream]({ "感应玩家操作" = false metadata/_custom_type_script = "uid://rq6w1vuhuq1m" +[node name="Sfx闷雷" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"] +stream = ExtResource("6_vddfx") +bus = &"game_sfx" +script = ExtResource("4_ygnci") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + [node name="BGSprite2D" parent="Ground" index="1"] light_mask = 5 texture = ExtResource("3_sqv8l") diff --git a/scene/ground/scene/c02/s04_保卫科.tscn b/scene/ground/scene/c02/s04_保卫科.tscn index ca4e5fd2..b3c58727 100644 --- a/scene/ground/scene/c02/s04_保卫科.tscn +++ b/scene/ground/scene/c02/s04_保卫科.tscn @@ -4,7 +4,7 @@ [ext_resource type="Script" uid="uid://dmhh4g47bdxxy" path="res://scene/ground/scene/c02/s04_animation.gd" id="2_jyere"] [ext_resource type="Texture2D" uid="uid://7jvg2flkapj3" path="res://asset/art/scene/c02/s04_保卫科/bg_保卫科.png" id="3_66gue"] [ext_resource type="AudioStream" uid="uid://6gttowdwmado" path="res://asset/audio/sfx/环境音/第一章/房间内部场景1.wav" id="3_dlq1i"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_ffvrp"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_ffvrp"] [ext_resource type="SpriteFrames" uid="uid://c2sjavnptjn" path="res://asset/art/gif/c02_保卫科/c02_保卫科_frames.tres" id="4_svuj3"] [ext_resource type="Texture2D" uid="uid://bnyf8m63ltgh0" path="res://asset/art/scene/c02/s04_保卫科/l_香.png" id="5_cy26p"] [ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="6_66gue"] @@ -28,7 +28,6 @@ size = Vector2(5, 70) scene_name = "c02_s04" default_portal = "right" player_y = 60 -main_scene = null [node name="AnimationPlayer" parent="Ground" index="0"] script = ExtResource("2_jyere") @@ -110,6 +109,10 @@ texture = ExtResource("10_svuj3") [node name="灯座" parent="Ground/DeployLayer/煤油灯" index="6"] visible = false +[node name="Sign" parent="Ground/DeployLayer/煤油灯" index="7"] +offset_top = -19.0 +offset_bottom = -19.0 + [node name="小手讨东西" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_a43aq")] position = Vector2(295, -6) diff --git a/scene/ground/scene/c02/s05_一楼内侧楼道.tscn b/scene/ground/scene/c02/s05_一楼内侧楼道.tscn index 0be70f18..cc6deeed 100644 --- a/scene/ground/scene/c02/s05_一楼内侧楼道.tscn +++ b/scene/ground/scene/c02/s05_一楼内侧楼道.tscn @@ -4,7 +4,7 @@ [ext_resource type="Script" uid="uid://dydpmjpcvt3v1" path="res://scene/ground/scene/c02/s05_animation.gd" id="2_70lf6"] [ext_resource type="AudioStream" uid="uid://r5b8qi54asdk" path="res://asset/audio/sfx/环境音/第一章/楼道场景4.wav" id="3_kpaw8"] [ext_resource type="Texture2D" uid="uid://dbtepltemtmy2" path="res://asset/art/scene/c02/s05_一楼内侧楼道/bg_楼道背景.png" id="3_rcuxq"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_20mbg"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_20mbg"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_tueh3"] [ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="7_mrltr"] [ext_resource type="Texture2D" uid="uid://bn47plsx5coug" path="res://asset/art/scene/c02/s05_一楼内侧楼道/l_煤油灯光效.png" id="8_mrltr"] diff --git a/scene/ground/scene/c02/s06_二楼.tscn b/scene/ground/scene/c02/s06_二楼.tscn index 61ffc72d..b1522490 100644 --- a/scene/ground/scene/c02/s06_二楼.tscn +++ b/scene/ground/scene/c02/s06_二楼.tscn @@ -4,7 +4,7 @@ [ext_resource type="Script" uid="uid://cbt0ubygchxvv" path="res://scene/ground/scene/c02/s06_animation.gd" id="2_4dg6u"] [ext_resource type="Texture2D" uid="uid://6ol2om68cd1q" path="res://asset/art/scene/c02/s06_二楼楼道/bg_背景.png" id="3_och2w"] [ext_resource type="AudioStream" uid="uid://blf1rtu71vy17" path="res://asset/audio/sfx/环境音/第一章/楼道场景1.wav" id="3_yolsv"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_2e08x"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_2e08x"] [ext_resource type="AudioStream" uid="uid://ce3p55nnts4v5" path="res://asset/audio/effect/action/cloth2.ogg" id="4_58e26"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_haidv"] [ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="5_3p5ta"] @@ -19,7 +19,7 @@ [ext_resource type="PackedScene" uid="uid://b50n0hvs4yh75" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn" id="10_p6da7"] [ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="11_owxx3"] [ext_resource type="PackedScene" uid="uid://cjx7o685ox8c1" path="res://scene/little_game/弹珠游戏/弹珠游戏.tscn" id="12_intre"] -[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/general/sfx2d.gd" id="14_7x2h6"] +[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="14_7x2h6"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="14_k01ve"] [ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="14_och2w"] [ext_resource type="SpriteFrames" uid="uid://b0icyhxpj16tv" path="res://asset/art/gif/c02_谢幕演出/c02_谢幕演出_frames.tres" id="15_k01ve"] diff --git a/scene/ground/scene/c02/s07_二楼内侧楼道.tscn b/scene/ground/scene/c02/s07_二楼内侧楼道.tscn index 05dac9e3..aa8c29a6 100644 --- a/scene/ground/scene/c02/s07_二楼内侧楼道.tscn +++ b/scene/ground/scene/c02/s07_二楼内侧楼道.tscn @@ -5,7 +5,7 @@ [ext_resource type="AudioStream" uid="uid://m6av0abbhyco" path="res://asset/audio/sfx/环境音/第一章/楼道场景3.wav" id="3_s75vl"] [ext_resource type="Texture2D" uid="uid://u7rp66mboqq4" path="res://asset/art/scene/c02/s07_二楼内侧楼道/bg_背景.png" id="3_t0s64"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_5krke"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_sv27p"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_sv27p"] [ext_resource type="Texture2D" uid="uid://bim6w1xp1a4bg" path="res://asset/art/scene/c02/s07_二楼内侧楼道/锡箔墙面涂鸦提示.png" id="5_6ivku"] [ext_resource type="PackedScene" uid="uid://cxw5rovg5mu1a" path="res://scene/ground/script/c02/s00_煤油灯.tscn" id="5_u2dyp"] [ext_resource type="PackedScene" uid="uid://xovlfee503a4" path="res://scene/ground/script/c02/小手讨东西.tscn" id="6_5krke"] diff --git a/scene/ground/scene/c02/s08_瞎子卧室.tscn b/scene/ground/scene/c02/s08_瞎子卧室.tscn index 3d2d6978..a9712252 100644 --- a/scene/ground/scene/c02/s08_瞎子卧室.tscn +++ b/scene/ground/scene/c02/s08_瞎子卧室.tscn @@ -3,7 +3,7 @@ [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_judx3"] [ext_resource type="Script" uid="uid://hbbgymjs5xte" path="res://scene/ground/scene/c02/s08_animation.gd" id="2_m4uw8"] [ext_resource type="Texture2D" uid="uid://v3sj36aijq5b" path="res://asset/art/scene/c02/s08_瞎子卧室/bg_瞎子卧室.png" id="3_iares"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="3_t3h08"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_t3h08"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_1ws4i"] [ext_resource type="Texture2D" uid="uid://vqyhgyka3sfo" path="res://asset/art/scene/c02/s08_瞎子卧室/瞎子卧室前景.png" id="4_gx8oy"] [ext_resource type="AudioStream" uid="uid://dthm5gd1sc16" path="res://asset/audio/sfx/环境音/第一章/房间内部场景2.wav" id="4_vjjde"] diff --git a/scene/ground/scene/c02/s09_裂缝.tscn b/scene/ground/scene/c02/s09_裂缝.tscn index 53db3248..9e9be25e 100644 --- a/scene/ground/scene/c02/s09_裂缝.tscn +++ b/scene/ground/scene/c02/s09_裂缝.tscn @@ -3,7 +3,7 @@ [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_o0m5w"] [ext_resource type="Script" uid="uid://beqnywn1dlnax" path="res://scene/ground/scene/c02/s09_animation.gd" id="2_34a6f"] [ext_resource type="AudioStream" uid="uid://lel6wpfs2424" path="res://asset/audio/sfx/环境音/第一章/09_裂缝空间_地下通道.wav" id="3_qjenp"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_qjenp"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_qjenp"] [ext_resource type="Shader" uid="uid://dyc16avypkkct" path="res://scene/ground/script/c02/s09_裂缝麻绳.gdshader" id="5_0fmdd"] [ext_resource type="Texture2D" uid="uid://ddcburr57lb75" path="res://asset/art/scene/c02/旧版/s12_1014诡异版/bg_衔接阴影.png" id="5_5ow41"] [ext_resource type="AudioStream" uid="uid://docu0vw8pwjow" path="res://asset/audio/sfx/环境音/第一章/09_裂缝空间_红色地道.wav" id="5_husb8"] @@ -687,7 +687,8 @@ position = Vector2(3064, 68) position = Vector2(3362, 69) [node name="坍塌11" parent="Ground/DeployLayer/坍塌" instance=ExtResource("15_87wfh")] -position = Vector2(3663, 69) +position = Vector2(3663, 68) +play_sfx = true [node name="大老鼠" type="Sprite2D" parent="Ground/DeployLayer" index="10"] position = Vector2(259, -42) diff --git a/scene/ground/scene/c02/s10_空房间.tscn b/scene/ground/scene/c02/s10_空房间.tscn index 190bc72a..97675b9d 100644 --- a/scene/ground/scene/c02/s10_空房间.tscn +++ b/scene/ground/scene/c02/s10_空房间.tscn @@ -4,7 +4,7 @@ [ext_resource type="Script" uid="uid://dkkey7qillk15" path="res://scene/ground/scene/c02/s10_animation.gd" id="2_egtqi"] [ext_resource type="AudioStream" uid="uid://6gttowdwmado" path="res://asset/audio/sfx/环境音/第一章/房间内部场景1.wav" id="3_chbaa"] [ext_resource type="Texture2D" uid="uid://molvyfyy63ik" path="res://asset/art/scene/c02/s10_空房间/bg_空房间.png" id="3_ox8et"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_chbaa"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_chbaa"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_pde4i"] [ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="5_ylhfc"] [ext_resource type="PackedScene" uid="uid://dsa6frlw6e6gg" path="res://scene/entity/pickable.tscn" id="6_27dvh"] diff --git a/scene/ground/scene/c02/s13_盒子猫二楼.tscn b/scene/ground/scene/c02/s13_盒子猫二楼.tscn index 6e634334..6ea31b79 100644 --- a/scene/ground/scene/c02/s13_盒子猫二楼.tscn +++ b/scene/ground/scene/c02/s13_盒子猫二楼.tscn @@ -6,7 +6,7 @@ [ext_resource type="Texture2D" uid="uid://dweafdywxenu6" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/bg_二楼楼道.png" id="3_miykx"] [ext_resource type="Texture2D" uid="uid://b3ootg88b63rb" path="res://asset/art/scene/c02/旧版/s13_院子诡异版/fg_楼梯调色后.png" id="4_4adgb"] [ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_u2fv1"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_yywsi"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_yywsi"] [ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="5_gge8e"] [ext_resource type="Texture2D" uid="uid://csrfyvaufo1wb" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/l_瞎子理发店光.png" id="6_gge8e"] [ext_resource type="PackedScene" uid="uid://khwxm5qbfj3k" path="res://scene/ground/script/c02/盒子猫canvas_layer.tscn" id="7_u2fv1"] diff --git a/scene/ground/script/c01/s06_踢球男孩.tscn b/scene/ground/script/c01/s06_踢球男孩.tscn index 4217c427..8b2f0dee 100644 --- a/scene/ground/script/c01/s06_踢球男孩.tscn +++ b/scene/ground/script/c01/s06_踢球男孩.tscn @@ -4,7 +4,7 @@ [ext_resource type="SpriteFrames" uid="uid://cc0ea1he2nfc2" path="res://asset/art/gif/c01_孤儿院长廊/c01_孤儿院长廊_frames.tres" id="2_wic0e"] [ext_resource type="Texture2D" uid="uid://bmedw8l7ew067" path="res://asset/art/gif/c01_孤儿院长廊/男孩要踢的球.png" id="3_ofpb7"] [ext_resource type="AudioStream" uid="uid://ds1vp1es76wyp" path="res://asset/audio/sfx/环境音/序章/02_孤儿院走廊_小孩踢球.wav" id="5_wjvcm"] -[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/general/sfx2d.gd" id="6_q65up"] +[ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="6_q65up"] [node name="踢球男孩" type="Node2D"] script = ExtResource("1_itbib") diff --git a/scene/ground/script/c01/s10_鬼差探头.tscn b/scene/ground/script/c01/s10_鬼差探头.tscn index c53c896b..3b51dd40 100644 --- a/scene/ground/script/c01/s10_鬼差探头.tscn +++ b/scene/ground/script/c01/s10_鬼差探头.tscn @@ -5,7 +5,7 @@ [ext_resource type="Texture2D" uid="uid://bqawq75la061h" path="res://asset/art/scene/c01/s03_旧版序章/ux_鬼差脸gaise.png" id="3_dxjux"] [ext_resource type="Texture2D" uid="uid://bvxa5gejmlk4o" path="res://asset/art/scene/c01/s03_旧版序章/e_柱子有红纹gaise.png" id="4_beln2"] [ext_resource type="AudioStream" uid="uid://cjyodjgrthtm" path="res://asset/audio/sfx/交互/序章/06_公寓楼道_鬼差偷看.wav" id="5_c13qq"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="5_ug335"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="5_ug335"] [ext_resource type="AudioStream" uid="uid://b8rg7adnnkjll" path="res://asset/audio/BGM/戏曲声.wav" id="7_72vl6"] [ext_resource type="AudioStream" uid="uid://bi6gm533oqsa" path="res://asset/audio/BGM/街道背景音.wav" id="8_vputk"] diff --git a/scene/ground/script/c02/s00_煤油灯.gd b/scene/ground/script/c02/s00_煤油灯.gd index 824b2d5e..ca4d5515 100644 --- a/scene/ground/script/c02/s00_煤油灯.gd +++ b/scene/ground/script/c02/s00_煤油灯.gd @@ -127,6 +127,8 @@ func _gaslight_interacted(): else: # 高位 5 号 SceneManager.freeze_player(2.0, 5) - await get_tree().create_timer(1.8).timeout + await get_tree().create_timer(0.8).timeout + sfx_success.play() + await get_tree().create_timer(1.0).timeout _switch_gaslight(true, true) lighted.emit() diff --git a/scene/ground/script/c02/s00_煤油灯.tscn b/scene/ground/script/c02/s00_煤油灯.tscn index b1fb6b44..b2428564 100644 --- a/scene/ground/script/c02/s00_煤油灯.tscn +++ b/scene/ground/script/c02/s00_煤油灯.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=13 format=3 uid="uid://cxw5rovg5mu1a"] +[gd_scene load_steps=14 format=3 uid="uid://cxw5rovg5mu1a"] [ext_resource type="Script" uid="uid://c8vsfqoeu26gk" path="res://scene/ground/script/c02/s00_煤油灯.gd" id="1_0aa53"] [ext_resource type="Texture2D" uid="uid://b3qgmrfslj135" path="res://asset/art/scene/c02/s03_公寓一楼院子/光晕/光晕1.png" id="2_uusov"] @@ -8,7 +8,8 @@ [ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="4_w1aco"] [ext_resource type="Texture2D" uid="uid://xcmvfp72l061" path="res://asset/art/ui/action_mark/UI锁.png" id="5_l338h"] [ext_resource type="Texture2D" uid="uid://gui0ubwlwoi0" path="res://asset/art/ui/action_mark/UI手.png" id="6_ivr1s"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="8_abb1f"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="8_abb1f"] +[ext_resource type="AudioStream" uid="uid://cljr4g0sivpdh" path="res://asset/audio/sfx/交互/sfx_煤油灯点燃成功.wav" id="9_abb1f"] [ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="9_h0ajm"] [ext_resource type="Texture2D" uid="uid://djfn6ya63emu0" path="res://asset/art/scene/c02/s02_大门过道/e_煤油灯座.png" id="10_h0ajm"] @@ -25,7 +26,6 @@ unrevealed_sign_texture = ExtResource("4_abb1f") unmatched_sign_texture = ExtResource("5_l338h") matched_sign_texture = ExtResource("6_ivr1s") mute_when_interacted = true -mute_when_invalid = true prop_key = "prop_火柴" prop_key2 = "" prop_key3 = "" @@ -36,6 +36,7 @@ bus = &"game_sfx" script = ExtResource("8_abb1f") [node name="SfxSuccess" type="AudioStreamPlayer" parent="."] +stream = ExtResource("9_abb1f") bus = &"game_sfx" script = ExtResource("8_abb1f") diff --git a/scene/ground/script/c02/小手讨东西.gd b/scene/ground/script/c02/小手讨东西.gd index 68425d09..6dc4b8b3 100644 --- a/scene/ground/script/c02/小手讨东西.gd +++ b/scene/ground/script/c02/小手讨东西.gd @@ -199,6 +199,7 @@ func _on_interacted() -> void: # accept_tin_coin if key == "prop_锡箔元宝": interacted_success = true + sfx_success.play() SceneManager.disable_prop_item("prop_锡箔元宝") if id == 1: # 叠成纸杯电话 @@ -227,6 +228,7 @@ func _on_interacted() -> void: var pliers_to_ball = ArchiveManager.get_global_value("c02_pliers_to_ball", false) if id == 0 and key == "prop_老虎钳" and pliers_to_ball: interacted_success = true + sfx_success.play() SceneManager.disable_prop_item("prop_老虎钳") animated_sprite.play("小手_老虎钳_hide") SceneManager.pop_debug_dialog_info("美术", "小手_老虎钳_hide + 小手_弹珠_show + 小手_弹珠_idle") @@ -234,6 +236,7 @@ func _on_interacted() -> void: holding_prop = "prop_弹珠" elif id == 0 and key == "prop_弹珠" and not pliers_to_ball: interacted_success = true + sfx_success.play() SceneManager.disable_prop_item("prop_弹珠") animated_sprite.play("小手_弹珠_hide") SceneManager.pop_debug_dialog_info("美术", "小手_弹珠_hide + 小手_老虎钳_show + 小手_老虎钳_idle") @@ -241,7 +244,6 @@ func _on_interacted() -> void: holding_prop = "prop_老虎钳" if interacted_success: - # sfx_success.play() EventManager.prop_interacted(name, key, 1) _reset_sign_testure_to_prop() else: diff --git a/scene/ground/script/c02/小手讨东西.tscn b/scene/ground/script/c02/小手讨东西.tscn index 1d796d86..ec7e8abb 100644 --- a/scene/ground/script/c02/小手讨东西.tscn +++ b/scene/ground/script/c02/小手讨东西.tscn @@ -5,11 +5,11 @@ [ext_resource type="Texture2D" uid="uid://dtyg0nugb2tnf" path="res://asset/art/ui/action_mark/UI探索.png" id="3_lr23o"] [ext_resource type="AudioStream" uid="uid://inmdv5gqqius" path="res://asset/audio/sfx/UI/门锁互动.mp3" id="3_n7thl"] [ext_resource type="Texture2D" uid="uid://xcmvfp72l061" path="res://asset/art/ui/action_mark/UI锁.png" id="4_0tuif"] -[ext_resource type="AudioStream" uid="uid://ccng5y2fip6mc" path="res://asset/audio/sfx/UI/开锁声.mp3" id="4_brfob"] [ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="5_3c204"] [ext_resource type="Texture2D" uid="uid://gui0ubwlwoi0" path="res://asset/art/ui/action_mark/UI手.png" id="5_n2hq3"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="7_7dftu"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="7_7dftu"] [ext_resource type="PackedScene" uid="uid://b50n0hvs4yh75" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn" id="7_brfob"] +[ext_resource type="AudioStream" uid="uid://44slgncnt6sj" path="res://asset/audio/sfx/交互/第一章/sfx_手交互成功.wav" id="8_7dftu"] [ext_resource type="AudioStream" uid="uid://c5d6i2wp8xkay" path="res://asset/audio/sfx/bgm/第一章/童谣合并_FX.wav" id="9_7dftu"] [ext_resource type="SpriteFrames" uid="uid://b6nvwset1hwbv" path="res://asset/art/gif/c02_小手/c02_小手_frames.tres" id="9_yatcw"] [ext_resource type="Texture2D" uid="uid://2mjipesnigcr" path="res://asset/art/prop/c02/锡箔元宝.png" id="10_47cqy"] @@ -33,7 +33,7 @@ script = ExtResource("7_7dftu") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="SfxSuccess" type="AudioStreamPlayer" parent="."] -stream = ExtResource("4_brfob") +stream = ExtResource("8_7dftu") bus = &"game_sfx" script = ExtResource("7_7dftu") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" @@ -59,28 +59,44 @@ animation = &"小手_show" autostart = false action_configs = Array[Dictionary]([{ "animation_intro": &"小手_弹珠_show", -&"animation_next": "小手_弹珠_idle" +&"animation_next": "小手_弹珠_idle", +"animation_wait_time": 0.0, +"intro_loop": 1 }, { "animation_intro": &"小手_纸杯_show", -&"animation_next": "小手_纸杯_idle" +&"animation_next": "小手_纸杯_idle", +"animation_wait_time": 0.0, +"intro_loop": 1 }, { "animation_intro": "小手_老虎钳_show", -&"animation_next": "小手_老虎钳_idle" +&"animation_next": "小手_老虎钳_idle", +"animation_wait_time": 0.0, +"intro_loop": 1 }, { "animation_intro": "小手_锡箔_hide", -&"animation_next": "小手_纸杯_show" +&"animation_next": "小手_纸杯_show", +"animation_wait_time": 0.0, +"intro_loop": 1 }, { "animation_intro": &"小手_老虎钳_hide", -&"animation_next": "小手_弹珠_show" +&"animation_next": "小手_弹珠_show", +"animation_wait_time": 0.0, +"intro_loop": 1 }, { "animation_intro": &"小手_弹珠_hide", -&"animation_next": "小手_老虎钳_show" +&"animation_next": "小手_老虎钳_show", +"animation_wait_time": 0.0, +"intro_loop": 1 }, { "animation_intro": &"小手_锡箔_drop", -&"animation_next": "小手_idle" +&"animation_next": "小手_idle", +"animation_wait_time": 0.0, +"intro_loop": 1 }, { "animation_intro": "小手_show", -&"animation_next": "小手_idle" +&"animation_next": "小手_idle", +"animation_wait_time": 0.0, +"intro_loop": 1 }]) [node name="Sign" parent="." instance=ExtResource("5_3c204")] diff --git a/scene/ground/script/c02/折锡纸.gd b/scene/ground/script/c02/折锡纸.gd index 63590c5f..d9e426f9 100644 --- a/scene/ground/script/c02/折锡纸.gd +++ b/scene/ground/script/c02/折锡纸.gd @@ -38,7 +38,9 @@ func _on_button_pressed() -> void: return elif current_texture == 0: $"遮罩".visible = true + $"Sfx抽纸".play() replace_bg() + $"Sfx折纸".play() current_texture += 1 button.texture_normal = texture_dict[str(current_texture)] button.texture_hover = null diff --git a/scene/ground/script/c02/折锡纸.tscn b/scene/ground/script/c02/折锡纸.tscn index 308b9d36..1759beb4 100644 --- a/scene/ground/script/c02/折锡纸.tscn +++ b/scene/ground/script/c02/折锡纸.tscn @@ -1,8 +1,11 @@ -[gd_scene load_steps=8 format=3 uid="uid://b454ap241bshk"] +[gd_scene load_steps=11 format=3 uid="uid://b454ap241bshk"] [ext_resource type="Script" uid="uid://cb851rw5n6lu3" path="res://scene/ground/script/c02/折锡纸.gd" id="1_7tphw"] +[ext_resource type="AudioStream" uid="uid://byjcmxy5crce5" path="res://asset/audio/sfx/UI/纸条.mp3" id="2_0pjjb"] [ext_resource type="Texture2D" uid="uid://cp8ofa0qmrsch" path="res://asset/art/scene/c02/s04_保卫科/保卫科祭台_before.png" id="2_l0cj4"] [ext_resource type="SpriteFrames" uid="uid://c2sjavnptjn" path="res://asset/art/gif/c02_保卫科/c02_保卫科_frames.tres" id="3_ckoix"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_ftr7c"] +[ext_resource type="AudioStream" uid="uid://bomvnle4oh1ol" path="res://asset/audio/sfx/交互/第一章/sfx_折纸.wav" id="4_g2p6p"] [ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/prop/inspect背景遮罩.png" id="4_qu4ce"] [ext_resource type="Texture2D" uid="uid://bygsskp1cr0y8" path="res://asset/art/scene/c02/s04_保卫科/锡纸.png" id="4_uslgh"] [ext_resource type="Texture2D" uid="uid://dcubpjb5qgfl2" path="res://asset/art/scene/c02/s04_保卫科/锡纸_hover.png" id="5_6lb1j"] @@ -11,6 +14,18 @@ [node name="折锡纸" type="CanvasLayer"] script = ExtResource("1_7tphw") +[node name="Sfx抽纸" type="AudioStreamPlayer" parent="."] +stream = ExtResource("2_0pjjb") +bus = &"game_sfx" +script = ExtResource("3_ftr7c") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + +[node name="Sfx折纸" type="AudioStreamPlayer" parent="."] +stream = ExtResource("4_g2p6p") +bus = &"game_sfx" +script = ExtResource("3_ftr7c") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + [node name="TextureRect" type="TextureRect" parent="."] anchors_preset = 15 anchor_right = 1.0 diff --git a/scene/ground/script/c02/敲门游戏.tscn b/scene/ground/script/c02/敲门游戏.tscn index a537966b..77bb4dbd 100644 --- a/scene/ground/script/c02/敲门游戏.tscn +++ b/scene/ground/script/c02/敲门游戏.tscn @@ -1,21 +1,21 @@ [gd_scene load_steps=7 format=3 uid="uid://bxpexbk7f3rax"] [ext_resource type="Script" uid="uid://chap3ifmyg20c" path="res://scene/ground/script/c02/敲门游戏.gd" id="1_dnsvv"] -[ext_resource type="AudioStream" uid="uid://c0tml2l2726fu" path="res://asset/audio/effect/impact/impactWood_heavy_000.ogg" id="2_trx50"] -[ext_resource type="AudioStream" uid="uid://cx3dugjvb4142" path="res://asset/audio/effect/impact/impactWood_light_001.ogg" id="3_hgfqc"] +[ext_resource type="AudioStream" uid="uid://dw8dprxhvas85" path="res://asset/audio/sfx/交互/第一章/sfx_敲门2.wav" id="2_hgfqc"] [ext_resource type="Texture2D" uid="uid://dkvuc5llqax6d" path="res://asset/art/scene/c02/s03_公寓一楼院子/肉铺门板.png" id="3_n5c57"] +[ext_resource type="AudioStream" uid="uid://7of24bqow07e" path="res://asset/audio/sfx/交互/第一章/sfx_敲门1.wav" id="3_ue6qj"] [ext_resource type="AudioStream" uid="uid://sjanwwtxggtq" path="res://asset/audio/effect/impact/impactWood_medium_002.ogg" id="4_hgfqc"] -[ext_resource type="AudioStream" uid="uid://cv6aivf1jcvd3" path="res://asset/audio/mixkit/mixkit-meat-hit.wav" id="5_hgfqc"] +[ext_resource type="AudioStream" uid="uid://b1kaqn1ewg2ly" path="res://asset/audio/sfx/交互/第一章/sfx_肉落下.wav" id="5_t58cl"] [node name="敲门游戏" type="CanvasLayer"] script = ExtResource("1_dnsvv") [node name="KnockHeavy" type="AudioStreamPlayer" parent="."] -stream = ExtResource("2_trx50") +stream = ExtResource("2_hgfqc") bus = &"game_sfx" [node name="KnockLight" type="AudioStreamPlayer" parent="."] -stream = ExtResource("3_hgfqc") +stream = ExtResource("3_ue6qj") bus = &"game_sfx" [node name="KnockWrong" type="AudioStreamPlayer" parent="."] @@ -23,7 +23,7 @@ stream = ExtResource("4_hgfqc") bus = &"game_sfx" [node name="DropMeat" type="AudioStreamPlayer" parent="."] -stream = ExtResource("5_hgfqc") +stream = ExtResource("5_t58cl") bus = &"game_sfx" [node name="TextureButton" type="TextureButton" parent="."] diff --git a/scene/ground/script/c02/裂缝坍塌.gd b/scene/ground/script/c02/裂缝坍塌.gd index f8fac9dc..8cc25727 100644 --- a/scene/ground/script/c02/裂缝坍塌.gd +++ b/scene/ground/script/c02/裂缝坍塌.gd @@ -1,11 +1,13 @@ extends AnimatedSprite2D +@export var play_sfx := false + func _ready() -> void: $Area2D.body_entered.connect(_on_area_entered) func _on_area_entered(_body): - if get_parent().is_node_ready(): + if get_parent().is_node_ready() and play_sfx: $"Sfx坍塌".play() play() diff --git a/scene/ground/script/c02/裂缝坍塌.tscn b/scene/ground/script/c02/裂缝坍塌.tscn index a2e97603..c37106de 100644 --- a/scene/ground/script/c02/裂缝坍塌.tscn +++ b/scene/ground/script/c02/裂缝坍塌.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=5 format=3 uid="uid://cl64mhryf4wkx"] +[gd_scene load_steps=6 format=3 uid="uid://cl64mhryf4wkx"] [ext_resource type="SpriteFrames" uid="uid://ckpe1xevbgr6h" path="res://asset/art/gif/c02_裂缝过道/c02_裂缝过道_frames.tres" id="1_5qtbw"] [ext_resource type="Script" uid="uid://bibfu8acvmifc" path="res://scene/ground/script/c02/裂缝坍塌.gd" id="2_ctxbt"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="3_fbmk8"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_fbmk8"] +[ext_resource type="AudioStream" uid="uid://d0w4nxwj126pf" path="res://asset/audio/sfx/交互/第一章/sfx_坍塌.wav" id="3_sn20u"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_sn20u"] size = Vector2(300, 20) @@ -13,6 +14,7 @@ animation = &"石头下坠" script = ExtResource("2_ctxbt") [node name="Sfx坍塌" type="AudioStreamPlayer" parent="."] +stream = ExtResource("3_sn20u") bus = &"game_sfx" script = ExtResource("3_fbmk8") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" diff --git a/scene/index_page.tscn b/scene/index_page.tscn index adad3162..cc9f8eec 100644 --- a/scene/index_page.tscn +++ b/scene/index_page.tscn @@ -3,7 +3,7 @@ [ext_resource type="Script" uid="uid://b4rw4hk7ns4m8" path="res://scene/index_page.gd" id="1_c7y7r"] [ext_resource type="Texture2D" uid="uid://bcc0bk34l5gbc" path="res://asset/art/ui/index_menu/菜单背景1.png" id="1_jxn4k"] [ext_resource type="AudioStream" uid="uid://cvttds81trcoc" path="res://asset/audio/sfx/UI/click.wav" id="2_te6ya"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="3_5oc6i"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_5oc6i"] [ext_resource type="PackedScene" uid="uid://beok2r6fgburn" path="res://scene/settings/settings.tscn" id="4_5m37n"] [sub_resource type="Animation" id="Animation_8kiap"] diff --git a/scene/little_game/书架/书架.tscn b/scene/little_game/书架/书架.tscn index 9d4c48e4..8b71fa8d 100644 --- a/scene/little_game/书架/书架.tscn +++ b/scene/little_game/书架/书架.tscn @@ -2,7 +2,7 @@ [ext_resource type="Script" uid="uid://b7iavnqno6e3s" path="res://scene/little_game/书架/书架.gd" id="1_8af23"] [ext_resource type="AudioStream" uid="uid://6v8oqjaj01nj" path="res://asset/audio/sfx/交互/序章/04_书店内_书本掉落.wav" id="2_c6xiu"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="3_5brf2"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_5brf2"] [ext_resource type="AudioStream" uid="uid://duxo1jopqqf0q" path="res://asset/audio/sfx/交互/序章/04_书店内_移动书本.wav" id="3_c6xiu"] [ext_resource type="AudioStream" uid="uid://d1bto7ggjf76k" path="res://asset/audio/sfx/交互/序章/04_书店内_扶正书本.wav" id="3_o6bsw"] [ext_resource type="AudioStream" uid="uid://gxoubqjqpuks" path="res://asset/audio/sfx/交互/序章/04_书店内_点击书本.wav" id="3_pfav2"] diff --git a/scene/little_game/书架/生死簿.tscn b/scene/little_game/书架/生死簿.tscn index 18d66e4a..46e6f047 100644 --- a/scene/little_game/书架/生死簿.tscn +++ b/scene/little_game/书架/生死簿.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=45 format=3 uid="uid://bl5pohc77hi43"] [ext_resource type="Script" uid="uid://cyyku6caspu01" path="res://scene/little_game/书架/生死簿.gd" id="1_wipr2"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="3_40hbj"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_40hbj"] [ext_resource type="AudioStream" uid="uid://b283udh1xm7bw" path="res://asset/audio/sfx/交互/序章/04_书店内_生死簿翻页.wav" id="3_adstd"] [ext_resource type="Script" uid="uid://cowyllqinju6n" path="res://scene/little_game/书架/陆小蝶名字.gd" id="4_dssaj"] [ext_resource type="Texture2D" uid="uid://ci1iuxsvpy6qn" path="res://asset/art/little_game/书架_生死簿/生死簿摊开特写 书底.png" id="4_ghblq"] diff --git a/scene/little_game/弹珠游戏/弹珠游戏.tscn b/scene/little_game/弹珠游戏/弹珠游戏.tscn index a08d5de6..43e08e5c 100644 --- a/scene/little_game/弹珠游戏/弹珠游戏.tscn +++ b/scene/little_game/弹珠游戏/弹珠游戏.tscn @@ -6,7 +6,7 @@ [ext_resource type="AudioStream" uid="uid://bb6njoaxi2hbx" path="res://asset/audio/sfx/game/弹珠游戏/hit.ogg" id="3_co06r"] [ext_resource type="FontVariation" uid="uid://1ryw42kej6lv" path="res://config/font_ui.tres" id="3_ctokx"] [ext_resource type="PackedScene" uid="uid://bbcfjksjlyfx5" path="res://scene/little_game/弹珠游戏/ball.tscn" id="4_bm1k0"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="4_co06r"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_co06r"] [ext_resource type="Texture2D" uid="uid://btplp6xvmc6sx" path="res://asset/art/little_game/弹珠/手屈伸/0.png" id="4_fk3jp"] [ext_resource type="Texture2D" uid="uid://cny2ovcg2ry7c" path="res://asset/art/little_game/弹珠/瞄准线.png" id="4_plt4v"] [ext_resource type="AudioStream" uid="uid://dcef4son60cs7" path="res://asset/audio/sfx/game/弹珠游戏/drop.ogg" id="5_co06r"] diff --git a/scene/little_game/拼凑信件.tscn b/scene/little_game/拼凑信件.tscn index e9bdaf9a..7955d4b6 100644 --- a/scene/little_game/拼凑信件.tscn +++ b/scene/little_game/拼凑信件.tscn @@ -3,7 +3,7 @@ [ext_resource type="Script" uid="uid://b1t12jgy6whsc" path="res://scene/little_game/拼凑信件.gd" id="1_cifku"] [ext_resource type="Texture2D" uid="uid://c2y4mpkygrmaf" path="res://asset/art/little_game/拼凑信件/桌面.png" id="2_0fxwt"] [ext_resource type="AudioStream" uid="uid://cxs1p014bq3bn" path="res://asset/audio/sfx/交互/序章/04_书店内_旋转信纸.wav" id="3_eph5y"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="3_ifhby"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_ifhby"] [ext_resource type="Texture2D" uid="uid://duxdnw1uhlpm5" path="res://asset/art/little_game/拼凑信件/信件碎片.png" id="3_mjf3s"] [sub_resource type="AtlasTexture" id="AtlasTexture_4e0jv"] diff --git a/scene/little_game/旋转锁.tscn b/scene/little_game/旋转锁.tscn index 4635358b..07b79279 100644 --- a/scene/little_game/旋转锁.tscn +++ b/scene/little_game/旋转锁.tscn @@ -12,7 +12,7 @@ [ext_resource type="Texture2D" uid="uid://b1car0t5b7pg6" path="res://asset/art/little_game/旋转锁/钥匙.png" id="9_2tu7h"] [ext_resource type="AudioStream" uid="uid://bqaxy1emtbc04" path="res://asset/audio/sfx/game/旋转锁/转轮声.mp3" id="10_4iyuf"] [ext_resource type="AudioStream" uid="uid://1khahqvfjckk" path="res://asset/audio/sfx/game/旋转锁/插销声.mp3" id="11_h2ycu"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="12_a8doy"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="12_a8doy"] [ext_resource type="AudioStream" uid="uid://inmdv5gqqius" path="res://asset/audio/sfx/UI/门锁互动.mp3" id="14_owvcm"] [node name="旋转锁" type="Control"] diff --git a/scene/player/main_player.tscn b/scene/player/main_player.tscn index af1b48fa..0c22dd5e 100644 --- a/scene/player/main_player.tscn +++ b/scene/player/main_player.tscn @@ -54,7 +54,7 @@ texture = SubResource("GradientTexture2D_gk3xo") height = 10.0 [node name="CattyPointLight2D" type="PointLight2D" parent="."] -position = Vector2(0, -53) +position = Vector2(0, -60) energy = 0.0 range_item_cull_mask = 15 shadow_enabled = true diff --git a/scene/player/player_animation_config.gd b/scene/player/player_animation_config.gd index b93867cb..a1c348e5 100644 --- a/scene/player/player_animation_config.gd +++ b/scene/player/player_animation_config.gd @@ -148,7 +148,7 @@ var ANIMATION_CONFIG = { "can_run": true, "speed_runnig": 100.0, "walk_footstep": 0.5, - "run_footstep": 7.0 / 10.0 / 2.0, + "run_footstep": 7.0 / 9.0 / 2.0, "os_height": 70.0, "light_height": 20.0, # 如果使用 auto,就会自动以最低点为基准 diff --git a/scene/prop/prop_hud.tscn b/scene/prop/prop_hud.tscn index ce72daa4..08151fb2 100644 --- a/scene/prop/prop_hud.tscn +++ b/scene/prop/prop_hud.tscn @@ -4,7 +4,7 @@ [ext_resource type="Texture2D" uid="uid://dok08tovej18w" path="res://asset/art/ui/hud/normal_left.png" id="2_bjc2b"] [ext_resource type="AudioStream" uid="uid://cvttds81trcoc" path="res://asset/audio/sfx/UI/click.wav" id="2_lom38"] [ext_resource type="AudioStream" uid="uid://bjh1761jeu3hy" path="res://asset/audio/sfx/交互/通用发现音效.wav" id="3_bn186"] -[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/general/sfx.gd" id="3_d7vso"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_d7vso"] [ext_resource type="Texture2D" uid="uid://c45k7ncg6xhpv" path="res://asset/art/ui/hud/pressed_left.png" id="3_fca7p"] [ext_resource type="Texture2D" uid="uid://c2jq2neda32ix" path="res://asset/art/ui/hud/Prop.png" id="5_6tt77"] [ext_resource type="Texture2D" uid="uid://0uwun1mo726u" path="res://asset/art/prop/c02/绳子物品.png" id="6_0m706"] diff --git a/scene/settings/settings.gd b/scene/settings/settings.gd index 9036bde9..616c1572 100644 --- a/scene/settings/settings.gd +++ b/scene/settings/settings.gd @@ -58,9 +58,11 @@ func _ready(): func _on_visibility_changed() -> void: if visible: + $"Sfx打开".play() get_tree().paused = true SceneManager.lock_player() else: + $"Sfx关闭".play() get_tree().paused = false SceneManager.unlock_player() diff --git a/scene/settings/settings.tscn b/scene/settings/settings.tscn index 55d5414d..6bd08db8 100644 --- a/scene/settings/settings.tscn +++ b/scene/settings/settings.tscn @@ -1,12 +1,29 @@ -[gd_scene load_steps=2 format=3 uid="uid://beok2r6fgburn"] +[gd_scene load_steps=5 format=3 uid="uid://beok2r6fgburn"] [ext_resource type="Script" uid="uid://ciloxu1k8a1ll" path="res://scene/settings/settings.gd" id="1_7u4nq"] +[ext_resource type="AudioStream" uid="uid://dlt4nv6qjhlpy" path="res://asset/audio/sfx/交互/sfx_打开设置.wav" id="2_6hxkf"] +[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_kn03d"] +[ext_resource type="AudioStream" uid="uid://cmi6fd68s1ukb" path="res://asset/audio/sfx/交互/sfx_关闭设置.wav" id="4_n2b1f"] [node name="Settings" type="CanvasLayer"] process_mode = 3 layer = 30 script = ExtResource("1_7u4nq") +[node name="Sfx打开" type="AudioStreamPlayer" parent="."] +stream = ExtResource("2_6hxkf") +volume_db = -5.0 +bus = &"game_sfx" +script = ExtResource("3_kn03d") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + +[node name="Sfx关闭" type="AudioStreamPlayer" parent="."] +stream = ExtResource("4_n2b1f") +volume_db = -5.0 +bus = &"game_sfx" +script = ExtResource("3_kn03d") +metadata/_custom_type_script = "uid://rq6w1vuhuq1m" + [node name="PanelContainer" type="PanelContainer" parent="."] anchors_preset = 8 anchor_left = 0.5