40 lines
1.4 KiB
GDScript
40 lines
1.4 KiB
GDScript
@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
|
||
|
||
# 点缀音效列表。可以从库中拖入预设好的 Embellishment.tres 资源。
|
||
# 你也可以直接在这里新建 Embellishment 资源,实现“特制wav”的需求。
|
||
@export var embellishments: Array[Embellishment]
|
||
|
||
|
||
# func _init() -> void:
|
||
# if not Engine.is_editor_hint():
|
||
# return
|
||
# var root = EditorInterface.get_edited_scene_root()
|
||
# if not root:
|
||
# return
|
||
# var ground = root.get_node_or_null("Ground") as Ground2D
|
||
# if not ground:
|
||
# return
|
||
# var scene_name = ground.scene_name
|
||
# # 检查 group_name 是否以 scene_name 开头
|
||
# if not group_name.begins_with(scene_name):
|
||
# group_name = scene_name + "_" + group_name
|
||
# print("VibeGroup: Auto-prefixed group_name to %s" % group_name)
|