この種の問題はBlendTreesで解決できます(一般に、ブレンドツリーに依存することが賢明です)。ブレンドツリーは一種のマルチアニメーション状態であり、(float)パラメータに基づいて、現在アクティブになっているアニメーションを決定します(または、結果のアニメーションを複数のアニメーションのブレンドにすることもできます)。アニメーションがブレンドされずに入れ替えられた場合でも、入れ替えはアニメーションの途中で行われます(つまり、「終了する」アニメーションが35%の場合、新しいアニメーションは35%から再生されます)。「外側」から、これはすべて1つの単純な状態であるかのように非表示になります。
たとえば、8つのスプライトアニメーション(4つのメイン方向と4つの対角方向を持つアイドル)を持つブレンドツリーがあるとします。このブレンドツリーには、「水平」と「垂直」の2つのパラメータがあります。そして、これらの2つのパラメーターに基づいて、ブレンドツリーが再生するアニメーションを決定します。「水平」パラメータに基づいて、ブレンドツリーは左/右のアニメーションから選択し、「垂直」パラメータは上/下のアニメーションを決定します。次に組み合わせると、8つのアニメーションすべてに対角線が表示されます(ジョイパッド/ジョイスティックの背後にあるのと同じ考え方です)。
少しわかりにくいので、StackExchangeがリンクを好まなくても、私が作成した短いビデオ例をリンクします。画面の右上部分に注目してください。灰色の点は「状態」/アニメーションで、アクティブな点は赤い点に近いものです。最初に述べたように、赤いドットまでの距離に基づいて各アニメーションに影響/強さを持たせることはさらに複雑になる可能性があり、その結果、いくつかのアニメーションがブレンドされます。
外部からは1つの状態(ブレンドツリー)のみで、同じ概念を歩行と攻撃に適用すると、3つの状態のみがリンクされます。
ブレンドツリーは、空のAnimator領域を右クリックして[状態の作成]-> [新しいブレンドツリーから]で作成されます。そこからは、すべてインスペクターにあります。ブレンドツリーを選択すると、ブレンドツリーのタイプ(1D、2Dなど)を選択し、アニメーションを追加して、それらを配置し(パラメーター値に対して)、制御パラメーターを選択できます。
ブレンドツリーの詳細が必要な場合は、次にUnity- Unite 2016とUnityチュートリアルのビデオをご覧ください。