現在、2Dによるトップビューのアクションゲームを制作しており、その中で「突進攻撃」を行う敵キャラクターの実装を考えております。
挙動としては「闘牛士に向かって走る闘牛」のように、Playerに避けられても同じ方向へまっすぐ走っていってしまう、と言った具合の物を作ろうとしています。
そこでこのようなノードでPlayer向かって進むようにしたのですが、
ホーミングミサイルのようにどこまでも付いて来てしまい失敗。
次はBoolで条件を付けて攻撃を開始したら追跡機能を停止させようとしたのですが、今度はPlayerがいた位置まで行くとぴたりと止まってしまいました。(よくよく考えたら当然の挙動でした・・・)
ここからが質問なのですが、
どうすれば上のイラストのような挙動を実現する事が出来るでしょうか?
基本的な質問で申し訳ありませんがお教え願えませんでしょうか。
Syogo
(Shogo)
2
Simple Move to Locationのゴールの値をいじるだけで、簡易的な突進は実装できそうです。
プレイヤーを超えて行ってほしいとのことですので、純粋にプレイヤーへの進行方向にプラスで好きなメートルを設定できるような作りを考えてみました。
作成したBPがこちらになります
進行する方向の単位ベクトルを作り、任意の数字を乗算(今回は5m[500])して、プレイヤーの位置と足したものをGoalとしています。
今回は5秒間隔でタックルをするようにしています。
TackleAttackのイベントが呼ばれた時に、プレイヤーの位置を取得してGoalに入れているので、突進をした後にプレイヤーが移動をしても追従するということはありません。
ただし、移動できないマップ構造(Goal地点に床がなかったり、ナビゲーションがない場合)では動かないという不具合が出てきますので、「突進できない状況」というのを判断する処理は別途必要になると思います。
また、Goalに到着したかどうかという状態を取りたい際にも他の処理でまかなう必要が出てくるとは思います。
以上になります。ご参考になれば幸いです。
(すごくわかりやすくて、かわいい絵でほっこりしました!!)
回答ありがとうございます!!
そして返信が遅れて申し訳ありません。
お教えいただいたノードを試してみた所、見事に成功しました!!
仰る通りナビゲーションのない所には向かわないので、壁にぶつかっていくような動きをさせられるように色々と試してみようと思います。
優しいご指導ありがとうございました!
絵の方ももっと上手くなるよう勉強しますw