Version: Unity 6.0 (6000.0)
言語 : 日本語
State Machine Behaviour
アニメーションのレイヤー

サブステートマシン

複数のステージで構成される複雑なアクションをキャラクターに設定する場面は多くあります。その場合、全体のアクションをひとつのステートで処理するのではなく、ステージごとに分けてそれぞれに別のステートを使用したほうが合理的です。例えば、キャラクターに、しゃがんで狙いを定め、撃ち、再び立ち上がる、“Trickshot” というアクションを設定するとします。

Trickshot アクションのステートの順序
“Trickshot” アクションのステートの順序

制御する上では便利ですが、短所としては、ステートマシンが大きくなり、複雑なアクションがさらに追加されると扱いが難しくなります。エディターの空いたスペースで、ステートのグループを視覚的に分けるだけでも多少はシンプルにすることができます。しかし、Mecanim はさらに一歩進んで、ステートマシン図内でステートのグループを 1 つの名前のアイテムにたたんでまとめることができるようにしています。これらのまとめられたグループは サブステートマシン と呼ばれます。

サブステートマシンを作成するには Animator Controller ウィンドウの空いたところで右クリックして、コンテキストメニューから Create Sub-State Machine を選びます。他の通常のステートと区別できるように、サブステートマシンはエディター上で引き伸ばされた六角形のマークで表示されます。

サブステートマシン
サブステートマシン

六角形のマークをダブルクリックすると、エディターがクリアされてサブステートマシンがまったく別のステートマシンであるかのように編集できます。ウィンドウの上にあるバーは “パンくずトレイル” で、どのサブステートマシンが現在編集されているかを示します (サブステートマシンの中にさらに別のサブステートマシンを作成できることに注意してください)。トレイル上でアイテムをクリックすることでエディターがその特定のサブステートマシンにフォーカスします。

パンくずトレイル
“パンくずトレイル”

外部への遷移

前述のとおり、サブステートマシンは単にエディターで一群のステートを視覚的に折りたたむ方法なので、サブステートマシンへ遷移するときは、その中のどのステートに接続したいかを選択する必要があります。

Trickshot サブステートマシンの中で目標とするステートを選択
“Trickshot” サブステートマシンの中で目標とするステートを選択

サブステートマシンに Up で名前が始まるステートが追加されたことがわかります。

Up ステート
“Up” ステート

Up ステートは “外の世界” を意味し、ビューでサブステートマシンと接続するステートマシンを表します。サブステートマシンのステートから Up ステートへの遷移を加えると、接続するマシンのステートの 1 つを選択するよう求められます。

外部にあるマシンのステートへの接続
外部にあるマシンのステートへの接続
State Machine Behaviour
アニメーションのレイヤー