【技術共有】簡単なコードで音量調整とミュート機能を実現

1dd9fd6f2905c424bf590f64671c1439

ステップ1:

クリック可能な2つのボタンノードと、音量を表す球を作成します。

ステップ2:

親ノードを作成し、2つのボタンが「クリック」された際にこのスクリプトにシグナルを送信するように設定します。

ステップ3:

音楽再生ノードを作成し、音楽素材を読み込んで「BGM」バスに割り当てます。(【自動再生】と【ループ】をチェックしてください)

ステップ4: 親ノードにスクリプトを記述します。

(1)BGMバスのインデックスを取得するための変数を宣言します。

var BGM = AudioServer.get_bus_index(“BGM”)

(2)音量を制御するためのグローバル変数「音楽音量」を設定します。

(3)毎フレームこの音量変数を読み取り、各数値に対応する音量を設定します。(ここでは9段階に設定しています)

func _process(_delta: float) → void:
var 音楽音量 = AGMakerManager.get_project_database_variable(“音楽音量”)
if 音楽音量 == 0 :
AudioServer.set_bus_volume_db(BGM,-80.0)
$“音楽/音楽球”.position = Vector2(-100,-184)
if 音楽音量 == 1 :
AudioServer.set_bus_volume_db(BGM,-50.0)
$“音楽/音楽球”.position = Vector2(-80,-184)

ステップ5:

シグナルを送信するスクリプト内で、【音楽音量】グローバル変数の値を増減させて音量を調整します。

func _on_音楽大_pressed() → void:
var 音楽音量 = AGMakerManager.get_project_database_variable(“音楽音量”)
if 音楽音量 < 8 :
音楽音量 += 1
AGMakerManager.update_project_database_variable(“音楽音量”,音楽音量)

func _on_音楽小_pressed() → void:
var 音楽音量 = AGMakerManager.get_project_database_variable(“音楽音量”)
if 音楽音量 > 0 :
音楽音量 -= 1
AGMakerManager.update_project_database_variable(“音楽音量”,音楽音量)

【完了!!!】

「いいね!」 5

とても良い共有ですね!自分のコレクションに追加しました!

「いいね!」 1

【サイレンス機能の追加】

ステップ1:

サイレンスボタンを作成し、「pressed」シグナルを使ってマスターノードスクリプトにシグナルを送信します。

ステップ2:

グローバルな【音楽スイッチ】を設定し、音量のオン/オフを制御します。(デフォルトはオン)

ステップ3:マスターノードでサイレンス制御スクリプトを記述します

(1)サイレンスボタンのpressedシグナルスクリプト内で、グローバルスイッチ変数を制御します。

func _on_音楽スイッチオフ_pressed() → void:
var 音楽スイッチ = AGMakerManager.get_project_database_switch(“音楽スイッチ”)
if 音楽スイッチ == true :
AGMakerManager.update_project_database_switch(“音楽スイッチ”,false)
else :
AGMakerManager.update_project_database_switch(“音楽スイッチ”,true)

(2)フレームごとの検出を使用して【音楽スイッチ】を検出し、サイレンスのオン/オフを制御します。

func _process(_delta: float) → void:

#音楽サイレンス制御
var 音楽スイッチ = AGMakerManager.get_project_database_switch(“音楽スイッチ”)
if 音楽スイッチ == true :
#サイレンス解除
AudioServer.set_bus_mute(BGM,false)
if 音楽スイッチ == false :
#サイレンス有効化
AudioServer.set_bus_mute(BGM,true)

【完了!!!】