Fabで販売されているコマンドRPGを制作するためのプロジェクト『Turn-Based jRPG Template』の第7回。
#7 装備品をキャラクターの見た目に反映
ウェポン、シールド、ヘルム、アーマー、ブーツをプレイヤーキャラクターとバトルキャラクターの見た目に反映させます。
環境
- エンジン: Unreal Engine 5.5.4
- プロジェクト: Turn-Based jRPG Template
- ヘルム、アーマー、ブーツは、プレイヤーキャラクターと同じ仕様のスケルトンである必要があります。
私はDAZ Studioから移行しています。
DAZ StudioのフィギュアをUnreal Engine 5.5に移行する
仕様
ヘルム、アーマー、ブーツ
プレイヤーキャラクターに装備品用のスケルタルメッシュコンポーネントを追加して、プレイヤーキャラクターのアニメーションと同期させる方法です。
プレイヤーキャラクターのMeshのスケルトンと装備品のMeshのスケルトンが同じ仕様である必要があります。
ヘルムに関しては、ウェポンやシールドと同じアタッチで問題ないかもしれません。headにアタッチすればズレないはず。
ウェポン、シールド
ウェポンとシールドはプレイヤーキャラクターのMeshのボーン(ソケット)を指定してアタッチします。
指定するボーンは、フィールド探索とバトルに分かれています。
BP_EquipmentMeshBaseの編集
装備品そのもののブループリントと装備品のメッシュのブループリントは分かれている仕様です。
- 装備品のブループリント
- 装備品のメッシュのブループリント
装備品のブループリントのデフォルトでメッシュのブループリントを指定します。
メッシュのブループリントのBaseであるBP_EquipmentMeshBaseを編集します。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints >Items > Equipment > EquipmentMesh > BP_EquipmentMeshBase)
変数の追加
EquipmentType – E_EquipmentType
└E_EquipmentType(Enum)は最初からあります。
イベントグラフの編集
カスタムイベント EquipmentOnを編集します。

Unit Mesh Componentは、プレイヤーキャラクターのアーマーやブーツらのスケルタルメッシュコンポーネントです。ここに装備品のスケルタルメッシュアセットをセットする処理。
BP_JRPGCharacterBaseの編集
フィールド探索キャラクターのBaseであるBP_JRPGCharacterBaseを編集します。
これはフィールド探索キャラクターであり、バトルキャラクターではありません。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > PlayerPawns > BP_JRPGCharacterBase)
Meshの下にスケルタルメッシュコンポーネントを追加
Meshの下層にスケルタルメッシュコンポーネントを追加します。
名前は、Armor、Helm、Boots。
言うまでもないですが、位置と回転は0です。
なぜ言うかといえば、私は気付かないうちにHelmの位置と回転が入力されてしまっていて、ズレていたからです。
Construction ScriptにSet Leader Pose Componentを追加

・Set Leader Pose ComponentでMeshのスケルトンのアニメーションに、Armor、Helm、Bootsのスケルトンのアニメーションを同期させるものです。そのため、同じ仕様のスケルトンである必要があります。
イベントグラフの編集
装着する時、カスタムイベント Show equipment mesh of the unitを編集します。

【変数】
Unit Mesh Component – スケルタルメッシュコンポーネント
└Equipment OnのUnit Mesh Componentから「変数へ昇格」。
・読み込んだEquipment MeshをEquipMent typeで分けて、WeaponとShieldはMeshのボーンにアタッチします。Armor、Helm、BootsはEquipment Onに繋ぎます。
・フィールド探索キャラクターの場合、WeaponとShieldは線を繋がなくてもいいです。フィールド探索中にウェポンとシールドが見えている必要はありませんからね。
外す時、カスタムイベントRemoveEquipmentMeshを編集します。

・最後のノードは、アーマーが装備無しだった場合、全裸になるのを防ぐために下着用のスケルタルメッシュをセットしています。
BP_PlayerUnitBaseの編集
バトルキャラクターのBaseであるBP_PlayerUnitBaseを編集します。
これはバトルキャラクターであり、フィールド探索キャラクターではありません。
(場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints > PlayerPawns > BP_JRPGCharacterBase)
SkeletalMeshの下にスケルタルメッシュコンポーネントを追加
SkeletalMeshMeshの下層にスケルタルメッシュコンポーネントを追加します。
名前は、Armor、Helm、Boots。
Construction ScriptにSet Leader Pose Componentを追加
イベントグラフの編集
装備品の編集
EquipmentMesh
BP_EquipmentMesh_Armorがデフォルトであります。
(場所: 場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints >Items > Equipment > EquipmentMesh > BP_EquipmentMesh_Armor)
これのSkeletal Equipment MeshにArmorのスケルタルメッシュをセットします。
さらに、その左のNoneの枠で装備するキャラクターを指定します。
ウェポンとシールドはボーン(ソケット)にアタッチします。
その場合、Battle SocketとExplore Socketをここで指定します。
Armors
EquipmentMeshを装備品のブループリントで指定する必要があります。
BP_LeatherArmorが最初からあります。
(場所: 場所: コンテンツ > TurnBasedJRPGTemplate > Blueprints >Items > Equipment > Armors > BP_LeatherArmor)
今回は、これのEquipment MeshにBP_EquipmentMesh_Armorをセットします。
初期装備の設定
プレイヤーキャラクターの初期装備
プレイヤーキャラクターの初期装備は、BP_JRPGPlayerControllerで設定できます。
コメント