このページは4.7.3を対象としています。
更新履歴
このページでは上の動画のようなターゲットしたエネミーに対する攻撃処理の作り方についてまとめています。 ターゲットシステムについてはこのページを参照してください。 攻撃処理はMyCharacterParentのブループリントで作ります。
攻撃処理に関係する変数は下の通りです。 敵かどうか(isEnemy)、 攻撃のレンジ(AttackRange)、 攻撃開始からダメージ発生までの時間(AttackDamageHappenTime)、 攻撃力(AttackPower)、 攻撃開始から攻撃アニメーションが終了するまでの時間(AttackAnimationEndTime)、 Replicatedの攻撃中かどうか(isAttack)、 Replicatedの攻撃アニメーションのトリガ(AttackAnimationTrigger)、 Replicatedのダメージアニメーションのトリガ(DamageAnimationTrigger)、 Replicatedの死亡中かどうか(isDead)、 Replicatedの死亡アニメーションのトリガ(DeadAnimationTrigger)、 Replicatedの行動のターゲット(ActionTarget)
攻撃処理に関係する関数は下の通りです。
HPにダメージを与える(DamageHP)、 HPを回復する(HealHP)、 行動可能か判定する(CheckActionable)、 攻撃可能か判定する(CheckAttackable)、 範囲内かどうか判定する(CheckInRange)。
CheckActionable関数ではキャラクターが行動できる状態かどうか判定します。 攻撃中または死亡中は行動できません。 CheckAttackable関数ではキャラクターがターゲットに対して攻撃できるかどうか判定します。 ここでは味方と敵同士のみ攻撃できるようにして、 味方同士、敵同士では攻撃できないようにしています。 CheckInRange関数では攻撃範囲内にターゲットがいるかどうか判定します。
EventGraphは次の通りです。
0、 1、 2、 3、 4、 5、 6、 7、 8、 9、 10
プレイヤーが攻撃する時は、カスタムイベントAttackを呼び出します。 最初にTargetをActionTargetに退避させておきます。 また、MyPlayerCharacterのtickイベントからtickRotationを呼び出すようにしておきます。 SetActorRotationについてはこのページも参考にしてください。