近距離タイプの敵が強力な回転斬りを使えるようになります。
Ali Elzoheiry氏のチュートリアルから学ぶ敵AIの第12回になります。過去記事で作成したものが必須になります。
敵AI:敵がルートを巡回しプレイヤーや音に気付くと反応
敵AI 2:敵が間合いを取りながら攻撃してくる
敵AI 3:敵が逃げて隠れて再び攻撃してくる
敵AI 4:近距離タイプと遠距離タイプの敵を分ける
汎用性と拡張性の高いダメージシステム
プロジェクタイル(Projectile)の基本
敵AI 5:敵の攻撃とブロック
敵AI 6:プレイヤーを見失った敵が捜索を始める
敵AI 7:NavLinkProxyで敵にジャンプさせる
敵AI 8:集団の敵の攻撃タイミングの管理
敵AI 9:AIが敵と味方を区別して戦うようになるチームバトル
AOE(Area of Effect)
敵AI 10:中ボスクラスの魔術師
敵AI 11:敵のジャンプ攻撃
記事は自分でやり直す時のために簡単にまとめており、独自の仕様にもなっていますから、学習するなら参考元のAli Elzoheiry氏のSmart Enemy AI Tutorial Seriesの動画を視聴してください。
Smart Enemy AI | (Part 16: Spinning Melee Attack) | Tutorial in Unreal Engine 5 (UE5) | Youtube
必要なもの
- 回転斬りのアニメーション
Sword And Shield Low Attack | Mixamo - 回転斬りのエフェクト
Infinity Blade:Effects:Epic コンテンツ | UE マーケットプレイス
回転斬りのアニメーション
Force Root Lockにチェックを入れる。
移動させたいのでEnableRootMotionにチェックはいれない。
AnimMontageを作成する。名前はTornadoSlash_Montageにしました。
AnimMontageにアセットブラウザから回転斬りのアニメーションを2つ追加し、合計3つにする。
1つめのアニメーションシーケンスの
End Timeを0.42
Play Rateを0.5
2つめのアニメーションシーケンスの
Start Timeを0.42
End Timeを0.85
3つめのアニメーションシーケンス
Start Timeを0.85
End Timeを0.86
Play Rateを0.0025
37*(1.25)(23.65%)くらいのところにMontage Notifyを追加。名前はSpin。
42*(1.41)(26.7%)くらいのところにPlay Particle Effectを追加。P_Spinner_Lar_2をセット。
Location OffsetのZを75.0
Scaleを全て2.0
Play Particle Effectをコピー→貼り付けして、98*(3.27)(62.02%)くらいに配置する。
45*(1.50)(28.53%)くらいのところにMontage Notifyを追加。名前はAOESlash
そこから0.5秒間隔でAOESlashを配置する。
右クリックで通知開始時間を入力できますから、1.5、2.0、2.5、3.0、3.5、4.0、4.5と計7つ配置。7回ダメージが当たります。
列挙型: E_Melee_Attacks
作成済。4つめのエニュミレーターを追加します。
Default
ShortRangeAttack
LongRangeAttack
SpinningAttack
敵BP: BP_EnemyRanged
BP_EnemyRangedも攻撃ノードを独自のものにします。BP_EnemyBaseからEnemyRangedに関係する攻撃関連のノードをコピペして編集。
・イベント Enemy Attackで右クリックして親関数への呼び出しを追加しています。
※BP_EnemyMeleeやBP_EnemyMageにも攻撃ノードの最初に親: Enemy Attackを追加する必要があります。
敵BP: BP_EnemyBase
もうBaseの攻撃関連ノードは使わないので削除します。
攻撃中かどうかを確認する変数のIsAttacking?のみ共有。
敵BP: BP_EnemyMelee
イベントグラフ
【変数】
MeshRotationBeforeSpin – Rotator
└Get Relative Rotationから変数へ昇格。
・SpinMeshTimeLineの4秒という長さはメッシュをグルグル回転させる時間の長さです。
フロートトラックを追加し、点を2つ配置。0秒に値0、4秒に値1。トラックの名前はZRotationAlpha。
コメント