https://www.slideshare.net/Unite2017Tok ... y-75810280
こちらの記事を呼んでarborで階層化FSMをやろうとしました。
しかしtrial版にSubStateらしいものはありませんでした(
現状標準では階層化はサポートされてないのでしょうか?
階層化FSMの実現
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.
- For problems that occur when combined with other assets, please contact us only if the problem is due to an issue on the Arbor side and we need to resolve it in advance.
- 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側の問題により対応が必要である場合のみお問い合わせください
- Arbor Documentationを確認の上、それでも使い方がわからない場合にご質問ください。欲しい機能の記載がドキュメントにない場合は機能が元から存在しない可能性が高いので要望フォーラムへ。
- caitsithware
- 管理人
- Posts: 503
- Joined: 2015/08/17 12:41
Re: 階層化FSMの実現
申し訳ありませんが、現状、標準機能として実装されていないため、独自に拡張していただく必要があります。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本体へと組み込みたいと思っております。
標準対応につきましては今しばらくお待ちいただけますようよろしくお願いいたします。
- caitsithware
- 管理人
- Posts: 503
- Joined: 2015/08/17 12:41
Re: 階層化FSMの実現
提案だけではなんですので、ひとまず簡易版を作成いたしました。
こちらをダウンロードしてArborを使用しているプロジェクトにインポートしてください。
サンプルは、ArborSubState/Examplesにあります。
Scenes/SubStateシーンは、ボタンを押すと子FSMに移行してコインを出して戻ってくるサンプルとなっています。
使い方
こちらをダウンロードしてArborを使用しているプロジェクトにインポートしてください。
サンプルは、ArborSubState/Examplesにあります。
Scenes/SubStateシーンは、ボタンを押すと子FSMに移行してコインを出して戻ってくるサンプルとなっています。
使い方
- 挙動追加から State > SubState を選択してSubStateを追加
- SubStateのPrefabパラメータに共通で使用したいFSMのプレハブを指定
- 子のFSM側で、挙動追加から State > EndStateを選択してEndStateを追加。
こちらはとくに設定項目はありません。
- 子FSMは子GameObjectとしてInstantiateされます。
OnCollisionEnterなど、親GameObjectにのみ通知されるメッセージは処理できません。
位置の指定なども現状できません。 - 一度Instantiateした子FSMは次回以降でもオブジェクトを使いまわします。
パラメータなどは初期化されないため、必要に応じてEndState前か開始ステートにて初期化処理を入れる必要があります。
Re: 階層化FSMの実現
わざわざありがとうございます!:D
これで一気に便利になります、さっそく試してみます
これで一気に便利になります、さっそく試してみます
Last bumped by Anonymous on 2018/02/23 06:37.