FSMの他のオブジェクトへの使い回し

ここは、Arbor開発者へ使い方に関する質問を行うフォーラムです。

Here is the forum to do the questions about how to use to Arbor developer.
hassy
Posts: 6
Joined: 2016/05/12 22:58

FSMの他のオブジェクトへの使い回し

Post by hassy » 2016/05/12 23:29

あるモデル(ゲームオブジェクト)につけたFSMを、別のモデルに使いまわしたいのですが、例えばCalcAnimatorParameterで参照しているAnimatorは、当然付け替える先のモデルのAnimator(中身はもともとのFSMと同じもの)を参照するようにさせたいのですが、どのようにすれば実現できるでしょうか?
(例えば、赤ゴブリンにつけたFSMを、同じAnimatorをもつ青ゴブリンにコピペして敵キャラを量産するイメージです)

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

Re: FSMの他のオブジェクトへの使い回し

Post by caitsithware » 2016/05/13 09:47

使いまわしたいゲームオブジェクトをまるごと複製するだけでArborFSMからの参照先が複製したゲームオブジェクトに切り替わるので、そのまま使いまわしできるようになっています。
(この場合にモデルを置き換えるには、メッシュやボーン用のゲームオブジェクトをごそっと入れ替えてAnimatorコンポーネントの設定も適宜変更していただければできます)

hassy
Posts: 6
Joined: 2016/05/12 22:58

Re: FSMの他のオブジェクトへの使い回し

Post by hassy » 2016/05/18 22:15

回答ありがとうございます、たしかにそのやり方で複製できますが、後々になって大元のFSMに修正があった場合(たとえばAIの修正による挙動の追加)、コピーしたもの全てに同じ修正を施すか、もしくは新しく修正したFSMにメッシュやボーンの入れ替えて量産という作業を再度繰り返すか、といった必要が出てくることを懸念しています。
たとえば素のスクリプトでFSMを構築した場合、大元のスクリプトの修正が全ての敵キャラに反映される、それと同様の簡単な修正、管理、更新をArborを使って行うことは可能でしょうか?

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

Re: FSMの他のオブジェクトへの使い回し

Post by caitsithware » 2016/05/19 13:45

現在組み込まれているStateBehaviourのみで共通インスタンスのArborFSMを使いまわすとなると、AIとAnimator用FSMプレファブとキャラモデルプレファブ、キャラ実体化用FSMが必要になるかと思います。
  • AI兼Animator用はキャラのメッシュやボーン用オブジェクトを削除した状態のゲームオブジェクトで、これをプレファブにしておきます。
    AIに変更を加えたくなった場合はこちらのFSMを変更するだけでOKです。
  • キャラモデルはメッシュとボーンをひとまとめにしておきプレファブ化。
  • キャラ実体化用FSMで、必要なAIプレファブを実体化し、そのAI直下にモデルも実体化。
主な流れはこんな感じでしょうか。

また、StateBehaviourは自由に拡張可能なので、Animatorを参照する際は子オブジェクトから探してくるようなスクリプトを用意し、AI直下にAnimator付きのモデルをそのまま実体化、というほうが楽かもしれません。

hassy
Posts: 6
Joined: 2016/05/12 22:58

Re: FSMの他のオブジェクトへの使い回し

Post by hassy » 2016/05/19 20:30

ありがとうございます、
回答いただいたアイディアをもとに作ってみます。

Post Reply