Page 1 of 1

SubStateMachineReference再生時のClone

Posted: 2021/01/28 10:36
by Guest
いつもArborにはお世話になっております。
挙動スクリプト SubStateMachineReference について質問させていただきます。

シーン上にObject1、Object2というオブジェクトがあり、それぞれにFSM1、FSM2というFSMがアタッチされている状況で、FSM1内のステートに SubStateMachineReference を追加し、External FSM に FSM2 を指定すると、再生時にObject2がまるごと CloneされてObject1の子オブジェクトになりますが、このCloneを行わずに子ステートマシンの再生を行う方法はありますでしょうか?
(Object2が巨大な場合など、できればCloneを避けたい場合があります)

お手数をお掛けして申し訳ありませんが、ご回答いただけますと幸いです。

Re: SubStateMachineReference再生時のClone

Posted: 2021/01/28 11:15
by caitsithware
ご利用ありがとうございます。

SubStateMachineReferenceのExternal FSMについてですね。
こちらはFSMを持つプレハブをInstantiateして子オブジェクトとして動かすという動作を想定しております。

例えば、FSM付き銃プレハブをサブステートマシンとして動作させることを想定してみますと、
銃のマズル位置を銃オブジェクトの子として持っていた場合に、銃プレハブ丸ごとInstantiateしなければ正しい参照が得られないためです。

また、シーン内の別FSMをサブステートマシン扱いとする挙動スクリプトは現在ありません。

もしInstantiateせずにシーン内のFSMを別途再生したい場合でしたら、PlayStateMachineをご利用ください。
PlayStateMachine — Arbor リファレンス

Re: SubStateMachineReference再生時のClone

Posted: 2021/01/29 14:23
by Guest
早速のご返信ありがとうございます。
SubStateMachineReference がプレハブを Instantiate する使い方を想定していること、了解いたしました。

また、PlayStateMachine のご教示ありがとうございます。
こちらとParameterContainer等を使うことで、シーン上の別FSMを実行して返り値を受け取る、という SubStateMachineReference のような使い方が Instantiate することなくできそうです。

この度はありがとうございました。

Re: SubStateMachineReference再生時のClone

Posted: 2021/01/30 00:47
by caitsithware
ご確認ありがとうございます。
やりたいことができそう、ということで良かったです。

シーン内の別オブジェクトをInstantiateしないままSubStateMachine化という使い方については要望として受け取り、対応できないか今後検討いたします。

今後ともよろしくお願いいたします。