Arbor3BehaviorTreeメモ
Parameter
Parameterの取得方法も、Animatorのままだと感じてる。
下はTestValue(int)のParameterを取得する時の書き方
[SerializeField]
private BehaviourTree behaviourTree;
private void Start()
{
Debug.Log(behaviourTree.parameterContainer.GetInt("TestValue"));
}
エディタ上にはSet,Getの設定があるけど、スクリプトから直接変更出来ちゃうからプロパティではないのか…?
ParameterContainer
ParameterContainerコンポーネントをインスペクターからアタッチして、Parameterを書き込む方法もあるらしい。
ただ、GetIntで値を参照してもnullが返ってきて参照出来ないのが謎…
さっきは参照出来たのに…
[SerializeField]
private ParameterContainer parameterContainer;
private void Start()
{
Debug.Log(parameterContainer.GetInt("TestInt"));
}
AssemblyDefinitionReferencesで参照する必要がある物
参照する必要があるのは画像の通り
AnimationClossFade
Unityにもあるらしくて、スクリプトベースでAnimationの遷移が出来る優れもの。
項目のLayerName,StateName,部分にAnimatorのレイヤーとAnimationの名前を書く事でビヘイビアツリー上でAnimationが再生できる。
Transition Durationを設定することで、Animationが切り替わった時にぱっと切り替わるのではなく、切り替え先のアニメーションと良い感じにつなぎ合わせて切り替えてくれる。(切り替わりの違和感をなくしてくれる感じです)
少しはまった所が上に書いてある項目を設定しただけだと、ビヘイビアツリーの挙動がおかしくなるということ。
画像の様に両方のActionが同時に動いてて、Animationの再生自体が止まってしまった。
解決方法として、Wait Transitionにチェックを入れると解決する。
どこかのドキュメントでこの項目の説明を見た気がするんだけど、思い出せない…。AnimationClossFadeの部分で説明が無くてChatGPTを叩いて聞いた。
動作は下みたいな感じ。
noteってXとかの動画はれないのか…..(貼れた!)
ここから下が10月30日に追記した内容
ClossFadeでAnimatorのステート名を記入しないと駄目なのかなと思ってたけど、設定を変えてAnimatorをアタッチするとステート名がエディタ上のUIに出てくることが分かった。超便利だけど、毎回アタッチするのは面倒だ…