Fabで販売されているコマンドRPGを制作するためのプロジェクト『Turn-Based jRPG Template』の第3回。
#3 宝箱とクエスト
前回作成したレベルに宝箱とクエストNPCを配置します。
環境
- エンジン: Unreal Engine 5.5.4
- プロジェクト: Turn-Based jRPG Template
- アセット: Treasures VOL.1 – Ancient Treasures 無料
宝箱を使いました。
宝箱
宝箱の設定と配置
BP_Chestの編集
宝箱はBP_Chestです。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > Interactables > BP_Chest)
メッシュとアニメーションの変更
コンポーネントのChestTop、ChestBack、ChestFront、ChestRight、ChestLeft、ChestBottomを削除します。
コンポーネントにスタティックメッシュを追加。名前はChestTop。そのStatic MeshにSM_Chest_01d (Treasures VOL.1 – Ancient Treasures)をセット。
コンポーネントにスタティックメッシュを追加。名前はChestBox。そのStatic MeshにSM_Chest_01c (Treasures VOL.1 – Ancient Treasures)をセット。

宝箱の蓋と箱を位置調整。
蓋の回転Xの値を変えると蓋が開くのを確認。
今回の場合、閉じた状態がX0、開いた状態がX-100でした。
デフォルトでは閉じた状態にしておきます。

イベント Openをちょっとだけ改造します。

・OpenOverTimeの後を編集。デフォルトのノードだとVectorで蓋を横にズラしていましたが、置き換えた宝箱ではRotatorで蓋をパカッと開きます。
・開いた時の効果音やエフェクトも、このノード群に追加すると良いでしょう。
・イベント OnLoadedHandlerは、インタラクト後にレベル遷移などで再読み込みされた時の処理です。
インタラクトした時点で宝箱は開いていますから、再読み込みの時も蓋を開けておきます。
「OPEN」の日本語化
宝箱に近づいた時の「OPEN」を日本語化するには、コンポーネントのInteractionActorを選択。
チャイルドコンポーネント > Child Actor Template > デフォルト > Interaction Text を「開ける」に書き換える。

BP_Chestの配置
BP_Chestをレベル上に配置します。
レベルに配置したBP_Chestを選択する。
デフォルト欄で中身を指定します。
Usable Items(消費アイテム)、Misc Items(その他アイテム)、Equipment(装備品)、Goldの指定が可能です。
今回はクエストで使いたいので、Misc ItemsにBP_Stoneを指定し、個数は10個にします。

クエスト
クエストNPC
BP_QuestNPCがクエストを発注するNPCです。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > Interactables > BP_QuestNPC)
必要ならMeshを置き換えてください。
クエストを管理しているコンポーネント
BP_QuestNPCを開き、コンポーネントのQuestActorを選択。
詳細の チャイルドコンポーネント > Child Actor Template > デフォルト > Quests に2つのクエストが登録されています。
これは同時に受注するわけではなく、1つめのクエストを受注してクリア報告後に2つめのクエストが受注できるシステムです。
3つめ以降の登録も可能です。

「TALK」の日本語化
宝箱と同じです。
クエストNPCに近づいた時の「TALK」を日本語化するには、BP_QuestNPCを開く。
コンポーネントのInteractionActorを選択。
チャイルドコンポーネント > Child Actor Template > デフォルト > Interaction Text を「話す」に書き換える。
クエストの編集
BP_Collect10Stonesの編集
Stoneを10個集めるクエストは、BP_Collect10Stonesです。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > Quests > ItemQuests > BP_Collect10Stones)
BP_Collect10Stonesを開く。
デフォルト
- Item to Collectは、このクエストに必要なアイテム。
- Nameはクエスト名。
- Descriptionはクエストの簡単な説明。
- Stepaは必要個数。
- Quest Soundsではクエストを受注した時や達成した時のサウンドが設定できます。
- Quest Unavailable Text (クエスト利用不可テキスト)
- New Quest Text (新規クエストの依頼内容)
- Quest Progress Text (クエスト進行中に話しかけた時のテキスト)
- Quest Ready to Deliver Text (クエスト完了報告時のテキスト)
- Quest Already Completed Text (クエスト完了した後、再度話しかけて次のクエストがない時のテキスト)
クエスト報酬の変更
イベント BeginPlayの最後にセット Quest Rewardsを配置して、デフォルト値を変更する。

テストプレイ。
クエストNPCに話しかけてクエスト受注。
宝箱を開けてクエスト達成条件クリア。
クエストNPCに報告。
もう1度話しかけると2つめのクエストを受注します。
クエストの作成
BP_Collect10Stonesを複製して名前変更し、新たなクエストを作成できます。
デフォルトではもう1種、BP_Kill5WeakEnemiesというクエストがあります。
こちらはWeakEnemiesを5体倒すクエスト。
特定のアイテムをX個集めるクエストと、特定のエネミーをX体倒すクエストが簡単に作成できるわけです。
貴重なアイテムを取ってくるクエストやボスを倒すクエストを作り、その報酬でゲーム進行に必要な重要アイテムを渡すこともできます。



コメント