- タイトルで再生したサウンドをそのままゲーム内でも再生させたかったが、タイトルを別レベルで作成しているとレベル遷移したときにサウンドが切れてしまう。
- レベル遷移してもサウンドが継続して再生したいということで調べると良い情報があったのでメモ。ありがたい。
目次
Game Instanceを使用することで可能とのこと
- 「Game Instance」はレベル間で情報を保持できるもの。
ステージをレベルで分けている場合にスコアなどの情報を保持するのにもよさそう。 - 今回はこの「Game Instance」を作成してレベル間でサウンド情報を保持させる。
Game Instanceを作成する
- 「GameInstance」クラスを選択してブループリントを作成する。
- 作成したらファイル名を変更。今回は「GI_UQ5」にしている。
- アンリアルクエスト5というイベントに参加したときに作成したのでUQ5。
作成したGameInstanceにAudioComponentの変数を追加する
- 作成したGameInstanceを開いて変数を追加する。
- 変数の型を「Audio Component」を変更して、名前も変更する。名前は「BGM」にしている。
プロジェクト設定で作成したGameInstanceを設定する
- 「プロジェクト設定」の「マップ&モード」を選択して、「Game Instance」に作成したGameInstance(GI_UQ5)を設定する。
- プロジェクト設定はメニューの「編集」>「プロジェクト設定」を選択することで表示できる。
ブループリントに処置を追加する
- 「Spawn Sound 2D」ノードを使用して再生するサウンドを設定する。
- 「Persist Across Level Transition」にチェックを入れておくこと。
- 「Spawn Sound 2D」はReturn ValueでAudio Componentを出力できるので、これをGameInstanceの変数BGMにセットする。
再生したサウンドを別のレベルで停止する
- GameInstanceからAudio Componentの変数(BGM)を読んで「stop」する。
- フェードアウトもできる。
参考リンク
[Unreal Engine 4] レベルを遷移しても、BGMを継続して再生する方法 – Qiita
目次BGMを継続して再生する方法参考文献その他BGMを継続して再生する方法※Unreal Engine 4.14以前のバージョンについては、Spawn Sound 2Dに「Persist …
コメント