階層化FSMの実現

Forum rules
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を確認の上、それでも使い方がわからない場合にご質問ください。欲しい機能の記載がドキュメントにない場合は機能が元から存在しない可能性が高いので要望フォーラムへ。

Post a reply

Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: 階層化FSMの実現

Re: 階層化FSMの実現

by masakam1 » 2018/02/23 06:37

わざわざありがとうございます!:D
これで一気に便利になります、さっそく試してみます

Re: 階層化FSMの実現

by caitsithware » 2017/05/10 04:17

提案だけではなんですので、ひとまず簡易版を作成いたしました。
ArborSubState.unitypackage
(17.44 KiB) Downloaded 444 times
こちらをダウンロードしてArborを使用しているプロジェクトにインポートしてください。

サンプルは、ArborSubState/Examplesにあります。
Scenes/SubStateシーンは、ボタンを押すと子FSMに移行してコインを出して戻ってくるサンプルとなっています。

使い方
  • 挙動追加から State > SubState を選択してSubStateを追加
  • SubStateのPrefabパラメータに共通で使用したいFSMのプレハブを指定
    ArborSubState.png
    ArborSubState.png (10.71 KiB) Viewed 5387 times
  • 子のFSM側で、挙動追加から State > EndStateを選択してEndStateを追加。
    こちらはとくに設定項目はありません。
    ArborEndState.png
    ArborEndState.png (4 KiB) Viewed 5387 times
注意点
  • 子FSMは子GameObjectとしてInstantiateされます。
    OnCollisionEnterなど、親GameObjectにのみ通知されるメッセージは処理できません。
    位置の指定なども現状できません。
  • 一度Instantiateした子FSMは次回以降でもオブジェクトを使いまわします。
    パラメータなどは初期化されないため、必要に応じてEndState前か開始ステートにて初期化処理を入れる必要があります。

Re: 階層化FSMの実現

by caitsithware » 2017/05/10 03:20

masakam1 wrote:https://www.slideshare.net/Unite2017Tok ... y-75810280
こちらの記事を呼んでarborで階層化FSMをやろうとしました。
しかしtrial版にSubStateらしいものはありませんでした(

現状標準では階層化はサポートされてないのでしょうか?
申し訳ありませんが、現状、標準機能として実装されていないため、独自に拡張していただく必要があります。

スライドにあるような実装としましては、
  • SubState用のStateBehaviourスクリプトを作成。
  • SubStateでは、指定したArborFSMのプレハブをパラメータとして持っておき、OnStateBeginの時にInstantiate、子FSMが終了したらTransition。
  • 子FSMでは終了ステートでTriggerを投げるかEndStateなどのStateBehaviourスクリプトを作成して親FSMに終了したことを通知。
といった形で実現できるかと思います。

私も階層化&共通化は重要だと認識しておりますので、今後何らかの形でArbor本体へと組み込みたいと思っております。
標準対応につきましては今しばらくお待ちいただけますようよろしくお願いいたします。

階層化FSMの実現

by masakam1 » 2017/05/10 02:23

https://www.slideshare.net/Unite2017Tok ... y-75810280
こちらの記事を呼んでarborで階層化FSMをやろうとしました。
しかしtrial版にSubStateらしいものはありませんでした(

現状標準では階層化はサポートされてないのでしょうか?

Top