Fabで販売されている『Turn-Based jRPG Template』の使い方。
コマンドRPGを制作するためのプロジェクトです。
このプロジェクトは100%ブループリントですから、改造しやすいです。
自分が使い始めたついでにメモを残しておく感じの記事となります。
#1 事前準備とキャラクターの編集
今回はキャラクター周りの簡単な解説です。
環境
- エンジン: Unreal Engine 5.5.4
- プロジェクト: Turn-Based jRPG Template
日本語を追加してネイティブ言語に設定
『Turn-Based jRPG Template』の言語は全て英語です。
日本語版メインで開発を進めるため、日本語を追加してネイティブ言語に設定しておきます。
上メニューの ツール > ローカライゼーションダッシュボードを選択。
右下に「▼言語」の項目があります。
「新しい言語を追加する」をクリックして、日本語を追加。
ちなみに日本語はリストの下の方にあります。
追加した時点で、日本語にネイティブのチェックが入っているかと思いますが、もし入ってなかったらネイティブにチェックを入れてください。
プレイヤーキャラクターの設定
1人パーティーにする
デフォルト設定ですと3人パーティーですが、1人パーティーに変更します。
BP_JRPGPlayerControllerの編集
BP_JRPGPlayerControllerを開く。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > Controllers > BP_JRPGPlayerController)
変数の編集
playerUnitsのデフォルト値をBP_SwordsmanPlayerUnitのみにします。
これでパーティーメンバーがBP_SwordsmanPlayerUnitの1人のみとなりました。
ちなみにpartySizeはパーティーメンバー数です。デフォルト値は3です。
3のままでも余った2枠はEmptyと表示されますから、問題ないです。
フィールドキャラクターの編集
BP_JRPGCharacterの編集
BP_JRPGCharacterを開く。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > PlayerPawns > BP_JRPGCharacter)
これがフィールド上のプレイヤーキャラクターです。バトル時は別です。
コンポーネントのMeshのSkeletal Mesh AssetやAnimクラスを置き換えれば、外見やアニメーションを変更できます。
バトルキャラクターの編集
BP_SwordsmanPlayerUnitの編集
BP_SwordsmanPlayerUnitを開く。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > Units > BP_SwordsmanPlayerUnit)
これがバトル時のキャラクターです。フィールドでは別です。
コンポーネントのMeshのSkeletal Mesh AssetやAnimクラスを置き換えれば、外見やアニメーションを変更できます。
デフォルトの編集
現時点では編集しなくても良いです。
キャラクターの名前や画像があれば変更しても良いでしょう。
- Exp Exponentは次のレベルアップに必要な経験値の指数です。
デフォルト値は17.0で、これはレベル0→1に必要な経験値が17になります。
レベル1→2では必要経験値34であり、初期値の2倍です。
レベル2→3では必要経験値68であり、初期値の4倍です。
レベル3→4では必要経験値102であり、初期値の6倍です。
レベル4→5では必要経験値136であり、初期値の8倍です。
という具合にレベルアップに必要な経験値が増えていきます。 - Battle Skillsにスキルを登録します。
- Big Imageはステータス画面で表示されます。750×1,050のPNG。
- Battle Imageはバトル中(下)に表示されます。257×385のPNG。
- Thumbnailもバトル中(左上や右)に表示されます。257×385のPNG。
Battle Imageと同じ画像を使っても良いです。 - Explore Characterはフィールド上でのキャラクターを指定。
ここでBP_JRPGCharacterと連携しています。 - Unit ClassはRPGで定番の「クラス」であり「職業(ジョブ)」です。
- Titleはキャラクターの名前です。
- Max Levelは最大レベル。
キャラクターの能力値は初期レベルと最大レベルのみを設定する仕様ですから、最大レベルは決めておく必要があります。中間の能力値は自動で計算してくれるようです。
統計の編集
キャラクターの能力値はデフォルトではなく統計の欄にあります。
- First Level Statsにレベル1の時の能力値を入力。
・Min Attackが6でMax Attackが10の場合、エネミーのdefenceが0の時にランダムで6~10のダメージが入ります。完全ランダムではなく、Max Attackに近い値が出やすいです。 - Last Level Statsに最大レベルの時の能力値を入力。
アニメーションの編集
攻撃やヒットリアクションのアニメーションが多数登録されています。必要ならリターゲットしたり置き換えましょう。
- 特にAttack Animationが銃撃のアニメーションですから不自然です。
アニメーションモンタージュを作成した後、攻撃がヒットするタイミングに 通知を追加 > Montage Notify の設定が必要です。Notify NameはAttack。
必要ならサウンドやエフェクトも追加する。
空振りしてもサウンドは鳴りますから、ヒット音は入れないほうが良いです。
フィールドキャラクターとバトルキャラクターの両方を置き換えることで、フィールドとバトルで同じキャラクターになります。
メニュー画面とステータス画面の日本語化
各種UIはUIフォルダに入っています。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > UI)
テキストの部分を編集するだけです。
メニュー画面はBP_PauseMenu。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > UI > MainMenu > BP_PauseMenu)
各ボタンを選択して、詳細のButton Textを書き換える。
キャラクターステータス画面はBP_UnitDetails。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > UI > MainMenu > BP_UnitDetails)
オプション: フィールドカメラの調整
BP_JRPGCharacterBaseの編集
必要な場合のみ、フィールドカメラの調整をしましょう。
BP_JRPGCharacterBaseを開く。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > PlayerPawns > BP_JRPGCharacterBase)
子ブループリントではなく、親ブループリントであるBaseを編集します。
カメラが障害物に当たってガクガクするのを防止
コンポーネントのCameraと繋がっているSpringArmを選択。
詳細のDo Collision Testのチェックを外す。
障害物に対するコリジョンはなくなりますが、壁を透けてしまいます。
プレイヤーキャラクターを大きく表示する場合
コンポーネントのCamaraを選択。
詳細のトランスフォームの位置を、X240/Y60/Z0にする。
オプション: フィールドでジャンプ可能にする
デフォルト設定ではジャンプができません。凹凸のあるレベルで穴にハマると抜け出せなくなる可能性があります。
ジャンプのアニメーションシーケンスを用意しておく必要があります。
アクションマッピングの追加
このテンプレートはEnhanced Input アクションが使われておらず、旧式のアクションマッピングを使用しています。
上メニューの 編集 > プロジェクト設定
左のリストのエンジン欄にある入力をクリック。
アクションマッピングの+をクリックして追加。
名前をJumpにして、ボタンを割り当てる。
未使用のボタンをジャンプボタンにします。今回は△(Y)にしました。The Elder Scrollsシリーズと同じです。
BP_JRPGCharacterBaseの編集
BP_JRPGCharacterBaseを開く。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > PlayerPawns > BP_JRPGCharacterBase)
BP_JRPGPlayerControllerの編集
入力はBP_JRPGPlayerControllerで管理されています。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > Controllers > BP_JRPGPlayerController)

・デフォルトであるIs Exploreの変数を使って、バトルに入った瞬間にジャンプ無効にします。
・Player JumpのターゲットにはExplore Characterという変数がデフォルトでありますから、それを利用します。

・Movement inputのノード群に、ジャンプ中は方向を変えられないようにする処理を加えます。ジャンプしながら方向を変えてエネミーと接触すると、ごく稀にエネミー情報を取得できない不具合があったからです。
アニメーションブループリントの編集
BP_JRPGCharacterのMeshに設定しているアニメーションブループリントを開きます。
デフォルト設定ですと、A_ThirdPerson_AnimBPです。
(場所: コンテンツ > TurnBasedJRPGTemplate > Animations > A_ThirdPerson_AnimBP)
まずはイベントグラフを開きます。
イベントグラフを大幅に組み直します。

・ほぼサードパーソンテンプレートのBP_ThirdPersonTemplateと同じです。
・イベント BlueprintUpdataAnimationの後のCharacterの検証済ゲットのやり方は、CharacterをGetして、右クリックして「検証済ゲットに変換」です。
・変数が4種追加されます。Character Movement、Character、Velocity、Is Falling。
Speedだけは最初からあります。
AnimGraphを開く。
Default ステートマシンをダブルクリックして開く。

・右クリックして「ステートを追加」を選択。名前をJumpにします。
・Idle/RunからJumpに矢印を繋げる。
・JumpからIdle/Runに矢印を繋げる。
Idle/Run→Jumpのトランジションルール
矢印アイコンをダブルクリックで開きます。
・Is FallingをGetして結果に繋ぐだけです。Is FallingがTrueの時、ジャンプのアニメーションに変わります。
Jump→Idle/Runのトランジションルール
・Is FallingをGetして、Not Booleanを繋いでから、結果に繋ぎます。Is FallingがTrueではない時、歩行アニメーションに変わります。
ジャンプアニメーションの設定
「JUMP」をダブルクリックして開きます。
・ジャンプのアニメーションシーケンスを繋ぎます。
オプション: メニュー画面を開くボタンの変更
デフォルト設定ですと、□(X)でメニュー画面を開きます。
アクションマッピングのOpenMenuのところでボタンを変更しました。
同じボタンでMenuCancelできるようにもしておきます。
コメント