Fabで販売されているコマンドRPGを制作するためのプロジェクト『Turn-Based jRPG Template』の第6回。
#6 イベントフラグ管理
RPGに欠かせないイベントフラグの管理。
レベル遷移後に再出現させたくないNPCをイベントフラグで管理します。
ビットマスクを使用しています。
環境
- エンジン: Unreal Engine 5.5.4
- プロジェクト: Turn-Based jRPG Template
列挙型: E_MainEventを作成
名前: E_MainEvent
・新規作成。
- MageJoins
- PriestJoins
- ArcherJoins
セーブゲームの編集
『Turn-Based jRPG Template』のセーブゲームはBP_JRPGSaveGameです。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > Controllers > BP_JRPGSaveGame)
変数追加
BP_JRPGSaveGameに変数を追加します。
変数
MainEvent – Integer
└詳細のビットマスクにチェックを入れて、ビットマスク列挙型をE_MainEventにする。
イベントグラフの編集
カスタムイベント SaveJRPGPlayerControllerしかありません。
セーブ項目にMainEventを加えるわけです。

・カスタムイベント SaveJRPGPlayerControllerにインプットを追加。名前はMainEventで型はInteger。
関数の編集
プレイヤーコントローラーに変数追加
BP_JRPGPlayerControllerを開く。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > Controllers > BP_JRPGPlayerController)
変数
MainEvent – Integer
└詳細のビットマスクにチェックを入れて、ビットマスク列挙型をE_MainEventにする。
ゲームインスタンスの編集
BP_JRPGGameInstanceを開く。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > Controllers > BP_JRPGGameInstance)
GameInstanceはレベル遷移してもデータがリセットされません。
PlayerControllerはレベル遷移でデータがリセットされます。
ですから、レベル遷移前などにPlayerControllerからGameInstanceにセーブし、レベル遷移後にロードするわけです。
そのためのセーブとロードの項目にMainEventを追加します。
BP_TalkNPC_Player2でテスト
第4回で作成した仲間にできるNPC、BP_TalkNPC_Player2を編集します。
MainEvent – Integer
└詳細のビットマスクにチェックを入れて、ビットマスク列挙型をE_MainEventにする。そして「インスタンス編集可能」にチェックを入れてください。
コメント
[…] ここは第6回でやった内容とほぼ同じです。 『Turn-Based jRPG Template』の使い方 #6 イベントフラグ管理 […]