このページは4.7.3を対象としています。
更新履歴
このページでは上の動画のようなターゲットシステムの作り方をまとめています。 一般的なMMORPGでは、PCやNPCをクリックするとターゲットすることができます。 ターゲットとは、話しかけたり、攻撃や回復したりする対象を選択する動作のことです。 このページではそのターゲットシステムのブループリントについてまとめます。 なお、アニメーションに関してはまだよく分からないので省略します。
ターゲットの対象となるのはプレイヤーやエネミーです。 それぞれ別のキャラクターとして実装すると、 ターゲットやその他の処理で似たような処理が多くなってしまいます。 そこで共通の処理をまとめた親クラスを作ります。 作成した親クラスは「クラス設定 -> 詳細 -> クラスオプション -> 親クラス」で次のように設定できます。
各クラス間の関係は次のようにしました。
MyCharacterParent ↑ ↑ MyPlayerCharacter MyEnemyCharacter
まず、MyCharacterParentに、オブジェクトリファレンスMyCharacterParent型のTargetという変数、 Float型のHP、HPMAXという変数を次のように追加します。 Targetは複製をReplicatedに指定し、 HP、HPMAXは適当なデフォルト値を指定し、複製をReplicatedに指定します。
EventGraphで次のようなブループリントを作成します。
次にUMGでターゲットの名前を表示するTextBlock_TargetNameとHPを表示するProgressBar_TargetHPを次のように追加します。
それぞれにバインドする関数を次のように作成します。
最後にPlayerControllerにブループリントを次のように作成します。
これでターゲットしたキャラクターの名前とHPが表示されます。