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

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

新規登録して質問してみよう
ただいま回答率
85.48%
UE4

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

Q&A

解決済

2回答

3917閲覧

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

011100001010_16

総合スコア13

UE4

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

0グッド

0クリップ

投稿2018/05/03 14:43

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

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

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

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

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

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

  1. Esa変数を定義しているのは okami_AI と okamiBPだと思います

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

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

イメージ説明

  1. okami_BPのBeginPlayにてレベルBP上から指定したEsaをAIControllerを取得し、okami_AIにキャストしてokami_AIのEsaに代入します。

代入後okami_AIのSetupイベントを呼び出します
イメージ説明

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

イメージ説明
イメージ説明

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

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

投稿2018/05/07 12:59

MMashiro

総合スコア2378

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

011100001010_16

2018/05/07 14:21

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

2018/05/08 04:54

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

0

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

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

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

投稿2018/05/06 05:02

MMashiro

総合スコア2378

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MMashiro

2018/05/07 01:37

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

2018/05/07 02:04

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

2018/05/07 02:12

Blackboardの指定などはビヘイビアエディタ周りで指定することをおすすめします詳しくはこちらのURLを参考にしてください http://unrealengine.hatenablog.com/entry/2014/08/01/223032 キャストは端的に言えば変換を行うノードで、objectピンに指定されたオブジェクトを他のオブジェクト型に変換するためのノードです 今回だとEsaが既にgoat_BP型なので変換は不要と認識されているという感じですね なぜ動かないかはビヘイビアツリーも見てみないと確かなことは言えませんが、 まずはEsa変数に正しく値がセットされていることをデバッグで確認してみてください。 (Set Value as Objectを右クリックしてブレークポイントを設置し、止まったときにEsaにマウスカーソルを合わせて none になっていなければ少なくとも値が入っていることを確認できると思います)
MMashiro

2018/05/07 02:49

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

2018/05/07 03:17

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

2018/05/07 03:53

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

2018/05/07 05:01

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

2018/05/07 05:27

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

2018/05/07 09:30

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問