質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.76%

  • UE4

    71questions

    UE4はUnreal Engine(アンリアルエンジン)の第4世代です。 UEは、Epic Gamesより開発されたゲームエンジンです。

UE4でNPCを追いかけるENMを追加したい

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 162

 UE4でNPCを追いかける敵を実装したいのですが、どこさがしてもプレイヤーしか追いかける方法が載ってません(;_;)

set value as objectのobject valueにNPCのブループリントをcastしていますが、cast to (NPCのBP名)のobjectに何を繋げればいいのかわかりません。
何を繋げたらいいか、もしくはほかの方法で解決策があればお願いしますm(__)m

 発生している問題・エラーメッセージ

objectのタイプが不確定です。特定タイプを暗示するために cast to (NPCのBP名)へ何かを指定してください。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+2

原因がわかりました。
いくつかあったので順に説明します

  1. Esa変数を定義しているのは okami_AI と okamiBPだと思います
    okamiBPでEsaを指定しても自動でokami_AIにバインドされたりはしないため何らかの方法でokami_AIに渡してやらなければいけません。
    まずは変数周りの解決を行います

  2. 今回はokami_AIのBlackboard周りの設定をBeginPlayではなくAdd CustomEventを用いてSetupイベントを作成しイベント内で設定をするようにしました(理由はokami_BPのBeginPlay後にokami_AIの設定を行いたいためです)
    イメージ説明

  3. okami_BPのBeginPlayにてレベルBP上から指定したEsaをAIControllerを取得し、okami_AIにキャストしてokami_AIのEsaに代入します。
    代入後okami_AIのSetupイベントを呼び出します
    イメージ説明

  4. Move To等で移動させるには経路探索用のNavMeshが必要なのでNavMeshBoundsVolumeをフィールド上に追加し経路探索範囲を指定します(今回はフィールド全域を覆いました
    イメージ説明
    イメージ説明

これで実行してみてください。フィールド上に配置したokami_BPが指定したEsaに向かって走っていくと思います

画像使いましたが隠れている箇所なども有るのでわからなかったら気軽に質問してください

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/07 23:21

    出来ました!本当にありがとうございます。ありがとうございます!
    とても親切で分かりやすく教えていただいて。
    この処理にGW消化しましたがおかげで無事実装することが出来ました。
    本当にありがとうございます。

    キャンセル

  • 2018/05/08 13:54

    解決できて良かったです!
    また何か行き詰まったりなどしたらお気軽に質問してください

    キャンセル

0

どういった仕組みで追いかけるようにしているのかわかりませんが、
cast toノードのobjectノードにはキャスト対象のオブジェクトを指定しなければいけません。
指定をしなかったら例えばNPCが10体存在したらどれを対象にキャストしていいかわからないですよね(正確にはちょっと意味が違いますが)

そのため今回だと追いかける対象のNPCをobjectノードに指定してやればいいと思います

(ただ単純にMove toとかで追跡をするのであればCast toも使わないような気もします…)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/07 10:32

    回答ありがとうございます!
    早速objectノードにNPCの変数を繋げてみたところ、エラーで '変数名’ is already a 'NPC名' you dont need Cast to (NPC名) と表示されてしまいました。
    http://gazo.mojimaru.com/v6hl0y0G←画像です。

    キャンセル

  • 2018/05/07 10:37

    それはエラーというかヒント的な意味合いの表示になります。
    キャストは不要なのでそのままピンを繋げてくださいという意味です。
    そもそもキャストの意味合いを勘違いしているかもしれないです…?

    キャンセル

  • 2018/05/07 11:04

    キャストの勘違いはありそうです……。
    参照したいobjectを渡すものみたいな認識です。
    ピンをそのまま繋げても反応はありませんでした(´;ω;`)
    処理を画面にまとめました→http://gazo.mojimaru.com/uscZsm73

    キャンセル

  • 2018/05/07 11:12

    Blackboardの指定などはビヘイビアエディタ周りで指定することをおすすめします詳しくはこちらのURLを参考にしてください
    http://unrealengine.hatenablog.com/entry/2014/08/01/223032

    キャストは端的に言えば変換を行うノードで、objectピンに指定されたオブジェクトを他のオブジェクト型に変換するためのノードです
    今回だとEsaが既にgoat_BP型なので変換は不要と認識されているという感じですね

    なぜ動かないかはビヘイビアツリーも見てみないと確かなことは言えませんが、
    まずはEsa変数に正しく値がセットされていることをデバッグで確認してみてください。
    (Set Value as Objectを右クリックしてブレークポイントを設置し、止まったときにEsaにマウスカーソルを合わせて none になっていなければ少なくとも値が入っていることを確認できると思います)

    キャンセル

  • 2018/05/07 11:43

    キャストは変換なのですね!理解しました。

    確認した結果Esaはnoneでした。
    調べたら下記URLの回答の2枚目の画像の、defaultの項目が存在していませんでした。
    https://answers.unrealengine.com/questions/423642/index.html

    ビヘイビアツリーはすごく単純になっています。
    http://gazo.mojimaru.com/pc5l5X4F

    キャンセル

  • 2018/05/07 11:49

    Esa変数にはどこからか代入(Set)してますでしょうか?
    代入をしていなければ上記URL通りにEsa変数を選択し、編集可能にチェックを入れ、レベルエディタの詳細タブからEsaの対象を選択してみてください

    キャンセル

  • 2018/05/07 12:17

    代入はしてないです。
    レベルエディタでEsaの対象をgoat_BPに設定出来ましたが、依然追いかけてはくれなかったです。
    本当に申し訳ございません……。

    キャンセル

  • 2018/05/07 12:53

    今手元に環境がないので確かなことは言えませんが、
    Use Blackboardの出力側にあるBlackboard ComponentピンからSet Value as Objectの入力側にあるターゲットというピンに繋いでみてください

    キャンセル

  • 2018/05/07 14:01

    動かないです……。
    もういっそのこと別の方法でやるのがいい気がしてきました……。
    親身に教えて下さりありがとうございます。また(多分すぐ)問題にぶち当たったら質問させていただきたいと思いますm(__)m
    ちなみに設定したにも関わらずEsaはnoneでした……。

    キャンセル

  • 2018/05/07 14:27

    うーん何か根本がおかしいような気がしますね…
    確認は本日の夜になってしまいますがプロジェクトを公開していただければ確認しますので気が向きましたら公開していただければと思います

    キャンセル

  • 2018/05/07 14:43

    http://firestorage.jp/download/6a8e1350b1426e1f7807f6ab4d6a3b520340d0e2
    こちらのサイトでパスワードは【oikake】です。
    ド素人の作ったプロジェクトで見にくいかもしれませんが、どうぞよろしくお願い致します。

    キャンセル

  • 2018/05/07 18:30

    すいません、ダウンロードしたのですがDefaultInput.iniしか添付されていないようでした…

    キャンセル

  • 2018/05/07 20:11

    http://firestorage.jp/download/ed2d7d50d7911f0183fe7660c9beae0f69d83cc4
    すいません……。これで全部入ってると思います。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • UE4

    71questions

    UE4はUnreal Engine(アンリアルエンジン)の第4世代です。 UEは、Epic Gamesより開発されたゲームエンジンです。