UE5でゲーム作ろう!モーションマッチで華麗に障害物を乗り越えるアクロバティックな敵キャラと対戦できるシューティングゲームを開発しながらサンプル公開しています。
公開中 yossi40-100/GASP-ALS: Game Animation Sample with ALS Layering
本記事は、敵AIに上下方向のエイムオフセットをさせる(高低差あってもちゃんと狙ってくるようにする)方法の解説です。
段差で逃げても正面撃つ敵AIではシューティングゲームとしては弱すぎますね。
というわけで、上下方向のエイムですが、
Set Default Focus サービスでは、カプセルのヨー軸(Z軸)しか対象にならないようで、これは横方向のエイムしかできません。
ないので、使うのを止めて、その代わりにエイムさせるタスクの中でついでに Set Focus を実行することで対応できました。
エイムの時だけ必要で、エイムしない時にはみてもらう必要がありません(※後述の罠あり)
タスクなので、反対側もフィニッシュに繋いで終了させるのを忘れずに
上下方向のエイムができるようになったので、敵の攻撃が当たりまくるようになりました
一旦やられたらもうほぼ逃げようがありません
バグ修正(25/1/19)
『Navエリア外に逃げるとこっち見ながら歩く』というご指摘頂きました。
ご協力ありがとうございます。
Set Focus にはちょっと私が勘違いしていた罠があって、
これは呼び出された瞬間だけそっちを見るノードだと思い込んでいましたが、
実際にはいったん目標アクタを設定すると、ひたすらそれを追いかけるようで、
見るのをやめさせたい場合は、「Clear Focus」 が必要でした。(処理を呼ばないだけでは不十分)
おそらく追いかけを止めるタイミングでSetFocusの相手がNullになるとキャンセルできるパターンにたまたまなっているケースが多かったので見逃したようです。
Lyra Sample GameでSetFocusとClearFocusがサービスになっていました。
にしてもあれはタスクが少なすぎる感(;^ω^)
GAS(ゲームアビリティシステム)の勉強も必要そう
EQSも使わにゃ
コメント