エネミー(狼)の動作追加について質問があります。
NavMeshBoundsVolumeを使ってレンジ内に侵入したプレイヤーに向かって動く処理を実装しましたが、エネミー(狼)は動きませんでした。追加した内容は以下の通りです。
①NavMeshBoundsVolumeをレベル上に展開。(0812_03.PNG)
②<エディタ設定 - EQS >をtrueに変更。(0812_02.PNG)
③BehaviorTree、BlackBoard、EQS、AIController の追加。(0812_04.PNG)
④AIControllerの設定。(0812_05.PNG)
⑤エネミー(狼)のAIコントローラー設定。(0812_06.PNG)
⑥EQSの処理追加(0812_07.PNG)
⑦BlackBoardにターゲットとなるプレイヤー変数追加。(0812_08.PNG)
⑧BehaviorTreeの処理追加(0812_09.PNG)
⑨エネミー(狼)をレベル上に配置
NavMeshBoundsVolumeがエネミー(狼)を配置した場所を除外していることが気になるのですが、エネミー(狼)をポーンクラスで作成したことが原因でしょうか。
それとも設定や手順に抜け、誤りがあるのでしょうか。お手数ですが、ご確認をよろしくお願いいたします。
NavMeshBoundsVolumeはコリジョンで判断していたはずなので
レベルにあらかじめ配置するとはじかれていたと思います。
レベルに配置ではなく動的生成で対応すれば問題なくいけるはずです。
動的生成のポイントはTragetPointという用意されているオブジェクト(Transformのみのオブジェクト)があるので
それの参照を取得してそのLocation値でスポーンさせる方法でいけるか試してみてください。
あと動かないのはNavMeshBoundsVolume内の緑色のエリア内でしか動作しないので
それ以外の場所にキャラクターを置くと一切動作しなくなります(機能しない)
TragetPointを用いた方法でエネミーの動作を実装することができました。
ただし、[ポーンクラス - スタティックメッシュ]でエネミーを実装していたため、
[キャラクタークラス - スケルタルメッシュ]にて実装するように修正中です。
(アニメーションが実装できないようなので)下記、質問となりますが、
①スタティックメッシュでアニメーションの適用は可能でしょうか。
もし可能でありましたら方法を教えていただきたいです。
②SK_Meshにて修正中ですが、コリジョンの設定方法を教えていただけますでしょうか。
現在、添付画像のように実行終了時に警告が出ています。
原因は特定できていないため調査中ですが、コリジョンを適切に設定できれば解消するのではと考えております。
追加でもう1点お聞きしたいのですが、
NavMeshBoundsVolumeの範囲外にプレイヤーが存在する場合にエネミーがプレイヤー(Target)の方向に向かってバウンドしており、
NavMeshBoundsVolumeの範囲外(1Fフロア)に落下してしまいます。エネミーを必ず接地させておくために何か良い方法はありませんでしょうか。
Simulate Physicsはtrueにしております。
スタティックメッシュは名前の通り静的な物体のメッシュとなり、ボーンがないためアニメーションさせることはできません。
NavMeshやAI周りは、
単純にプレイヤーが移動できる範囲もAIが移動できるよう全て囲ってしまうのではダメですか。
懸念点についてはNavMeshをフィールドすべてに適応することで解消いたしました。
ですが、可能であれば範囲を限定したいためこれから調整します。
SK_Meshのコリジョン調整をどこで行うかについては、
SK_Meshを開き、右上のPhysicsをクリックすると画像のような画面になります。
この中でコリジョンの設定が行われているか確認してもらってもよいでしょうか。
エラーログを見る限り、Physicsアセット内でコリジョンが存在していないから出ているものと思われます。
であれば何か1つコリジョンを追加すれば先ほどのエラーログは出なくなると思いますので、ツリーにコリジョンを追加してみてください
SkeletonTreeからEnableCollisionAllを選択していますがコリジョンが追加されません。
EnableCollisionは各部位ともに非活性となっております。
設定箇所が間違っているのでしょうか。
AddShapeにて追加後にすべてのコリジョンを有効化しましたが警告が出ています。
Sphereコリジョンは設定されているように思われるのですが。
ちなみに先ほどの画像でコリジョンが有効化されているという認識で問題ないですよね?