ビューポートでスポーンポイントから生成されるアセット参照

画像のパターン2のようにスポーンポイントBで生成されたアセットBをトリガーを通じてスポーンポイントAから生成したいのです。スポーンポイントBで生成されるアセットBにビューポート上のデフォルト項目で移動先となるスポーンポイントAを指定したいのですがスポーンポイントBからアセットBを参照できません。
ビューポート上のスポーンポイントBからアセットBを参照するにはどうすればよいでしょうか?

スポーンポイントBのBP(パターン1用)

アセットBのBP

スポーンポイントA(アセットBから呼ばれる部分)

直接アセットBを指定するのではなく、アセットの種類を指定する変数を作ってそれを参照するというのはどうでしょうか。

① 関数を2つ作る

  1. swapnA関数 → これはアセットAをスポーンする
  2. swapnB関数 → これはアセットBをスポーンする

② 今どちらを実行すればよいかを判別する変数を作る
ここでは文字列の変数を作り"A"が"B"のどちらが入っているかで判別することにします
image
数値(Integer)とかEnumを作るとか区別できるものなら何でも大丈夫です

③ パターン2の「アセットBを生成指定」のところでは、②の変数にも"B"をセットする
image

④ トリガーの処理では②の変数の内容に応じて①のspawnAとspawnBのどちらを呼ぶか決める

解凍いただきありがとうございます。私の理解追い付いていない&説明がへたなので、確認の意味も込めて追記します。上げさせていただいたパターン1の方式は問題なく実装できています。この仕組みの改良版としてパターン2では、スポーンポイントBから生成される物(チャイルド=アセットB)を破壊したら(トリガー)、別の場所にコレクション的に生成させたいイメージで生成されるチャイルドにどこに生成されるのか(スポーンポイントAorA-1)をビューポートから指定したい。画像に記載の説明がわかりにくくて申し訳なかったかもしれません、記載いただいた部分はおそらく添付画像アセットBのBPとスポーンポイントA部分が近い処理をしています。認識まちがってますでしょうか?現状は列挙型のBPを作り、変数をアセット側でセットして画像スポーンポイントAの左側のスイッチで選択して目的の場所にスポーンさせています。(左側切れててすいません)

すみません。問題点が良く分かっていなかったです。

他のアクタをビューポートで指定する方法なのですが以下の方法は試されましたでしょうか?

① ブループリントにActor型の変数を作って「インスタンス編集可能」にチェックを入れます。

image

② このブループリントをレベルに配置すると詳細画面で他のActorを選択できます

image

③ イベントグラフ内では GetActorLocation で座標を取得します

また、座標だけならActorの参照ではなくLocationそのものを指定しても良いかもしれません。

① ブループリントにVector型の変数を作って「インスタンス編集可能」と「3Dウィジェットを表示する」にチェックを入れます。
image

② このブループリントをレベルに配置すると見える紫色の物体がその3Dウィジェットで
これを移動させると変数の値も変わります。
image

また何か違っていたら返信してみてください。

1 Like