簡単な2Dゲームを作ろう
2Dゲーム制作の練習シリーズです。
アンリアルエンジンで2Dゲーム制作方法をまとめていきます。
説明を省略したり、細かな数値設定などの説明をしない場合もありますので、ご参考程度で確認ください。
※作業環境:UEバージョン5.3.2 Windows11 VSCode
BGMを実装
前回でリセット機能を実装しましたが、プレイヤーのブループリントなどにBGMを設定するとリセットの際に音楽も初めからになります。
今回は、リセットしても音楽は続けて流れるようにBGMを設定します。
音楽ファイルを準備する
音楽ファイル(.wave)を準備します。
インポートした音楽ファイルを開いて、「Details」の「Looping」にチェックを入れます。

音楽をリピートする必要がなければチェックを外します。
Game Instanceクラスを作成する
「Game Instance」クラスはゲーム終了までデータを保持してくれます。
これによりレベルを呼び出しても影響を受けることなく音楽を流せます。
「Blueprints」ファルダで右クリックし、「Blueprint Class」を選択します。

検索バーで「Game Instance」を検索してファイルを作成します。

出来上がったファイルは、こんな感じです。

次に作成した「Game Instance」をプロジェクト設定に反映します。
「Projectt Settings…」を開きます。

「Project」の「Maps & Modes」を選択します。

「Game Instance Class」を先ほど作成した「BP_MyGameInstance」に変更します。

これでゲームインスタンスの割り当てが出来ました。
BGMを設定する
「BP_MyGameInstance」を開いて処理を作成します。

- カスタムイベントを作成し、「PlayBGM」の名付けます。
- bool型の「Is Play BGM」変数を作成します。
- 「Branch」ノードで音楽再生するタイミングを設定します。
既に音楽が流れている場合は何もしません。 - 「Spawn Sound 2D」ノードで再生したい音楽を設定します。
- 生成した音楽を変数に変換します。
これを使うことで好きなタイミングで音楽を操作できます。 - 「Is Play BGM」変数をtrueにします。
これで既に音楽が流れていることを示します。
「Event BeginPlay」に処理を繋げます。

- 「Get Game Instance」ノードで、Game Instanceクラスを取得します。
- 「Cast To ~」ノードでGameInstanceをキャストします。
- 先ほど作成したカスタムイベントを呼び出します。
これでゲームプレイすると、音楽が再生されているはずです。
障害物に当たった場合、ゲームがリセットさせますが音楽は流れ続けます。
BGMの実装完了
今回はここまでです。
次回は「プレイヤーに簡単なアニメーションをつける」です。
前後記事
他の記事を探す
他の記事も気になる方は、以下の記事の目次を確認ください。