Godot4 コインや宝石が出たときに効果音とBGMを再生する

2D / 3D ゲームを作成できる無料・オープンソースの軽快なゲームエンジン「Godot Engine 4」で、BGM を常にループ再生するための手順を紹介します。

※この記事の内容は、アプリ タップ The 宝箱 の開発でも使用しています。
※ GodotEngine のバージョンは 4.1.2 です。 .NET 版ではありません

※「いらすとや」様の画像を使用しています。
※「ふい字」フォントを使用しています。

※「魔王魂」様のサウンドを動画内で使用しています。
※「無料効果音で遊ぼう!」様のサウンドを動画内で使用しています。

※記事で紹介するスクリプト / プログラム / コードは自己責任で使用してください。

前回の記事

前回は、動的に作成したコインや宝石の画像を表示するノードの表示順を設定する2つの方法を紹介して、宝石の方が常に手前に表示されるようにしました。

サウンドファイルのプロジェクトへの追加

ファイルシステムドックで sound フォルダを作成して、それを選択した状態でそこにエクスプローラのBGM 用のサウンドファイルをドラッグ&ドロップしてプロジェクトに追加します。

追加した BGM 用のサウンドファイルは以下です。

Godot4 TapTheTakarabako サウンドファイル群をファイルシステムドックに作成したsoundフォルダにD&Dして追加します.

AudioStreamPlayer2D ノードの作成と Stream 音源の設定

メインのシーンでルートノードを右クリックして表示されるメニュー「子ノードを追加」を選択します。
「Node を新規作成」ダイアログで AudioStreamPlayer2D を選択して「作成」ボタンを押します。
※今回は 2D のゲームなので AudioStreamPlayer2D を選択しましたが、以前に AudioStreamPlayer でも 2D ゲームを作成したのでそちらでも問題ないと思います。

Godot4 TapTheTakarabako メインシーンに子ノードとしてBGMを再生する AudioStreamPlayer2D ノードを作成します.

作成したノードを BGM にリネームして選択した状態で、インスペクタードックの Stream プロパティに、先ほど追加した BGM 用のサウンドファイルファイルシステムドックからドラッグ&ドロップで設定します。

Godot4 TapTheTakarabako BGMを再生するAudioStreamPlayer2DノードのStreamプロパティにサウンドファイルをD&Dします

BGM のループ設定

追加したサウンドファイルのインポート時の設定でループ再生をするかどうかを決められます。
既定ではループしない設定なので、変更したい場合はファイルシステムドックのそのサウンドファイルをダブルクリックします。
「オーディオストリームインポーター」ダイアログでループの「有効」にチェックを入れて「再インポート」ボタンを押すと、それを AudioStreamPlayer2D で再生するときに自動的にループ再生されます。

Godot4 ループ再生の設定はサウンドファイルを選択してインポートドックでも行えます.

ファイルシステムドックでサウンドファイルを選択した状態で、インポートドックを開いても同様に設定をしたり確認ができます。

Godot4 ループ再生の設定はサウンドファイルを選択してインポートドックでも行えます.

GD スクリプトから AudioStreamPlayer2D ノードの音楽を再生

先ほど BGM (AudioStreamPlayer2D クラス) ノードを配置したシーンのルートノードなどに割り当てた GD スクリプトで以下のように _ready イベント関数内で BGM を再生する文を入力すると、ゲーム開始時に Stream プロパティに割り当てた BGM が再生されます。

$名前で、シーンに配置したその名前のノードにアクセスして、 AudioStreamPlayer2D の Stream を再生する関数 play を呼び出しています。
_ready はそのノードがシーンに配置された直後に呼び出されるイベント関数なので、メインのシーンの場合は、メインのシーンが再生された直後に呼び出されます

# Called when the node enters the scene tree for the first time.
func _ready():
	# BGM を再生します。
	$BGM.play()
	return

テスト

F6 キーメインのシーンを再生すると BGM が再生されました。
※数分聞いてループ再生も確認しました。

まとめ

今回は、2D / 3D ゲームを作成できる無料・オープンソースの軽快なゲームエンジン「Godot Engine 4」で、BGM を常にループ再生するための手順を紹介しました。
AudioStreamPlayer 系のノードをシーンに配置して、そのノードの Stream プロパティに mp3 などのサウンドファイルを設定することで、プロジェクトに追加した任意のサウンドファイルを再生できることがわかりました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました