(この記事の使用環境: Unity5.4.2f2 Personal、Windows10


前回記事では別のモデルAssetのAnimationClipを流用することについて書きましたが、今回はAnimationContollerの内容を流用します。AnimationOverrideControllerを使用することで簡単に実現できます。

前回記事の最後に、「おまけ」として紹介した状態はこんな感じ。別のモデル2人に、同じAnimationControllerと同じスクリプトをつけて動かしています。 これはこれで面白いですね。ダンスとかに使えそうです。

 
で、今回はこんな感じにします。

 
2人が別々のアニメーションをしていますね。アタッチしているスクリプトは同じです。つまり同じタイミングで同じ操作を受け取っています。 これを実現するのに、一方にAnimatorOverrideControllerを付けています。

もとのAnimatorContollerはこんな感じ。前回記事のとおりです。「AlphaAC」という名前にしています。
全画面キャプチャ 20170105 220755

で、AnimatorOverrideControllerのほうは、もととなるAnimatorContoller(AlphaAC)の遷移図をそのまま引き継いで、各状態のAnimationClipのみを上書きします。

下図の「Original」はもとの「AlphaAC」で各状態に設定されているAnimationClipです。「Override」のほうに上書きしたいAnimationClipをセットしてやります。そうすることで、同じ状態遷移で異なるアニメーションをさせることができるようになります。
全画面キャプチャ 20170105 232544

で、今回のおまけ。骸骨さんを入れて3人で異なるアニメーションをさせています。これも付けているスクリプトは3人とも同じで、同じタイミングで同じ操作を受け取っています。


AnimationTypeが「Humanoid」でないモデルも、動かすスクリプトとAnimatorの遷移図自体は流用できます。この場合もAnimatorOverrideControllerを使います。

Humanoidではない場合、(そのままでは)AnimationClipの流用ができないので(※できる場合もある)、今回は各状態のアニメーションを骸骨さん自身がもつAnimationClipで上書きしています。ただしこの骸骨さんはジャンプ用のAnimationClipを持っていないので、まったく別のAnimationClipをアタッチしています。AnimatorOverrideControllerを使う場合の留意点ですね。
全画面キャプチャ 20170105 233251

今回は以上です。