【Unity】RPGを作るチュートリアルその122 タイトル画面に戻すイベントを作成

【Unity】RPGを作るチュートリアルその122 タイトル画面に戻すイベントを作成

シンプルなRPGをUnityで作るチュートリアルシリーズの122回目です。

第121回ではパラメータや初期装備、エンカウント率などを調整しました。

今回はエンディング後にタイトルに戻すイベントを実装したいと思います。

 

 

制作環境

MacBook Pro 2023 Apple M2 Max

Unity6 (6000.0.30f1) Silicon

 

作業内容と順序

シンプルなRPGを作る上でどんな作業が必要か、どんな順番で作っていくと良さそうか、別ページで検討しました。基本的にこの流れに沿って進めていきます。

 

チュートリアルの一覧

このシリーズ全体の一覧は以下のページにまとめています。

 

前回の内容

前回はパラメータや初期装備、エンカウント率などを調整しました。

 

エンディング後にタイトルに戻すイベント

ビルドしてゲームを確認していて気付いたのですが、エンディング後に「このチュートリアルを元に、自分の思い描いた世界を作ってね!」とメッセージを表示した後にそのまま動けるようになったままだったので、フラグ等の問題が出ないようにタイトル画面に戻すイベントを作成したいと思います。

流れとしては画面をフェードアウトさせてシーン遷移を行う形になります。シーン遷移を行うことでシングルトンのクラスなどで不整合を起こしたりしないか確認していきます。

 

イベントプロセスの作成

まずは「Title」へのシーン遷移を行うクラスを作成していきます。Projectウィンドウから「Assets/Scripts/Event/Process」のフォルダを開き、MonoBehaviourのスクリプトファイルを作成します。名前は [EventProcessSwitchScene] にしました。

イベントプロセスの作成
イベントプロセスの作成

 

作成した「EventProcessSwitchScene」の中身は以下のように記載しました。

Inspectorウィンドウで遷移先のシーンを設定できるようにしています。

イベントの処理内容は単純で、「SceneManager」のLoadScene()のメソッドを呼び出すだけになっています。組み合わせて使っていけるように、画面やBGMのフェードアウトは別のイベントプロセスで行うようにしたいと思います。

 

イベントプロセスの設定

作成したスクリプトを使ってイベントプロセスを組んでいきましょう。変更したいのは以下のイベントです。

  • 「Map_0001_Village」の村長
  • 「Map_0003_Dungeon」のボスゴブリン

ボスゴブリンの方はBGMのフェードアウト処理が入っていなくて村に戻ってもダンジョンのBGMが流れてしまっていたので修正したいと思います。

 

村長のイベント

村長のエンディングのイベントで、画面やBGMのフェードアウト処理、シーン遷移の処理を実装していきます。「Map_0001_Village」の中にある「NPC_Chourou」にて、「EventPage4」の末尾に以下のイベントプロセスを追加します。

ゲームオブジェクト名 アタッチするスクリプト 概要
StopBgm EventProcessStopBgm BGMを停止
FadeOut EventProcessFadeOut 画面をフェードアウト
BackToTitle EventProcessSwitchScene シーンの遷移
イベントプロセスの作成
イベントプロセスの作成

 

それぞれデフォルト値のままでOKなので、プロセス間の繋がりだけ設定していきましょう。

ゲームオブジェクト名 Next Process
ShowMessageEnd StopBgm
StopBgm FadeOut
FadeOut BackToTitle
BackToTitle なし

 

ボスゴブリンのイベント

ボスゴブリンのイベントに関しては、勝利後、敗北後ともにBGMを停止させる処理を追加します。そのため、「Post———–」のひとつ後ろに「StopBgm」のゲームオブジェクトを作成し、「EventProcessStopBgm」のスクリプトをアタッチします。

BGMを停止するイベントプロセス
BGMを停止するイベントプロセス

 

BGMを停止する秒数はデフォルト値のままでOKです。プロセス間の繋がりを設定していきましょう。

ゲームオブジェクト名 Next Process
ShowMessageWin2 StopBgm
SetFlag StopBgm
StopBgm FadeOut

 

村長のイベントプロセスとボスゴブリンのイベントプロセスの設定が終わったら、「Map_0001_Village」と「Map_0003_Dungeon」のゲームオブジェクトにて、それぞれ「Overrides」のプルダウンにて [Apply All] のボタンをクリックして変更を適用します。

 

動作確認

Prefabへの適用とシーンの保存が完了したら「Title」シーンからゲームを実行します。ボスゴブリン前のセーブデータが残っていると便利です。

  • ボスゴブリンを倒した後にBGMが停止すること
  • ボスゴブリンに負けた後にBGMが停止すること
  • エンディングのイベント後に「Title」シーンに戻ること
  • 再度ゲームを実行しても不整合がないこと

を確認します。不整合の確認では、フラグの状態や宝箱の状態などを確かめていきましょう。また、元のセーブデータの情報(ステータスや所持アイテムなど)も残っていないことを確認しましょう。

この後タイトル画面に戻ります。
この後タイトル画面に戻ります。

 

エディタ上での動作を確認したら、実機ビルドしてそちらでも確認しておくとより安心です。

 

今回のブランチ

 

まとめ

今回はエンディング後にタイトルに戻すイベントを実装しました。これで基本的なゲームループや流れについて実装が完了しました。

次回はタイトル画面で空のセーブ枠をロードできてしまう問題を修正します。

 

     

ゲーム開発の攻略チャートを作りました!

CTA-IMAGE

「ゲームを作ってみたいけど、何から手を付けていいか分からない!」


そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験を中心に、ゲーム作りの手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。


ゲームを作り始めた時にぶつかる壁である「何をしたら良いのか分からない」という悩みを吹き飛ばしましょう!