はじめに
ゲームは画像だけでなく、音があるからこそ生き生きと感じます。背景音楽、効果音、ボイス…こうした「音」を再生・管理するのがAudioStreamPlayerです。
Godot 4では複数の音再生ノードが用意されており、用途に応じて使い分けます。
この記事では以下を学べます:
- AudioStreamPlayerの基本的な使い方
- BGM・効果音の再生方法
- オーディオバスによる一括制御
- AudioStreamPlayer2D / 3D との違い

AudioStreamPlayerとは?
AudioStreamPlayerは、位置に関係なく音を再生するノードです。
BGM(背景音楽)やUI効果音のように、「どこから聞こえるか」を気にせず、全体に聞こえるべき音を再生するのに適しています。
継承ツリー:
AudioStreamPlayer
↑
Node
↑
Object
Godot 4のオーディオノード三種類:
- AudioStreamPlayer:位置なし(BGM・全体効果音)
- AudioStreamPlayer2D:2D平面上での位置(2Dゲームの環境音)
- AudioStreamPlayer3D:3D空間での位置(3Dゲームの3D音響)
このノードを使うべき場面
使う場面:
- ゲームのBGM(背景音楽)
- UI操作音(ボタンクリック音など)
- 全画面に聞こえるべき効果音(ゲームオーバー音、ステージクリア音)
- ナレーション・ボイスオーバー
- 音声ファイルの時間軸制御が必要な場合
使わない場面:
- 敵や爆発音など、位置が重要な効果音 → AudioStreamPlayer2Dを使う
- 3Dゲーム内の立体音響 → AudioStreamPlayer3Dを使う
主なプロパティと機能
| プロパティ/メソッド | 型・戻り値 | 説明 |
|---|---|---|
stream |
AudioStream | 再生する音声ファイル(.mp3, .ogg, .wav など) |
volume_db |
float | 音量(デシベル)。0dBで通常、-80dBで無音、+10dBで2倍音量 |
pitch_scale |
float | 音程・再生速度(1.0が通常、0.5で半速、2.0で2倍速) |
bus |
StringName | どのオーディオバスに接続するか(”Master”, “BGM”, “SE” など) |
autoplay |
bool | ノード初期化時に自動再生するか |
play(from_position) |
void | 音声を再生開始。from_positionで開始時刻を指定可能 |
stop() |
void | 音声を停止 |
is_playing() |
bool | 現在再生中かどうか |
finished |
Signal | 音声再生終了時に発火するシグナル |
コード例1:BGMの再生・停止
extends Node
@onready var bgm_player = $AudioStreamPlayer
func _ready():
# streamはインスペクターから割り当てるか、スクリプトで指定
# bgm_player.stream = load("res://assets/audio/bgm.ogg")
bgm_player.play()
func pause_bgm():
if bgm_player.is_playing():
bgm_player.stop()
func resume_bgm():
if not bgm_player.is_playing():
bgm_player.play()
func change_bgm_volume(db: float):
bgm_player.volume_db = db
コード例2:効果音の再生と連続処理
extends Control
@onready var se_player = $AudioStreamPlayer
func _ready():
# 再生終了シグナルに接続
se_player.finished.connect(_on_se_finished)
func play_button_sound():
se_player.stream = load("res://assets/audio/button_click.ogg")
se_player.volume_db = -5
se_player.play()
func _on_se_finished() -> void:
print("効果音再生完了")
# 必要に応じて次の処理を実行
# 例:ゲームオーバー音再生後にメニューへ遷移

もっと使いこなす:カスタマイズできるパラメータ
| パラメータ | 設定値の例 | 用途 |
|---|---|---|
volume_db |
0, -10, -40 |
BGMは -5〜-10dB(少し小さめ)、効果音は 0dB(標準) |
pitch_scale |
1.0, 0.8, 1.2 |
スローモーション (0.8) や高速化 (1.2) の実装 |
bus |
"BGM", "SE", "Voice" |
オーディオバスを使い、ジャンル別に一括制御 |
autoplay |
true / false |
ノード初期化時に自動再生するかどうか |
play(from_position) |
play(0.0), play(5.0) |
曲の途中から再生開始(秒数指定) |
まとめ
一言要約:AudioStreamPlayerは、位置に関係なく音を再生するノードで、BGMや全体効果音の実装に必須です。
ポイント:
streamにオーディオファイルを割り当て、play()で再生開始volume_dbで音量調整、pitch_scaleで再生速度を制御busを使ってオーディオバスに接続し、複数の音を一括制御できる
次回予告:次はAudioStreamPlayer2Dを解説します。2Dゲーム内で、位置に応じた環境音の実装方法が分かります。
シリーズ:Godot 4 ノード解説
- 001-040: 基本ノード(準備中)
- 041:StaticBody2D
- 042:TileMapLayer
- 043:AnimationPlayer
- 044:AnimationTree
- 045:AudioStreamPlayer
- 046:AudioStreamPlayer2D
- 047:GPUParticles2D
- 048:CPUParticles2D
- 049:Line2D
- 050:CanvasLayer
この記事はGodot 4.xをもとに執筆しています。


コメント