Godot入門:AudioStreamPlayerの使い方と活用法

はじめに

ゲームは画像だけでなく、音があるからこそ生き生きと感じます。背景音楽、効果音、ボイス…こうした「音」を再生・管理するのがAudioStreamPlayerです。

Godot 4では複数の音再生ノードが用意されており、用途に応じて使い分けます。

この記事では以下を学べます:

  • AudioStreamPlayerの基本的な使い方
  • BGM・効果音の再生方法
  • オーディオバスによる一括制御
  • AudioStreamPlayer2D / 3D との違い




AudioStreamPlayerノードの配置
AudioStreamPlayerで音声ストリームを再生・管理

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("効果音再生完了")
	# 必要に応じて次の処理を実行
	# 例:ゲームオーバー音再生後にメニューへ遷移




AudioStreamPlayerのプロパティ設定
インスペクターで音声ファイルと再生パラメーターを設定

もっと使いこなす:カスタマイズできるパラメータ

パラメータ 設定値の例 用途
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をもとに執筆しています。

コメント