テーマは敵キャラクターを動かそう ビヘイビアツリー編です
GASPのALS版をもとに、モーションマッチで華麗に障害物を乗り越えるアクロバティックな敵キャラをつくりましょう。
遊べる完成形はこちらで公開中 yossi40-100/GASP-ALS: Game Animation Sample with ALS Layering
本記事はAI制御に必要なAIコントローラの接続と敵AIに視覚センサーを取り付ける手順の説明です。
ステップ2 AIコントローラと視覚センサー
コンテンツドロワー右クリックからブループリントクラスを作成します
「すべてのクラス」から「AIコントローラ」を探します
適当な名前をつけましょう(本連載ではBP_AIControlとします)
名前が決まったらまずAIキャラクターに今作ったコントローラを接続します
CBP_AI
コンポーネントで一番上のセルフを選んで
詳細欄からAIコントローラを探します
ここがAIControllerのところに、今付けた名前のクラス(BP_AIControl)を設定しましょう
これで人間の代わりにコンピュータ(AI)がキャラクターを操縦する準備ができました
あとはコントローラにどういうときどうするの行動判断ルールを与えていきます
まずはコントローラに目をもたせましょう
BP_AIControl
コンポーネントの追加からAIパーセプションというコンポーネントを追加します
日本語だと「AI知覚コンポーネント」ですね
追加したAI知覚コンポーネントを選択し、詳細欄の
AIパーセプション/Sense Config の+ボタンから要素を追加して
6種類の知覚を選べますが今回は目を付けたいので視覚です
上記設定をすると、インデックス[0]のところが折り畳み状態になり、そこを開くとさらに細かい設定欄がでます。
まず Sight Radius が見える最大距離です
3000センチは30メートル先まで見えるってことですね。これを2000にさげてみます。
次のLose Sight Radius は見失う距離です。3000(30m)にしておきます
一度気づいてしまったら、ちょっと離れてもまだ見えるよねっていう動物の認知に近いことを再現する設定です
豆知識:UE5.3まで1cmではなくて1uu(アンリアルユニット)という独自単位でしたが、UE5.4あたりからcmセンチメートルに表現が統一されだしています。
周辺視野の半分の角度 はそのままです
キャラクタの前方中央から左右それぞれこの角度が見えるので90なら合計180度見える状態ですね
それだと広すぎて強すぎるので狭くしておきます
この辺のパラメタはバランス調整する箇所ですね
あとは「Detection by Affiliation」ここに大事な設定が隠れています
デフォルトは敵だけを見つける設定になっているのですが、これだとC++でしか使えないそうです
ブループリントで使いたいひとは3つともチェックをつけましょう
つけないとまったく?感知してくれません
すたっふー!デフォルトは付けといて~
センサーの設定は一旦OKです
見えただけでは何も判断できませんが、見えたら何するかはこの後の工程で。
コメント