テラシュールブログ

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

【Unity】Playable APIで幾つかの小技

昨日のPlayable APIで書ききれなかった事を少し追記します。

tsubakit1.hateblo.jp

複数のAnimatorに単一のPlayableを流し込む

PlayableGraphにOutputは実は複数作ることが出来ます。コレを利用すると、複数のオブジェクトを完全に同期した状態でアニメーションさせる事が出来ます。

f:id:tsubaki_t1:20170730124159j:plain

またOutputでアニメーションを流し込んだ場合でもアバターはAnimator毎に制御されているので、Humanoidならボーン構造の異なる物でもアニメーションが可能です。

アニメーションのコストがかかるのはスキニングの部分なので大した意味はありませんが、何かに使えるかもしれません。

f:id:tsubaki_t1:20170730123706g:plain

AnimationClipPlayableが共通化されているので、一つのAnimationClipPlayableを操作すれば一気に複数のアニメーションが制御出来るのは中々に面白いです。

逆を言えば、少しずつタイミングをズラしたようなアニメーションは出来ない点には注意が必要です。

f:id:tsubaki_t1:20170730124714g:plain

gist.github.com

アニメーションの出力先を切り替える

outputは出力先を切り替えることも出来ます。

例えばキャラクターが選択された際のモーション等があった時、キャラクター一人ひとりにPlayableGraphを作るのはナンセンスなので、PlayableGraphだけ作って出力先を切り替えてしまう訳です。

f:id:tsubaki_t1:20170730130343j:plain

なお、Output出力先を切り替えてもアニメーションは最初から再生される訳ではありません。最初から再生したい場合は、PlayableのTimeを0に戻す等の操作が必要そうです。

f:id:tsubaki_t1:20170730130658g:plain

gist.github.com

Aditiveの再生

ギミックを動かす等を行う時、Aditiveで動かせると一々親オブジェクトを用意しなくても良いので何かと便利です。

Playable APIの場合、AnimationLayerMixerPlayableにAditiveのオプションがあるのでソレを使用します。

f:id:tsubaki_t1:20170730134049g:plain

gist.github.com

tsubakit1.hateblo.jp