見出し画像

Arbor3StateMachineの遷移関連のメモ

この記事について


Arbor3を触った感想、次にやりたいことのメモ代わりに書いているのでかなり雑記です。

State遷移方法の種類


Aroborのドキュメントを読んでステート遷移方法がどれだけあるのかを調べて見ました。全部使ったことが無いから分からないのも多々あります。

AnimatorStateTransition
Animatorのステートを参照して遷移する。

BackToStartState
開始ステートへ戻る。

CalculatorTransition
演算結果によって遷移する。

DistanceTransition
対象のGameObjectとの距離によってステートを遷移する。

ExistsGameObjectTransition
GameObjectが存在しているかどうかで遷移する。

GoToTransition
強制的にステートを遷移する。

OnGraphStopTransition
グラフ停止時に遷移する。終了処理を行いたい場合に常駐ステートに追加して遷移先で終了処理をしてください。

ParameterTransition
Parameterの値を判定して遷移する。

RandomTransition
ランダムに遷移する。

TimeTransition
時間経過後にステートを遷移する。

TriggerTransition
ステートトリガーが送られてきたときにステートを遷移します。

https://arbor-docs.caitsithware.com/ja/inspector/behaviours.html


自分が利用した遷移方法


AnimatorStateTransition
BackToStartState
GoToTransition
TimeTransition

順番に利用した感想を書いてきます。

AnimatorStateTransition


Arborステートマシンの遷移条件にAnimatorのレイヤー、ステート名を書き込んで遷移出来る方法。Animatorの動きでArborステートマシンも遷移する部分が使い勝手がいい。

BlendTreeには対応してなさそうなのとSubStateMachineにも対応してなさそう?不確定要素だから実は使えるとかもあるかも知れない。ただ、ドキュメントを見る限り利用できるとは書いてないからよく分からない。

画像じゃちょっと分かりにくいかも

BackToStartState


AnimatorのExit的な存在なので深くは書きません。ステートの戻り部分のややこしさをかなり軽減できる。複数設置できるのはかなり良さそう。

GoToTransition


AnimatorのMakeTransition的な存在。自分が使った時は遷移先をエディタから決めて、遷移条件をArborステートクラス内で決めて利用してた。Animatorと性質が似てるので細かい部分は省略。

TimeTransition


~時間後にステート遷移が出来る優れもの。Arborステートマシンエディタ内にランダム数値を生成する処理と組み合わせて簡単な敵AIを作ったこともあった気がする。使ってみると結構便利。

次にやりたいこと

ステートマシンの遷移とAnimatorの遷移があまりかみ合っていないと感じているので、何か対処方を考えたい。

少し調べた所、ビヘイビアツリーを使うと解決するという記事を見つけたので、明日はビヘイビアツリー周りを調べて見ます。

いいなと思ったら応援しよう!