godot4.xの覚書です。
Playerノード
以下、geminiによる解説
Godot 4で音楽(BGM)や効果音(SE)を実装する際は、用途に合わせて3種類のオーディオノードとファイル形式を使い分けるのが基本です。
特にGodot 4.3以降では、音楽のループや同期機能が大幅に強化されています。
1. 適切なノードの選択
ノード名 特徴・用途 AudioStreamPlayer BGM・UI音向け。 画面上の位置に関係なく、常に一定の音量で再生されます。 AudioStreamPlayer2D 2Dゲームの環境音向け。 プレイヤーとの距離や位置(左右)によって音量やパンが変化します。 AudioStreamPlayer3D 3Dゲームの環境音向け。 3D空間内での距離減衰やドップラー効果が適用されます。 再生したい音の性質に合わせて、以下の3つのノードから選びます。
Godot 4で音楽(BGM)や効果音(SE)を実装する際は、用途に合わせて3種類のオーディオノードとファイル形式を使い分けるのが基本です。
特にGodot 4.3以降では、音楽のループや同期機能が大幅に強化されています。
1. 適切なノードの選択
再生したい音の性質に合わせて、以下の3つのノードから選びます。
ノード名 特徴・用途 AudioStreamPlayer BGM・UI音向け。 画面上の位置に関係なく、常に一定の音量で再生されます。 AudioStreamPlayer2D 2Dゲームの環境音向け。 プレイヤーとの距離や位置(左右)によって音量やパンが変化します。 AudioStreamPlayer3D 3Dゲームの環境音向け。 3D空間内での距離減衰やドップラー効果が適用されます。
2. 推奨されるファイル形式
メモリ効率と音質のバランスを考えることが重要です。
- BGM:
.oggまたは.mp3
- 圧縮されているためファイルサイズが小さく、長い曲に適しています。
- Godot 4では
.oggの方がループ処理との相性が良く推奨されることが多いです。- SE (効果音):
.wav
- 非圧縮(または低圧縮)で再生時のCPU負荷が低いため、頻繁に鳴らす音に適しています。
3. シーンを跨いでも音楽を止めない方法(Autoload)
ゲームのシーン(ステージ)を切り替えてもBGMを流し続けたい場合は、**「Autoload(シングルトン)」**を利用します。
- 新しいシーン(
MusicPlayer.tscnなど)を作成し、AudioStreamPlayerを追加。- スクリプトを作成し、
play_music(path)のような関数を用意。- [プロジェクト設定] > [グローバル] > [Autoload] にそのシーンを登録。
- コードから
MusicPlayer.play_music("res://bgm.ogg")のように呼び出す。
4. Godot 4.3からの新機能:高度な音楽管理
Godot 4.3からは、インポート設定の「Advanced」から、音楽にBPM(テンポ)やビート数を設定できるようになりました。これにより、音楽の節目で正確にループさせたり、リズムに合わせてゲームイベントを発生させたりすることが容易になっています。
geminiより
SE
サウンドエフェクトを設定します。
爆発のエフェクトとセットにするため、元のデータをL014とします。
変更箇所は以下です。
effect1.gd
extends Area2D
## 爆発シーンを読み込む
const ExpObj = preload("res://exp.tscn")
func _ready() -> void:
position = Vector2(100, 100)
scale = Vector2(5,5) #サイズ
$AudioStreamPlayer2D.volume_db = 10.0206 #追加 音量の設定
func _on_input_event(viewport, event, shape_idx):
if event is InputEventMouseButton:
if event.is_pressed():
var explosion = ExpObj.instantiate()
#位置移動
explosion.position = position
# ルートノードに爆発オブジェクトを登録する
get_tree().root.add_child(explosion)
#削除
#queue_free()
#追加
$AudioStreamPlayer2D.play()
#await $AudioStreamPlayer2D.finished
#await get_tree().create_timer(1.5).timeout
GitHub - WOCae/L014_effect at r1_SE
Contribute to WOCae/L014_effect development by creating an account on GitHub.
コメント