ビヘイビアツリーにおけるデコレイターの評価タイミングについて

特定の条件下でデコレータでブラックボードにアクセスした際にnone trying to readとなってしまします。

具体的には、Targetに値が入っているかBlackboard base conditionデコレータを使用して値を確認した後にCloseEnoughデコレータを利用して攻撃範囲か判定しているのですが、そこでnone trying to readが発生します。






画像はエラー部分のみをわかりやすく組んだものなので、ほぼクイックリファレンスと同様のものになっています。違いはTargetのセットをビヘイビアツリー外(Perceptionを利用してAIコントローラから)で行っている点と、

CloseEnoughデコレータの 「aborts observer を Both 」にしている点

です。
この単純なロジックでもプレイヤーを見失った際にタスクのReceive Abort AI、CloseEnough の Receive Observer Deactivated AIが呼ばれた後に、なぜかCloseEnoughtのPerform Condition Check AIが呼ばれ null になっている Target にアクセスしてしまいます。

aborts observer の Self を除くと(none または lower priority)エラーは起こらないのですが、AIの行動上 aborts observer を Both にする必要があり、困っています。


私はaborts observerはデコレータのPerform Condition Check AIの返すbool値が変わった際に自身か自身より優先度の低いノード、またはその両方の タスクのReceive Abort AI、デコレータの Receive Observer Deactivated を呼び動作を止めるものと認識しています。
なので、Observer deactivatedが呼ばれた後にPerform Condition Checkが呼ばれる現象とは無関係に思えるのですが、私のaborts observerの認識がまちがっているのでしょうか? それともUEのビヘイビアのバグなのでしょうか?

DecoratorのObserverAbortについて振る舞いの調査をまとめたブログがありました。
参考になるかと思われます。

Behavior TreeのDecoratorのObserver Abortsについて