はじめに
いよいよ本書のロジック実装の最後の2つ、ナビゲーションとAIに辿り着きました。2つの章によって、敵キャラクターを作成していきます。
本筋の内容を優先するため、英語 <-> 日本語 程度の些細な表記の違いは記載を減らしていますのでご自身で確認ください。
第22章 ナビゲーション、のち、配列
22.1.4 AI Move Toで目的地へ移動させる
旧)手順.3 アクションリストから[PNPawn_Rabbitへのリファレンスを作成]を選択して…
新)手順.3 アクションリストから[Create a Reference to PNPawn_Rabbit]を選択して…
旧)手順.5 [編集可能]にチェックを入れ、レベルエディタでこの変数に…
新)手順.5 [インスタンス編集可能]にチェックを入れ、レベルエディタでこの変数に…
22.2.3 配列のコピー
旧)手順.3 [ユーティリティ]>[キャスティング]>[PNPawn_Rabbitへキャスト]を選択し…
新)手順.3 [ユーティリティ]>[Casting]>[Cast To PNPawn_Rabbit]を選択し…
22.2.4 初めての配列アクセス
旧)手順.5 [Utilities]>[Array]>[Get]を選択します。
新)手順.5 [ユーティリティ]>[配列]>[Get (a copy)]を選択します。
22.3.2 剰余のテクニック – インデックスを反復させる
手順.10の[Set Timer]関数は、最新版では[Set Timer by Function Name]関数を使用してください。
22.4.1 ステージ1を巡回させる
ターゲットポイントの座標を説明する文章が、TP1、TP1、TP2、TP3という順に書かれていますが、正しくはTP1、TP2、TP3、TP4です。
手順.10の[Set Timer]関数は、最新版では[Set Timer by Function Name]関数を使用してください。
22.4.2 キャラクターのスペック
旧)手順.8 [詳細]パネルで[Character Movement]>[Max Acceleration]を…
新)手順.8 [詳細]パネルで[キャラクタームーブメント(基本セッティング)]>[Max Acceleration]を…
第23章 敵キャラクターのAIに挑戦する
いよいよ本書の最難関のAIに到達しました!
この章は本書の通りに実装するだけであれば比較的スムーズに進められると思います。しかしひとつひとつを理解しながら進めようとすると、途端に進む速度が遅くなってしまいます。
その理由として、UE4のAI周りは専門の設計思想によるエディタ構成、AIだけで使われる専門用語のオンパレードで、アセット数も増加するために関係性を理解するのが難しくなるためです。
ここでは理解するのは二の次にして、まずは章の終わりまで進めることを優先してください。なぜなら、この時点で理解するまで調べても、いざ自分のゲームでAIを実装するのは当分先のことで、きっとその時には忘れてしまっているからです。大事なのは、今回一度でもAIを実装したという経験なので、あまり悩みすぎずに手を動かすことをオススメします。
23.2.1 ビヘイビアツリーを準備する
旧)手順1. サブメニューから[未分類]>[ビヘイビアツリー]と操作して、
新)手順1. サブメニューから[AI]>[ビヘイビアツリー]と操作して、
手順3.で[Run Behavior Tree]は実行ノードを伸ばして開くアクションリストからは見つからないと書かれていますが、最新版では見つけることができます。
23.3 ブラックボードを活用する
ここまで学んできた方ならば、ブラックボードの説明を読むと、「それって単に変数のことなのでは…?」と思うかもしれませんが、その認識でほぼ間違いありません。
細かく言うと、使用する変数たちをまとめてアセットにすることで、複数のビヘイビアツリーで使いまわすことを想定しているのだと思います。
23.3.1 ブラックボードを準備する
旧)手順1. [新規作成]ボタンから[未分類]>[ブラックボード]と操作して、
新)手順1. [新規作成]ボタンから[AI]>[ブラックボード]と操作して、
手順5.でブラックボードエディタでは、ウィンドウ右側の[詳細]パネルから名前を変更することはできないと書かれていますが、最新版では変更することができます。
23.3.4 巡回行動を仕上げる
手順1.で[新規タスク]ボタンを押した後にサブメニューが表示される旨が書かれていますが、最新版ではサブメニューは無くなっていますのでそのまま作成してください。
23.3.5 クラスブループリントからブラックボードにアクセスする
手順.7 で[Patrol Wait Duration]ノードを設置すると書かれていますが、正しくは[Get Patrol Wait Duration]ノードです。
23.4.1 Selectorコンポジットノード
手順.4 で既存の[Sequence]ノードの左側にワイヤーを伸ばして、とありますが、これは一つ上の[Selector]ノードの下辺から引っ張り始めてください。
23.4.3 独自のサービスを作る
サービスを実装する
手順.6 のノードネットワークの組み上げは、これまでの復習としては難易度が高いので是非思い出しながらやってみてください。
どのピンからノードを引っ張るかによって、呼び出せる関数が限られますので、慌てずに確認しながら組み上げていきましょう。
23.5.3 仮想のMelee(近接攻撃)を作る
手順.3のLine Trace by Channel関数の[Trace Channel]が[Sight]に設定されているのは見落としやすいのでご注意ください。
まとめ
これでナビゲーション&AIは終了です!
長かったロジックの実装もこれで終了となります。AIで分からなかったところは、いつか自分で実装するときまで残しておいて問題ないかと思います。その時が来たらまた復習することで、より理解が深まります。
ここまでを終えられれば残りの章は楽しく進められると思いますので、最後まで頑張りましょう!
