キャラクターに複数のステップからなる複雑なアクションを持たせたいケースが良くあります。全体のアクションをひとつのステートでハンドリングするかわりに,ステップ別に分けて,それぞれにひとつのステートを使用すべきです。例えば,キャラクターに,しゃがんで狙いを定め,撃って,再び立ち上がらせる, “Trickshot” というアクションを持たせたいとします。
これは便利な場面もありますが,短所としては,ステートマシンが大きくなり,複雑なアクションがさらに追加されると扱いが難しくなります。エディターの空いたスペースで,ステートのグループを視覚的に分けることでシンプルにすることが出来ます。しかし,メカニムはさらに一歩進んで,ステートマシン図でステートのグループをひとつのアイテムに折りたたむことが出来るようにしています。これらの折りたたまれたグループは Sub-State Machine と呼びます。
サブステートマシンを作成するには Animator Controller ウィンドウの空いたところで右クリックして,コンテキストメニューから を選びます。サブステートマシンはエディター上で引き伸ばされた六角形のマークによって,他の通常のステートとは区別して表示されます。
六角形のマークをダブルクリックすると,エディターがクリアされてサブステートマシンがあたかも別のステートマシンのように編集できるようになります。ウィンドウの上にあるバーは “BreadCrumb Trail” (軌跡) で,どのサブステートマシンが現在編集されているか示します(そして,サブステートマシンの中に別のサブステートマシンを作成するなどネストができることに留意して下さい)。Trail上でアイテムをクリックすることでエディタが特定のサブステートマシンにフォーカスします。
前述のとおり,サブステートマシンは単にエディターでステートのグループを折りたたむ方法なので,サブステートマシンへ遷移するときは,その中のどのステートに接続したいかを選択する必要があります。
サブステートマシンに“Up”で名前が始まる追加のステートが出来たことに気づきます。
Up ステートは “サブステートマシンの外部” を表し,ビューで表示されるサブステートマシンの上位にあるステートマシンです。サブステートマシンのひとつのステートから Up ステートへの遷移を追加すると,上位にあるステートマシンの中から接続させたいステートを選ぶプロンプトが表示されます。