1キャラに設定したビヘイビアツリーを使い回せるかどうかについて

ここは、Arbor開発者へ使い方に関する質問を行うフォーラムです。
注意点:
  • ユーザー様のプロジェクトの仕様上の問題や設計に対する質問には答えられません。
  • Unityの仕様上の問題に対する質問には答えられません。

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.

Forum rules
注意点:
  • ユーザー様のプロジェクトの仕様上の問題や設計に対する質問には答えられません。
  • Unityの仕様上の問題に対する質問には答えられません。

Attention point:
  • We can not answer your questions about your project specific issues.
  • We can not answer your questions on Unity's specification issues.
Guest

1キャラに設定したビヘイビアツリーを使い回せるかどうかについて

Post by Guest » 2019/11/27 10:29

Arbor3のビヘイビアツリーを使っていてわからないことがあったので、質問させてください。

見た目など異なるキャラクターが数十種類いて、AIとしての挙動がすべて同じ場合、一人に設定したビヘイビアツリーを使い回すことは可能なのでしょうか?
キャラクターごとにビヘイビアツリーコンポーネントを新たにアタッチする必要があるのでしょうか?
親オブジェクトにビヘイビアツリーコンポーネントをアタッチし、動的に生成される子オブジェクト(キャラ)のtransformやanimatorのパラメーターなどをビヘイビアツリーで操作するみたいなことは可能なのでしょうか?

User avatar
caitsithware
管理人
Posts: 313
Joined: 2015/08/17 12:41

Re: 1キャラに設定したビヘイビアツリーを使い回せるかどうかについて

Post by caitsithware » 2019/11/27 11:40

ご利用ありがとうございます。

BehaviourTreeの使いまわしについてですね。
ゲスト wrote:
2019/11/27 10:29
見た目など異なるキャラクターが数十種類いて、AIとしての挙動がすべて同じ場合、一人に設定したビヘイビアツリーを使い回すことは可能なのでしょうか?
Animatorなどのコンポーネントは事前に追加しておきBehaviourTreeで参照、AnimatorControllerやメッシュなどのモデル関連情報のみを置き換えるようなシンプルなケースでしたら、特にBehaviourTree側での対応なしで使いまわしができるかと思います。
(AnimatorControllerやモデル関連の置き換え方法についてはUnityの仕様によるところになりますので、こちらでの回答は致しておりません)
ゲスト wrote:
2019/11/27 10:29
キャラクターごとにビヘイビアツリーコンポーネントを新たにアタッチする必要があるのでしょうか?
いくつか方法も考えられますので、その方法によってはキャラクターごとにBehaviourTreeを追加する必要も出てくるかと思います。

例えば、キャラクターの見た目ごとにArborFSMかBehaviourTreeを持ち、SubBehaviourTreeReferenceで共通AI用BehaviourTreeを使用するケースが考えられます。
この場合、親グラフから必要なコンポーネントの参照を子グラフのParameterContainerに渡してParameter経由で参照するか、子グラフ側でのFlexibleComponentの参照タイプをHierarchyのRootGraphにするなどで参照できるようになります。
ゲスト wrote:
2019/11/27 10:29
親オブジェクトにビヘイビアツリーコンポーネントをアタッチし、動的に生成される子オブジェクト(キャラ)のtransformやanimatorのパラメーターなどをビヘイビアツリーで操作するみたいなことは可能なのでしょうか?
この場合は、事前にコンポーネントを参照させておけないため、ParameterContainerなどを介して参照を渡すためのスクリプトが別途必要になります。
キャラの見た目用の子オブジェクトを生成した直後に必要なコンポーネントをParameterに設定し、BehaviourTree側はParameter経由で参照するようにしてください。

関連リンク: また、以前2016年5月にもFSMの使いまわしについて似たような質問がありましたので、そちらもよろしければご参照ください。
FSMの他のオブジェクトへの使い回し
(古いトピックですので、その点はご注意を)

Guest

Re: 1キャラに設定したビヘイビアツリーを使い回せるかどうかについて

Post by Guest » 2019/11/28 12:32

ご回答ありがとうございます!
ParameterContainerとスクリプトを組み合わせて参照の問題を解決しようと思います。

Post Reply