基本的な考えとしては、キャラクターは、どんなときでもいくつかの特定のアクションに関与しているということです。利用可能なアクションは、ゲームプレイの種類に依存しますが、アイドリング、ウォーキング、ランニング、ジャンプ等のような典型的なアクションが含まれます。これらのアクションは、キャラクターがウォーキングやアイドリングまたは何かしている、という意味で states (状態) と呼ばれます。一般的には、キャラクターはどれかの state から他の state にすぐに切り替われるのではなく、行くことができる次の state によって制約を受けます。例えば、ランニングジャンプはキャラクターがすでにランニングしているときのみ実行でき、立って停止しているときはできません。アイドル状態からジャンプ状態に直接切り替えるべきではありません。キャラクターが現在の状態から入ることができる次の状態のオプションを ステートの遷移と呼びます。状態のセット、遷移のセットおよび現在の状態の変数をひとまとめにして state machine を構成します。
ステートマシンの状態と遷移はダイヤグラム図で表すことができ、ノードがステートを、矢印が遷移を表します。現在のノードはマーカーがつくか、ハイライトされ、ここから矢印の 1 つに沿ってのみ別のノードにジャンプすることができます。
アニメーションにおいてステートマシンの重要なことは、設計とアップデートのためのコーディングが少なく、非常に簡単に更新できることです。各状態には、モーションが関連づけられていて、マシンがその状態にあるときに再生されます。これはアニメーターやデザイナーはコードがどのように機能するかを気にすることなく、キャラクターのアクションとアニメーションのシーケンスを定義することを可能にします。
Unity のアニメーションステートマシンを利用すると、特定のキャラクターに関連するすべてのアニメーションクリップの概要を把握し、ゲーム内の様々なイベント (例えば、ユーザ入力) が様々なアニメーションを発生させることを可能にします。
アニメーションのステートマシンは、アニメーターコントローラー ウィンドウから設定され、以下のようにすることができます。
ステートマシンは、States、 Transitions、 Events で構成され、小さいサブステートマシンはより大きなマシンを構成します。詳細は、アニメーションステートおよび ステートの遷移 のリファレンスページを参照してください。