渋谷ほととぎす通信

新しいこと、枯れたこと問わず大庭が興味を持ったものを調査、生活の効率を求める完全趣味の技術ブログ。基礎を大事にしています。

Unity SampleAnimationの負荷は約4倍


f:id:esakun:20150730215258g:plain

UnityのAnimationClip再生方法には単純にPlayではなく、指定秒数の状態にするSampleAnimationメソッドがあります。AnimatorControllerは不要で、AnimationClipだけで動かせます。

animationClip.SampleAnimation (gameObject, time);

アニメーションを任意のタイミングから実行したい、途中別アニメーションを挟んだ後、もとのアニメーションでリジュームさせたいなど特殊な挙動をさせる時に使えそうです。

ただ、使ってみて気づいたことがあります。
結構負荷高そうだということ。。。

f:id:esakun:20170616094128g:plain

恒例のユニティちゃんライブステージ! -Candy Rock Star-を使って検証します。

通常再生時

f:id:esakun:20170616094621p:plain

0.18ms

参考

SampleAnimation

f:id:esakun:20170616094800p:plain

0.69ms

約4倍の通常再生時よりSampleAnimationが重いようです。
下記のリファレンスにもあるように、特別なことが無い限りは普通にAnimatorを使用した再生が良さそうです。

Unity - スクリプトリファレンス: AnimationClip.SampleAnimation