Unity 2Dゲーム作成 備忘録

Unity(2019.4.15f1 → 2020.3.11f1)でつまづいたところをメモしていきます。

sprite swapを使ったアニメーションがうまくいかない時の対処法まとめ

何かとうまくいかないことが多いsprite swapアニメーション。
うまくいかないときの症状別に、対処法をご紹介します。

 

【A】アニメーションが微動だにしない

 [対処方法]
(1)アニメーションのタイムラインから、Sprite Resolver プロパティの全てのキーフレームをマウスカーソルで囲って選択します。
(2)キーフレーム上を右クリックして出てきたメニューから、「両側の接線 > 一定」を選びます。

f:id:ooo_washi:20210615100935p:plain


[原因]
Unityのマニュアルによると、「両側の接線 > 一定」にした時のみ、キーフレームに割り当てられたスプライトを探しにいく仕様のようです。(それ以外だと、プロパティの数値を計算してフレーム間補完をするみたいです)

 

【B】アニメーション がコマ落ちする。

Unityでは、レイヤーを使うことでアニメーションの部分置換ができます。
sprite swapを使ったアニメーションでは、レイヤーのブレンドの設定が「Additive」だとコマ落ちするようです。

[対処方法]
レイヤーのブレンドの設定を「オーバーライド」にする。 
(ちなみに、アニメーション の置換が反映されない方は、ウェイトが0になってると思いますので、1にしてください。)

f:id:ooo_washi:20210215161751p:plain

 

【C】sprite swapを使用したアニメーションクリップの再生と、通常のアニメーションクリップの再生がずれる。

[対処方法]
(1)通常のアニメーションクリップのサンプルレートを、sprite swapアニメーションのサンプルレートに合わせる。

f:id:ooo_washi:20210615102121p:plain

(2)通常のアニメーションの、キーフレームすべてを選択し、キーフレーム上で右クリック。「両側の接線 > 一定」に設定する。

f:id:ooo_washi:20210615102624p:plain


[原因]
アニメーションがズレる方は、おそらくsprite swapアニメーションのサンプルレートを少なくしていると思います。通常のアニメーションは、updateに合わせて1秒間に60回、アニメーションを更新しています。これは、サンプルレートをいくつに設定しても、60回更新し、滑らかなアニメーションを実現しています。
しかし、sprite swapアニメーションは、例えばサンプルレートを20にしたなら、1秒間に20回しか絵が切り替わりません。
これは、通常のアニメーションが2回更新されるのを待ってから、sprite swapアニメーションを1回更新することになり、このために、常に2フレーム分、アニメーションが遅れるように見えます。
これを解消するために、あえて通常のアニメーションのフレームレートを少なくし、フレーム間補完をなくす「両側の接線 > 一定」に設定します。

 

 【D】sprite swapを使用したアニメーションが小刻みに揺れる。

下記の記事をご参照ください。

ooo-washi.hatenablog.com