Arbor3のビヘイビアツリーを使っていてわからないことがあったので、質問させてください。
見た目など異なるキャラクターが数十種類いて、AIとしての挙動がすべて同じ場合、一人に設定したビヘイビアツリーを使い回すことは可能なのでしょうか?
キャラクターごとにビヘイビアツリーコンポーネントを新たにアタッチする必要があるのでしょうか?
親オブジェクトにビヘイビアツリーコンポーネントをアタッチし、動的に生成される子オブジェクト(キャラ)のtransformやanimatorのパラメーターなどをビヘイビアツリーで操作するみたいなことは可能なのでしょうか?
1キャラに設定したビヘイビアツリーを使い回せるかどうかについて
Forum rules
Here is the forum to do the questions about how to use to Arbor developer.
Attention point:
ここは、Arbor開発者へ使い方に関する質問を行うフォーラムです。
注意点:
Here is the forum to do the questions about how to use to Arbor developer.
Attention point:
- We can not answer your questions about your project specific issues.
- We can not answer your questions on Unity's specification issues.
- Please check Arbor Documentation and ask a question if you still don't know how to use it. If the desired function is not described in the document, it is highly possible that the function does not exist from the beginning, so go to the request forum.
ここは、Arbor開発者へ使い方に関する質問を行うフォーラムです。
注意点:
- ユーザー様のプロジェクトの仕様上の問題や設計に対する質問には答えられません。
- Unityの仕様上の問題に対する質問には答えられません。
- Arbor Documentationを確認の上、それでも使い方がわからない場合にご質問ください。欲しい機能の記載がドキュメントにない場合は機能が元から存在しない可能性が高いので要望フォーラムへ。
- caitsithware
- 管理人
- Posts: 495
- Joined: 2015/08/17 12:41
Re: 1キャラに設定したビヘイビアツリーを使い回せるかどうかについて
ご利用ありがとうございます。
BehaviourTreeの使いまわしについてですね。
(AnimatorControllerやモデル関連の置き換え方法についてはUnityの仕様によるところになりますので、こちらでの回答は致しておりません)
例えば、キャラクターの見た目ごとにArborFSMかBehaviourTreeを持ち、SubBehaviourTreeReferenceで共通AI用BehaviourTreeを使用するケースが考えられます。
この場合、親グラフから必要なコンポーネントの参照を子グラフのParameterContainerに渡してParameter経由で参照するか、子グラフ側でのFlexibleComponentの参照タイプをHierarchyのRootGraphにするなどで参照できるようになります。
キャラの見た目用の子オブジェクトを生成した直後に必要なコンポーネントをParameterに設定し、BehaviourTree側はParameter経由で参照するようにしてください。
関連リンク: また、以前2016年5月にもFSMの使いまわしについて似たような質問がありましたので、そちらもよろしければご参照ください。
FSMの他のオブジェクトへの使い回し
(古いトピックですので、その点はご注意を)
BehaviourTreeの使いまわしについてですね。
Animatorなどのコンポーネントは事前に追加しておきBehaviourTreeで参照、AnimatorControllerやメッシュなどのモデル関連情報のみを置き換えるようなシンプルなケースでしたら、特にBehaviourTree側での対応なしで使いまわしができるかと思います。
(AnimatorControllerやモデル関連の置き換え方法についてはUnityの仕様によるところになりますので、こちらでの回答は致しておりません)
いくつか方法も考えられますので、その方法によってはキャラクターごとにBehaviourTreeを追加する必要も出てくるかと思います。
例えば、キャラクターの見た目ごとにArborFSMかBehaviourTreeを持ち、SubBehaviourTreeReferenceで共通AI用BehaviourTreeを使用するケースが考えられます。
この場合、親グラフから必要なコンポーネントの参照を子グラフのParameterContainerに渡してParameter経由で参照するか、子グラフ側でのFlexibleComponentの参照タイプをHierarchyのRootGraphにするなどで参照できるようになります。
この場合は、事前にコンポーネントを参照させておけないため、ParameterContainerなどを介して参照を渡すためのスクリプトが別途必要になります。
キャラの見た目用の子オブジェクトを生成した直後に必要なコンポーネントをParameterに設定し、BehaviourTree側はParameter経由で参照するようにしてください。
関連リンク: また、以前2016年5月にもFSMの使いまわしについて似たような質問がありましたので、そちらもよろしければご参照ください。
FSMの他のオブジェクトへの使い回し
(古いトピックですので、その点はご注意を)
Re: 1キャラに設定したビヘイビアツリーを使い回せるかどうかについて
ご回答ありがとうございます!
ParameterContainerとスクリプトを組み合わせて参照の問題を解決しようと思います。
ParameterContainerとスクリプトを組み合わせて参照の問題を解決しようと思います。