sejd
(sejd)
1
移動は全てAIがしてプレイヤーは射撃のみをするゲームを作成しています。
キャラクターは敵もプレイヤーも同じキャラクターブループリントで作っています。
【booleanなどで味方か敵かを判定しています。】
レベル上にキャラクターブループリントを配置してプレイをした場合に
プレイヤーがコントロールしていないキャラクター以外はAIMoveToで移動してくれるのですが、
プレイヤーがコントローラーを所持しているキャラクターだけAIMoveToで動いてくれません。
プレイヤーがコントロールを所持している場合でもAIMoveToで動かす方法はありませんか?
※AIMoveToを使う方法でお願いします。多少手荒な方法でも構いません。
PAVI_PAVI
(PAVI_PAVI)
2
Player Controllerを所持しているキャラクターはAI Move Toが正常に動作しません。
ですので【AI(NPC)をプレイヤーの様に動かす】必要があります。以下に手順を書きます。
1.レベルのGame Modeを「None」または「Game Mode」に変更する
2.プレイヤー用の【AI Controller】を作成し。Begin PlayにEnable Inputを追加。
3.プレイヤーキャラクターとなるキャラクタをレベル上に配置する(プレイヤースタートは使わないでください)
4.3番のキャラクタに2番で作成したAI Controllerを割り当てる
4.キャラクタにカメラコンポーネントがある場合、レベルブループリントで【Get Player ControllerからSet View Target With Blend】を呼び出す。(New View Targetには3番で配置したキャラクタを指定)
以上の手順で【AI(NPC)をプレイヤーの様に動かす】事が出来ます。
プレイヤー用のAI Controllerはキー入力やマウス操作を受け取る事が出来、AI Move Toも使えます。
AI Move Toはこれで使えますが、sejdさんはTopDownテンプレートは読まれましたでしょうか?
AI Move Toこそ使っていませんが、経路探索をして移動するということはそちらでも実装されているので一度見てみることをオススメします。
sejd
(sejd)
3
ご回答ありがとうございます。
ひとまずTopDownテンプレートを確認しました。TopDownテンプレートの移動方法とはSympleMoveToLocationのことですか?
こちらのノードはAcceptanceRadiusの設定やmovementResultの情報が取れないので使用しませんでした。
もし他の移動方法があったなら申し訳ないです。
いまからAImovetoの方を試してみます。