操作キャラクターのbpと他のbpでの変数の受け渡し

操作キャラとオブジェクトの動きを変数を使って同期させたいのですがうまくいきません。

具体的には
Blueprint sidescroller BP の既存の MyCharacterBP(画像1)から他のBP( BlackPointBP、画像2)に変数を送りたいため、画像のようにBPを組んだのですが動きません。原因を調べたところ変数を送る側の(ここだと MyCharacter)をレベル上に配置して Details->default に送られる側(ここだと BlackPointBP)を設定しておく必要があるようです。

しかし MyCharacterBP に特殊な設定がされているようでPlayにしないと配置されません。予め MyCharacterBP を配置しても操作できるのはPlay時に配置される別の MyCharacterBP です。MyCharacterBP のブラウザを開いて Defaults->defaults を見ても設定できません。どうすればいいでしょうか? ご教授いただけると幸いです。

思い浮かぶ解決策としては
・プレイ時に MyCharacterBP が勝手に配置されないようにする(予め配置した MyCharacterBP を操作できるようにする)
・レベルに配置しなくても MyCharacterBP のdefaultsを設定できるようにする。
です。

画像1

画像2

PlayerControllerからほかのActor(BlackPointBP)に対して情報を渡す方法はいくつかあります。次のいずれかの方法で実現できます。

  1. PlayerControllerの変数に一時的に格納して、BlackPointBPのBlueprintでGetPlayerController(とキャスト)を行い、一時保存した値を取得する
  2. PlayerControllerのBlueprintでTagで検索を行い、BlackPointBPの参照を取得する(http://historia.co.jp/archives/504参照)
  3. BlackPointBPをPlayerControllerからSpawnするようにし、Spawn直後に参照をPlayerControllerのメンバ変数に格納する

今回の場合は、1か2が簡単だと思います。

また、単にBlackPointBPでもPlayerの入力を取りたいということであれば、BlackPointBPのDetails→Input→Auto Receive InputをPlayer0に変更すれば、BlackPointBPでもInput系のイベントを取得できるようになります。

GetPlayerControllerではなくGetPlayerCharacterにしたところうまくいきました。
ありがとうございます。