オーディオバス設定用スクリプト

サンプルオブジェクト.zip (5.8 KB)
音量調節必須スクリプト.zip (5.0 KB)
音量調節サンプルプロジェクト.zip (222.6 KB)

AudioBusControlButton 利用マニュアル

AudioBusControlButton は、押下時に AutoLoad の AudioBusSettings を呼び出し、指定した AudioServer のバスに対して、音量の段階切替、音量の増減、ミュート切替を行う Button です。
保存は AudioBusSettings が user://audio_settings.cfg に行い、次回起動時に復元されます。

導入

  1. AudioBusSettings のシーンを作成します

    1. 新規シーンを作成します
    2. ルートノードを Node にします
    3. ルートノードに AudioBusSettings.gd をアタッチします
    4. 例として res://autoload/AudioBusSettings.tscn で保存します
  2. 作成したシーンを AutoLoad に登録します

    1. Project Settings を開きます
    2. AutoLoad を開きます
    3. Path に res://autoload/AudioBusSettings.tscn を指定します
    4. Name に AutoLoad 名を設定します
      AudioBus
    5. Add を押して登録します
  3. AudioBusSettings の export 設定はシーン側で行います

    1. AudioBusSettings.tscn を開きます
    2. ルートノードの Inspector で設定します
      config_pathuser://audio_settings.cfg (変更不要です)
      config_sectionaudio
      include_master Master を対象に含めるかどうか
      exposed_buses 空なら全バス、指定すると指定名のみ対象
      volume_levels 段階切替の線形候補 0.0 から 1.0
      min_db 線形 0 近傍をdB に変換する下限
  4. AudioBusControlButton を配置します

    1. シーンに Button ノードを追加します
    2. Button に AudioBusControlButton.gd をアタッチします
    3. Inspector で設定します
      autoload_name AutoLoad の Name と一致させます 例 AudioBus
      refresh_bus_list 一度だけ ON にして候補更新後 OFF に戻します
      target_bus_name 操作対象バスをプルダウンから選択します(プルダウンが更新されない場合プロジェクトを保存後再度開いてください)
      mode 押下時の動作を選択します

最小構成

段階切替として使用する最小構成です。

  1. modeCYCLE_LEVELS に設定します
  2. cycle_levels_percent は空のままにします
    空の場合は AudioBusSettings.volume_levels を使用します
  3. 実行してボタンを押します
    音量が候補の次へ切り替わり、最後の次は先頭へ戻ります
  4. 終了して再実行します
    保存が有効な場合、前回の設定が復元されます

設定の要点

mode

  • CYCLE_LEVELS 現在値に最も近い候補を探し、その次の候補へ切り替えます
  • MUTE_TOGGLE ミュートを反転します
  • VOLUME_UP step_percent_points 分だけ線形音量を増やします
  • VOLUME_DOWN step_percent_points 分だけ線形音量を減らします

cycle_levels_percent

  • CYCLE_LEVELS 用の候補をパーセントで指定します
  • 0, 25, 50, 75, 100
  • 空の場合は AudioBusSettings.volume_levels を使用します

step_percent_points

  • VOLUME_UPVOLUME_DOWN の増減量です

表示

  • auto_label が true の場合 text を自動更新します 固定したい場合は false にします
  • label_prefix は先頭文字列です 空ならバス名が先頭になります
「いいね!」 1