プレイヤーの判別方法

プレイヤーキャラクターに例えば「Player」というTagsをつけて
「Actor Has Tag」でPlayerかNPCかチェックを行えば質問の対応が出来ます。

「Actor Has Tag」に関しては、下記リンクをご参照ください

(リンク内ではFindTarget)

例えばドアに接触することで新しいレベルを開きたいというとき、それがプレイヤーであるか、NPCであるかを判別する方法はありますか?NPCのコリジョンがドアのコリジョンと接触するため、勝手にレベルが開かれてしまいます。プレイヤーと接触したときのみ開きたいのです。

Get All Actors Of Class はレベルに存在している Actor を検索してしまうので、現状の処理の内容が下記のようになってますね。

  1. 何かがぶつかる
  2. First Parson Character をレベルから検索
  3. キャラクタータグが設置されてるか判別

なので、必ずレベルが開かれてしまうわけです。

https://docs.unrealengine.com/latest/JPN/Gameplay/HowTo/FindingActors/Blueprints/index.html

OnComponentBeginOverlap ノードの Other Actor がぶつかってきた Actor なので、それに対して Actor Has Tag をするとうまくいくと思います。

別のアクターとぶつかったときも反応しました・・・画像はcollisionとプレイヤーが重なるとレベルを開くBluePrintです。

プレイヤー以外のアクターとギミックがBeginOverlapするとき、プレイヤーはCharacterタグを持っているためどのみちレベルが開かれているんじゃないかと思います。BeginOverlapしたとき、それがCharacterタグを持っているか調べることはできますか?単純なミスをしていた場合はすいません。

ありがとうございます。大解決しました。