PR

【Unity】キャラ別モーションに便利!アニメーションの差し替え・上書きする機能を紹介

Unityでのモーションの差し替え方法 Unity

ゲームを開発していると同じキャラクターだけど違うモーションで動かしたり、それこそ女性キャラ向けに別モーションを使いたいことってありますよね。
そのような時に便利な機能がUnityにありましたのでそれを紹介したいと思います。

モーションの差し替え

現在開発中のゲームで一部のキャラのモーションだけを差し替えたくなることがありました。

元々はソースコードで上書きしようかと考えていたのですが
調べているうちに元々Unityにはそれを実現する機能がありました。

その名も「AnimatorOverrideController」です。

設定方法も簡単ですよ!

 

必要ファイルの作成

まずは必要なファイルを作成します。

 

「Animator Override Controller」を作成

「Project」ウィンドウで右クリックを押すと下記のような画面になるので

  1. Createを選択
  2. Animator Override Controllerを選択

AnimatorOverrideControllerを作成

をすることで上書きに必要な「Animator Override Controller」が追加されます。

 

差し替えるモーションを設定

そして作成されたファイルを選択すると
「Inspector」ウィンドウに下記のように表示されるので

上書きするアニメーションを指定

下記の対応を行います。

  1. 上書き対象のAnimator Controllerを指定
  2. 自動で差し替え対象アニメーションが表示されるので
    差し替えたいアニメーションを指定

 

ちなみに設定するアニメーション指定がNoneの場合はデフォルトで設定されているものが再生されるので必要なものだけ設定すればOKです。

とっても簡単ですね!

 

Animator Override Controllerを設定

先程作成したファイルを設定していきます。

設定は非常に簡単で「Animator」に設定している
AnimatorControllerを作成したものに差し替えるだけです。

Animatorコンポーネントに設定する

これで再生すると問題なくモーションが差し替わっていると思います!

 

スクリプトでの指定方法

私の場合はスクリプトで変更したいことがあったのでその方法を利用しました。

スクリプトから上書きする場合は下記のように「Animator」の「runtimeAnimatorController」に設定したいAnimatorOverrideControllerを指定します。

Animator anim = GetComponent<Animator>();
anim.runtimeAnimatorController = newAnimOverrideCtrl;

これでプログラム上でいつでも変えられるようになりましたね!

 

追記:元のモーションに戻したい

上書きモーションをデフォルトのモーションに戻したい場合
初期化時などに「デフォルトモーション」を保持しておく必要があります

下記のような処理になります。

// デフォルトを保持しておく
AnimatorOverrideController animOverrideDefault = new AnimatorOverrideController(animator.runtimeAnimatorController);

// 戻すときは保持していたデフォルトを指定
animator.runtimeAnimatorController = animOverrideDefault;

これでモーションを上書きしたり、戻したり
自由自在です!

 

動作を確認する

私が開発しているゲームでは

  • 立ち
  • 歩き
  • 走り

の3つを忍者っぽくしたものを設定してみました。

その時の紹介動画がこちらです。

思ったよりも「なにか違う存在感」が出ましたね!
これで個性のあるキャラクターを作れそうです

 

活動内容のPR

下記が本サイトでの活動内容となります。

他の開発動画を見る

 

最後に

いかがでしたでしょうか?

今回はアニメーションの差し替えを対応してみました。
かなり簡単に実現できる機能でしたので「少しキャラクターの雰囲気を変えたい」とお考えの方はぜひご活用ください。

これで色々な雰囲気なキャラが作れると思うと
世界が広がりますね!

このサイトではゲーム開発や英語学習、日常で良さそうなことを記事にして発信しております。もしご興味がありましたら画面左下のベルマークからご購読いただけますと幸いです。

では今回はここで終わりたいと思います。
ここまでお読みいただきありがとうございました。

コメント

スポンサーリンク
Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました