テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】スプライトアニメーションの再生速度がやたらと早い時の対処

f:id:tsubaki_t1:20191112185918g:plain

 スプライトアニメーションを今まで通りドラッグ&ドロップで作成した所、やたらとアニメーション再生が早いという事になりました。例えばトップ絵の左のように、速歩きのような速度でアニメーションを再生してしまいます。出来れば右のような速度に設定したい所です。

サンプルレート

 これは単純にアニメーションのサンプルレートが想定より早い事が原因です。Unityの初期設定でスプライトアニメーションを作成する場合サンプルレートは12となっています*1。これは 1秒間に12回キーを打てる という事です。

 例えば2Dスプライトを登録した場合、毎フレーム変化するスプライトが登録されるので、4スプライトで構成されるアニメーションの場合は1スプライト0.3秒で、1秒に3回サイクルが回るアニメーションが再生されます。

f:id:tsubaki_t1:20191112190708j:plain

 これでは速度が早すぎるので、1サイクル1秒で再生したいというのが、今回の趣旨です。

微妙な解決策

 最初に出てくるアイディアは1秒に合わせてアニメーションするようにAnimationClipを調整するというものです。これはサンプルレート的に少しもったいないような気がしなくもないです。またアニメーションをループさせる場合、「最終に登録したスプライトは1サンプル分しか表示されない」問題があるので、秒数側を操作すると少し面倒くさい話になります。

f:id:tsubaki_t1:20191112191314p:plain

 またAnimator側でアニメーション速度を調整するというアイディアがあるかもしれません。速度的に0.3をかければ1秒間にだいたい1回の再生です。これは他のアニメーションとの折り合いを考えたときに少しだけ面倒くさくなります。

f:id:tsubaki_t1:20191112191736j:plain

そうだ、サンプルレートを変えよう

 この問題をスマートに解決するのは、サンプルレートを変更することです。たぶんコレが一番はやいとおもいます。

 問題は、以前にあったサンプルレートの項目が表示されないことです。以前は現在のフレーム数の下あたりにありましたが、現在は表示されなくなっています。サンプルレートは何故か現在は非表示になっており、オプションから表示に切り替える必要があります。

 コンテキストメニュー > Show Sample rate でサンプルレートが表示されます。

f:id:tsubaki_t1:20191112192000j:plain

f:id:tsubaki_t1:20191112192141j:plain

f:id:tsubaki_t1:20191112192407g:plain

~ HAPPY END ~

感想

 なぜ非表示にしたし。コレ見つける前に一瞬Debugモードで編集を考えました。

関連

ぴぽや https://pipoya.net/

*1:普通に作ると60