https://docs.unrealengine.com/latest/JPN/Gameplay/HowTo/PossessPawns/Blueprints/index.html
リンク先のドキュメントを参考にし、ゲーム中にプレイヤーキャラクターを変更させることができるようになりました。
しかしプレイヤーキャラクター以外のキャラは、ただ待機しているだけなのも不自然です。
普段はAIMoveToノードでプレイヤーに追従する形で移動させたいと考えたのですが、一つ困った点が出てきました。(Simple Move toノードはさらに先の処理のために使えないです。)
Possessノードで所有したことのないキャラは大丈夫だったのですが、一度でも所有したキャラは、例え別キャラにプレイヤーコントローラーを設定してもAIMoveToが働かないです。
原因はおそらくAIcontrollerが途中でなくなったことによるものだと思いますが、ゲーム中にAIcontrollerを特定のキャラに設定させる方法が分かりませんでした。
再スポーンをした際に、キャラにAIcontrollerを割り当てる方法があるみたいですが、それをスポーンさせずに行うことは可能なのでしょうか?
回答よろしくお願いします。
unaunagi
(unaunagi)
2
http://unrealengine.hatenablog.com/entry/2015/06/22/220000
実際に試してはいないのですが、
この記事の末尾にある、SpawnDefaultControllerが使えそうな気がします。
回答ありがとうございます。
記事の読み、SpawnAIFromClassノードを利用した方法を手元のテストプロジェクトで確認してみたところ、Spawnを利用した方法だとうまくいくと確認しました。
ただしこのままの状態ですと、Spawnを挟むため、既存のキャラに設定した変数や動的に付与するコンポーネントなど受け渡しが大変だと思います。
そのため、できればSpawnを利用せず、キャラにAIcontrollerを割り当てる方法を探しています。
誠に恐縮ですが、よろしくお願いいたします。
unaunagi
(unaunagi)
4
それのもっと下の、最後に追記されてる部分です。
SpawnAIFromClassを使わずに、
普通にSpawnActorで作ったアクターに、後からAIコントローラーを追加する方法が載ってます。
SpawnしたActorじゃないと駄目なのかと早とちりしてました。申し訳ありません。
SpawnDefaultControllerを最後に接続することでAIControllerの設定が出来ました。
ありがとうございました!