読者です 読者をやめる 読者になる 読者になる

テラシュールブログ

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

【Unity】AnimationClip単位でアニメーションを再生するPlayable API

Unity アニメーション

Animator+AnimationController+AnimationClip(s)の組み合わせを使用せずともアニメーションを再生できるPlayable APIについてです。

このAPIは正確にはカスタマイズ可能なブレンドツリー的な何かになるのでしょうが、現状はAnimationClipやAnimationControllerの制御にしか使われていません。

f:id:tsubaki_t1:20160615233955j:plain

なお、Playable APIは実験公開中の機能らしく、ちょくちょくAPIが変わります。5.4と5.3でも少し異なるので、そのあたりは手直しが必要。

Playable APIでアニメーションを再生する

※5.6でかなりコードが変わります

https://forum.unity3d.com/threads/animationclipplayable.451854/

 

AnimationClipをPlayableAPIで再生します。
これを使用した場合、AnimationControllerは使用しません。またAnimatorで駆動するのでSpriteやマテリアルのアニメーションにも対応しているのがポイントです。

流れとしては、AnimationClipPlayableを作成し、Animatorで再生するだけです。

 

gist.github.com

f:id:tsubaki_t1:20160615233945j:plain

f:id:tsubaki_t1:20160615234430g:plain

アニメーションのブレンド

さて、このPlayable APIですがバグなのか仕様なのか、一度登録したAnimationClipPlayableを差し替える事が出来ません。 修正済み

アニメーションを切り替えたい場合、ウェイトで調整します。

下のコードの場合、weightプロパティをスライダーで制御すると、こんな感じになります。

gist.github.com

f:id:tsubaki_t1:20160616000053j:plain

f:id:tsubaki_t1:20160616000059j:plain

f:id:tsubaki_t1:20160615235715g:plain

ちなみに、現在2つ以上のアニメーションのウェイトを0以外に設定すると変になります。

関連

naokirin.hatenablog.com

tsubakit1.hateblo.jp