『Turn-Based jRPG Template』の使い方 #7 装備品をキャラクターの見た目に反映

Fabで販売されているコマンドRPGを制作するためのプロジェクト『Turn-Based jRPG Template』の第7回。

#7 装備品をキャラクターの見た目に反映

ウェポン、シールド、ヘルム、アーマー、ブーツをプレイヤーキャラクターとバトルキャラクターの見た目に反映させます。

環境

仕様

ヘルム、アーマー、ブーツ

プレイヤーキャラクターに装備品用のスケルタルメッシュコンポーネントを追加して、プレイヤーキャラクターのアニメーションと同期させる方法です。
プレイヤーキャラクターの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を追加
ノードの編集
イベントグラフの編集
ノードの編集
装着する時、カスタムイベント Show ALLEquipment Meshの後半を編集します。

【変数】
Unit Mesh Component – スケルタルメッシュコンポーネント
Equipment OnのUnit Mesh Componentから「変数へ昇格」。
・フィールド探索キャラクターとは違って、バトルキャラクターは戦闘前に装備品を読み込んでいますから、全裸防止処理はこちらのEquipment On側で行っています。
ノードの編集
外す時、カスタムイベント RemoveAllEquipmentMeshを編集します。

装備品の編集

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で設定できます。

変数playerUnitsのデフォルト値を開くと、装備品を指定する項目があります。

コメント

タイトルとURLをコピーしました