Questを作ってReferenceAliasにActorを登録、何かさせる。このようなシチュエーションで、Actorが同じReferenceAliasに2つ登録されてしまう問題が起こりました。
解決方法はこうでした。
- QuestはStart Game Enabledにチェックを入れる(Questは原則走りっぱなしでStop/Startしない)
- ReferenceAliasはOptionalにチェックを入れる(Questが動いている間でもForceRefToやClearできるようにする)
最初は、QuestのStart Game Enabledのチェックを外しておき、必要になるまでは止めておくようにしていました。ActorをReferenceAliasにForceRefToしてQuestをStart、用が済んだらQuestをStopしてReferenceAliasをClearします。必要のないQuestが動いているのが気になったからです。
ところが、このやり方だとActorに同じQuestのReferenceAliasが2つ登録されてしまいました。各種イベントも重複して発生します。ReferenceAliasをClearしてQuestをStopしても、2つのうちの1つが残ってしまいました。コンソールでActorを選択してsvを実行すると確認できます。
そこで、ヴァニラ・フォロワーのフレームワークであるDialogueFollowerはどうなのか確認したところ、こちらは問題がなく、違いはQuestが動きっぱなしというところにありました。