アニメーターコントローラのサブステートマシンを使ってみる

今回はUnityのアニメーターコントローラのサブステートマシン(Sub-State Machine)を使ってみたいと思います。

サブステート1

アニメーターコントローラでアニメーションの制御を細かくしていくと、段々と上のように複雑な状態遷移が作成されていきます。

さらに状態を増やしていくとどこがどう繋がっているのかがわかりづらくなってしまいます。
そこで上の画像のようにDamageを受けた時の状態は同じ遷移(条件は違いますが)になっているので、これらをまとめてしまいましょう。

スポンサーリンク

アニメーターコントローラでサブステートマシンを作成する

まずはアニメーターウインドウで

サブステート2

右クリック→Create Sub-State Machineを選択します。

サブステート3

上の画像のように通常の状態である四角ではなく六角形の状態が出来上がります。
これの名前をDamageとします。

サブステート4

Damage系の状態をCtrlキーを押しながら選択し、3つすべてをドラッグして六角形のDamageの上にもっていきます。

ドラッグしているアイテムに+が表示されるので、そのままドロップします。
するとドラッグしていた3つの状態がDamageの中に移動します。

サブステート5

上の画像のようになりスッキリしました。

サブステート6

六角形のDamageをダブルクリックすると中身が表示され、ドラッグ&ドロップした3つの状態が表示されます。

状態の遷移の条件等はそのままなので、Base Layer(親元のレイヤー)が見やすくなり、管理もしやすくなります。

サブステート9

Damageから親元のレイヤーに戻る時は上のBase Layerを押すと移動出来ます。

サブステート8

Base LayerのDamageサブステートマシンからBase Layerにある他の状態への遷移は3つありますが、一つの線に矢印が3つついて表示されています、個々の遷移条件を確認するには上のように選択し、インスペクタでどの遷移かを選択すれば個々の条件を編集する事が出来ます。

サブステートマシンの複数の遷移の選択方法

これでアニメーターコントローラのサブステートマシンを使う事が出来ました。

攻撃やダメージ等ひとくくりに出来る状態をまとめてサブステートマシンの中に入れると制御がわかりやすくなり管理しやすくなると思います。

スポンサーリンク

記事をシェアして頂ける方はこちら

フォローして頂くとやる気が出ます