2026-10-06

Godotのオーディオバスの設定が便利。手っ取り早くミュートと音量調整の関数を実現できる

BGMとSEのオーディオバスを追加したところ

オーディオバス — Godot Engine (4.x)の日本語のドキュメント
https://docs.godotengine.org/ja/4.x/tutorials/audio/audio_buses.html

公式ドキュメントにもちゃんと書いてある設定なのですが、Godotのエディターの一番下に表示されている「オーディオ」タブを選択すると、ゲーム内の音声の出力方法を制御できます。

といってもカジュアルなゲームでやりたいことは「ミュートを切り替える」「BGMとSEでボリュームを分ける」の2点です。

「バスを追加」ボタンを押すとMasterバスの隣に新しいバスが追加されるので、1番目の名前を「BGM」、2番目の名前を「SE」にします。他の設定はいじりません。

GDScriptからオーディオバスを使って音声を調整する際は、まず、オーディオバスのインデックスを取得しておく必要があります。

var master_bus_index := AudioServer.get_bus_index("Master")
var bgm_bus_index := AudioServer.get_bus_index("BGM")
var se_bus_index := AudioServer.get_bus_index("SE")

ミュートの切り替えやボリュームの調整は、以下のような関数を作って他のスクリプトから利用できるようにすると便利です。

func is_audio_enabled() -> bool:
    return not AudioServer.is_bus_mute(master_bus_index)


func set_audio_enabled(enabled: bool) -> void:
    AudioServer.set_bus_mute(master_bus_index, not enabled)


func set_bgm_volume(volume: float) -> void:
    AudioServer.set_bus_volume_db(bgm_bus_index, linear_to_db(volume / 100.0))


func set_se_volume(volume: float) -> void:
    AudioServer.set_bus_volume_db(se_bus_index, linear_to_db(volume / 100.0))

0 件のコメント:

コメントを投稿