何かとうまくいかないことが多いsprite swapアニメーション。
うまくいかないときの症状別に、対処法をご紹介します。
【A】アニメーションが微動だにしない
[対処方法]
(1)アニメーションのタイムラインから、Sprite Resolver プロパティの全てのキーフレームをマウスカーソルで囲って選択します。
(2)キーフレーム上を右クリックして出てきたメニューから、「両側の接線 > 一定」を選びます。
[原因]
Unityのマニュアルによると、「両側の接線 > 一定」にした時のみ、キーフレームに割り当てられたスプライトを探しにいく仕様のようです。(それ以外だと、プロパティの数値を計算してフレーム間補完をするみたいです)
【B】アニメーション がコマ落ちする。
Unityでは、レイヤーを使うことでアニメーションの部分置換ができます。
sprite swapを使ったアニメーションでは、レイヤーのブレンドの設定が「Additive」だとコマ落ちするようです。
[対処方法]
レイヤーのブレンドの設定を「オーバーライド」にする。
(ちなみに、アニメーション の置換が反映されない方は、ウェイトが0になってると思いますので、1にしてください。)
【C】sprite swapを使用したアニメーションクリップの再生と、通常のアニメーションクリップの再生がずれる。
[対処方法]
(1)通常のアニメーションクリップのサンプルレートを、sprite swapアニメーションのサンプルレートに合わせる。
(2)通常のアニメーションの、キーフレームすべてを選択し、キーフレーム上で右クリック。「両側の接線 > 一定」に設定する。
[原因]
アニメーションがズレる方は、おそらくsprite swapアニメーションのサンプルレートを少なくしていると思います。通常のアニメーションは、updateに合わせて1秒間に60回、アニメーションを更新しています。これは、サンプルレートをいくつに設定しても、60回更新し、滑らかなアニメーションを実現しています。
しかし、sprite swapアニメーションは、例えばサンプルレートを20にしたなら、1秒間に20回しか絵が切り替わりません。
これは、通常のアニメーションが2回更新されるのを待ってから、sprite swapアニメーションを1回更新することになり、このために、常に2フレーム分、アニメーションが遅れるように見えます。
これを解消するために、あえて通常のアニメーションのフレームレートを少なくし、フレーム間補完をなくす「両側の接線 > 一定」に設定します。
【D】sprite swapを使用したアニメーションが小刻みに揺れる。
下記の記事をご参照ください。