https://free-gamer.hatenablog.com/entry/2019/08/10/024708
UE4初心者です。上の記事通りに作っていったのですがランダムに移動や見つかったという判定は出ているのに追跡を行ってくれません。解決策を教えてください。
説明足りなければ捕捉します。
https://free-gamer.hatenablog.com/entry/2019/08/10/024708
UE4初心者です。上の記事通りに作っていったのですがランダムに移動や見つかったという判定は出ているのに追跡を行ってくれません。解決策を教えてください。
説明足りなければ捕捉します。
おそらくレベル上にナビメッシュボリュームが配置されていないことが原因で、
敵が移動可能な領域を決定できていないものと考えられます。
ナビメッシュボリュームはレベル全体に配置しておりランダムな移動はしています。
ただプレイヤーの追跡を行なってくれない状態です。
・敵に見つかった判定は出ているとのことですが、その判定後にSet Blackboard ValueでObject Valueにちゃんとプレイヤーの参照がセットされていますか?
・Move Toノードの詳細パネルで追跡対象を設定していますか?
Object Valueには変数名Player RefでActorの方をセットしています。プレイヤーキャラクターのオブジェクト参照をPlayer Refの型にセットしたのですがGet Actors Perceptionの後のActorオブジェクト参照で互換性がありませんと出てつなぐことができませんでした。alt text
今あるPlayer Refを変数ごと削除して、Get Actors Perceptionノードのinfo Targetピンからドラッグアンドドロップで線を出して、何も無いところでマウスの左ボタンを離して出てくるメニューの上の方に「変数を作成」と言ったようなコマンドがあると思います。
そちらから作成したら上手くいきませんでしょうか?
すみませんプレイ屋のオブジェクトを参照するのかと思って勘違いしてました。それでしたら先ほど出した画像の場所はうまくいっています。判定はできているのに追跡してくれないのは本当に謎です・・・。
私もお力添えできず申し訳ありません。
判定ができている、というのは何を見ておっしゃっていますか?
サイトのPrint Stringノードの出力のことですか?
提示いただいたサイトを見る限りでは「Player Ref」にプレイヤーの参照が格納されており、
かつEnum「Find_Lost」がFindであれば問題なく追跡してくると思うのですが、
これらの値をTickで確認してみてはいかがですか?
Get Blackboardノードの出力ピンからGet Value as Enumなどを出して
Keyには対応するKey名(Find_Lostなど)を入力してください。
何らかの原因で判定が変わっている、あるいは追跡行動が一瞬で中断されているのかもしれません。
こちらこそまだUE4をあまり理解していない部分がありすみません。
プレイヤーの追跡はできていることが分かりました。BTでランダム移動を消すと追跡してくれました。プレイヤーを見つけてもどうやらランダムな移動をしているようでそのため追跡できていないみたいです。
また、見つかった判定が一度しか出ていなかったのですがきじのDo once部分を消すと何度も発見するようになりました。
ご回答から察するに
ことがざっと考えられます。
記事の実装の場合、Do Onceは残したほうがベターかもしれません。
1.については
公式ドキュメント
を参照してください。
2.については参考にされた記事の画像を見ての通り
各ノードの右上に実行順が表示されているかと思います。
場合によってはここが意図しない順番になっている可能性がございますので
ビヘイビアツリーのなにもないところで右クリック→自動アレンジ
を選択してみてください。
解決しました!!ビヘイビアツリーの順序が順番通りになっていなかったのとSet Blackbord ValuesのEnum Key Nameの中の綴りが間違っていました・・・。
まさか綴りが間違っているとは思わず完全に見逃していました。
長くなってしまい申し訳ありませんでした。本当にありがとうございました!!