Page 1 of 1

ビヘイビアツリーでループを使用すると2回目以降条件にかかわらずアクションが実行される

Posted: 2022/06/10 12:57
by keitaro123
OS : WIndows / Mac
Unity : Unity 2020.3.35f1および2022.1.1f
Arbor 3.8.10

ビヘイビアツリーにおいて、
ループ付きSequencer(Selector)以下の全てのアクションが失敗した場合、二週目以降は条件判定の結果によらず1つめのアクションが実行されます。

1. SequencerにLoopデコレータを設定し、1回以上Loopさせるようにします。
2. Sequencerの下にデコレータをつけたアクションを1つ配置し、例えばデコレータに必ず失敗するような条件を指定しておきます。
3. 2週目以降はデコレータが失敗しているかどうかにかかわらず、アクションが実行されます。

すいませんがよろしくお願いします。

Re: ビヘイビアツリーでループを使用すると2回目以降条件にかかわらずアクションが実行される

Posted: 2022/06/10 21:52
by caitsithware
ご報告ありがとうございます。

確認したところ再現できましたので修正いたします。

暫定対処方法
  1. Assets/Plugins/Arbor/Internal/Scripts/BehaviourTree/TreeBehaviourNode.csをコードエディタで開く。
  2. 613行目から629行目あたりを以下のように変更。

    Code: Select all

    if (HasConditionCheck())
    {
    	// RegisterRevaluation
    	behaviourTree.RegisterRevaluation(this);
    
    	// Interrupt reevaluated
    	if (!interrupt)
    	{
    		// Check First Condition
    		if (!ConditionCheck(0))
    		{
    			// Failure if the condition is false
    			return false;
    		}
    	}
    }
    
※症状の修正確認のみ行っているため意図せず他に影響する可能性があります。

Re: ビヘイビアツリーでループを使用すると2回目以降条件にかかわらずアクションが実行される

Posted: 2022/06/11 07:46
by Guest
ありがとうございます。
正常に動作するようになりました。