第12回「プレイヤーキャラが空中にいても追ってきてくれるタスク」

今回はプレイヤーキャラクターが空中にいても敵キャラクターが追ってきてくれるタスクを作る。

どうもUE4のファーストパーソン、サードパーソンは一般的なやつを考慮していてナビゲーションメッシュを利用するのが前提みたいだけど、空中にプレイヤーがいる時は位置を読み込んでくれない。

またDoN AI NavigationというBox状のメッシュで判定するプラグインがあるけれど、使い方がよくわからないのと重いため広いマップに不向きだったので使わない方向でいきたい。

という訳で下記のHPを参考に組んでみました。

【UE4】AIを空中で移動させる時に使えそうなノード

前回の記事で作ったRapidMoveToというタスク(ナビメッシュにそってプライヤーをゴールに設定し追ってくるタスク)内部の『AIMoveTo』を『MoveToLocationOrActor』に置き換えただけ。

ただし下記に注意。

※UsePathfindingのチェックを外すこと

※またLockAILogicのチェックを外さないとブラックボード上でターゲットの変数が消されてもゴールがなくなった判定にならず永遠に追ってくる

※上記二つはノードのどこにあるの?ってなったらノードの▽マークをクリックすると隠れてるよ

とりあえずこれだけで空中でも追ってきてくれるようになりました。

ただしナビメッシュを使用していないため障害物があっても避けて移動してくれません。

で、ナビメッシュを使用せずに障害物を避けて移動できないかと四苦八苦していたのですが、ぶっちゃけいい方法が思いつきませんでした。

ただアーマードコアの敵や地球防衛軍の敵を見ていると、その問題は無視していいように思えてきました。

ACの場合

敵はこちらが建物に隠れていると対面でピョンピョン跳ねていたりするだけで的確に向かってくるわけではないです。

地球防衛軍5の場合

アリは建物の角度お構いなしにプレイヤー一直線に向かってくるので障害物を気にする必要はなし。

カエルの場合は視線から外れると、見失った位置もしくはランダムな箇所?にまで移動して、それでも視線にプレイヤーが映らないと巡回行動になる臭い(合ってるかは知りませんが…。ただ空中にいても見つけたときは器用に建物を避けながらプレイヤーに向かってくるので、何らかの方法でナビメッシュ的なものをうまく使っているのだとは思いますが、エンジン違うしよくわかりません)

EDF:IRの場合

UE4使用しているので参考になるかと思ったら、巨大な敵(ロボ系)は建物(障害物)を破壊して進んでくるので障害物を避ける必要などない!!という超力技でした。

多分今作っている敵のイメージ的にも障害物はぶっ壊して突き進んできてくれるのが一番いいと感じたため、ナビメッシュ無しで障害物を避けてくる判定は無しでいいかと思い至りました。

(使用するとしてもプレイヤーが最後に着地した箇所に向かうなどを設定するならその時だけナビメッシュ使用するとか?)

そのため次回は障害物判定をやめてAIの攻撃作成を目指してみたいです。

あとノックバックとか。

そのあたりができたら本格的にビヘイビアツリーを作りこんで1キャラほぼ完成までかこつけたいところ。

頑張るぞい。

第12回「プレイヤーキャラが空中にいても追ってきてくれるタスク」」への2件のフィードバック

  1. 動きかっこいいですね
    プログラミング挫折しやすいのに続けてて凄い。
    game maker studio2ですら僕は駄目だったのに笑
    最近ロボカスタムゲーでマスビルダーなるものが発売されましたかアクションがなんか違う。だけど投稿主さんのはアクションが自分好みな感じです。

    • ありがとうございます!
      そう言っていただけるとすごくうれしいです。
      ちなみに動きはACVDをイメージして作ってます。
      マスビルダーはガンダムブレイカーみたいで嫌いではないのですが、やっぱりAC系の方が好きなものでそっちよりに作っています。
      いまAIで絶賛立ち止まり中で正直挫折しかかっています……が、コメントいただいてやる気がでました!!
      頑張って更新し続けようと思います!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です