【Unity】アニメーションが上手く動かない時の解決方法

CGBoxの一部の記事にはアフィリエイト広告が含まれております。

こんにちは!Unityでキャラクターにアニメーションを設定したのはいいけど、上手く動かない…という経験をしたことがありませんか?

アニメーションが全く動かなかったり、位置がずれたりとなにかとつまずきやすいところですよね。

そこで本記事では、アニメーションを扱う時によく起きる問題と解決方法を紹介していきます!

目次

アニメーションが再生されない

アニメーションが動かない図

本項では、最もよく起きる「アニメーションが再生されない」問題が起きた時に試したい解決方法を紹介していきます。

今回アニメーションを設定するキャラクターとして、アセットストアから手に入るUnity-Chanの3Dモデルを利用します。

以下のリンクから無料でダウンロードすることができます。

あわせて読みたい
Unity-Chan! Model | 3D Characters | Unity Asset Store Elevate your workflow with the Unity-Chan! Model asset from unity-chan!. Find this & other Characters options on the Unity Asset Store.

モデルをHumanoid型にする

アニメーションを設定するキャラクターは、人型キャラクターが大半だと思います。

人型キャラクターのアニメーションが動かない時にまず確認したいのは

モデルのAnimation TypeをHumanoidに設定しているかどうかです。

下のように、キャラクターに設定してあるAnimator内のAvatarにはモデルが設定されています。

このモデルのインスペクターを開きRigタブ内のAnimation Typeを確認してみましょう。

こちらがGenericになっていることがあります。

このままですと、プログラムを実行しても人型のキャラクターのアニメーションが動きません。

その場合こちらをHumanoidに変更し、Applyを押しましょう。

Humanoid型とは何かについては下の記事で解説しています。

あわせて読みたい
【Unity】ボーンを設定して動かす方法【Humanoid】 こんにちは!Unityでゲーム開発をしていると、キャラクターにアニメーションを設定するのは必須ですよね。 ですがいざ設定しようとすると、「ボーン」だとか「Humanoid...

Animatorの設定を確認

Humanoid型にしてもアニメーションが再生されない場合、確認したいのがAnimatorの設定です。

キャラクターにアニメーションを設定するためには、下のようなAnimator内の

ControllerにAnimatorControllerをセットする必要があります。

この場合、Noneとなっておりセットされていませんのでアニメーションは動きません。

下のように、AnimatorControllerをドラッグアンドドロップで設定しておきましょう。

AnimatorControllerの設定を確認

AnimatorController内の設定も確認してみましょう。

キャラクターには、AnimatorControllerで設定された条件に沿ってアニメーションが適用されます。

このAnimatorController内の、矢印による遷移が上手く機能しているかを確認しましょう。

上の例ではRunのアニメーションを動かしたくても、Idle状態から矢印が繋がっていないためRunは再生されません。

下のように、MakeTransitionで矢印を伸ばし、Conditionsからアニメーションが切り替わる条件を正しく設定しておきましょう。

とにかく一つのアニメーションの動作を確認したいということであれば、下のようにEntryから直接つながるStateにアニメーションを設定すれば手っ取り早く動かすことができます。

まずはこのようにして動くことを確認してから、遷移条件の確認をすることがオススメです。

アニメーションの位置がずれる

アニメーションをループ再生していると、位置がだんだんとずれていったり

向きが微妙に変わっていったりする場合があります。

そんな時のために、アニメーションの位置や向きを固定する項目があります。

まず再生しているアニメーションのインスペクターを開きましょう。

インスペクター内に下のような設定項目があります。

このうち、下の三項目のBake into Poseにチェックを入れるようにしましょう。

  • Root TranformRotation
  • Root Transform Position(Y)
  • Root Transform Position(XZ)

これにより、キャラクターがアニメーションによる移動や回転の影響を受けなくすることができます。

アニメーションクリップが編集できない

アニメーションクリップを編集しようとした時に、下のように「Read-Only」と表示され、編集できない場合があります。

そんな時は、インスペクターからEdit画面が開ける場合はそこから編集するか

編集したいアニメーションクリップを選択した上でCtrl+Dを押し、複製してみましょう。

すると下のように新たにアニメーションクリップが複製され

複製された方のクリップではRead-Onlyが外れて編集できるようになっています。

アニメーションのループが上手くできない

アニメーションにはループ再生をする設定項目があります。

アニメーションクリップ内のLoopTimeにチェックを入れることで設定できるのですが

このループが違和感のある繋がり方になることがあります。

そんなときに確認したい項目を二つ紹介します。

一つ目は、正しくループしているかを示すloop matchの色です。

アニメーションクリップ内では、下のようにループの開始位置と終了位置を指定することができます。

この開始位置と終了位置によってはループが自然に繋がらず、loop matchが赤色や黄色で表示されるのです。

この位置を調整して、すべてが緑色になるようにしましょう。

そしてもうひとつ、下のようなLoop Poseという設定項目があります。

Loop Poseはループ遷移を滑らかにしてくれる設定なので、チェックを入れておきましょう。

これらを設定すると下のようにループの不自然さが改善されました。

アニメーションのループ再生については、下の記事でも解説しています。

あわせて読みたい
【Unity】アニメーションをなめらかにループさせる方法解説 Unityで開発をしていると、キャラクターにこんな動きをさせたい!と思うことがあると思います。 そんなときUnityのアニメーション機能を使うと便利です。 そしてアニメ...

おすすめアセット

Mega Animations Pack

あわせて読みたい
Human Mega Animations Pack | 3D Animations | Unity Asset Store Elevate your workflow with the Human Mega Animations Pack asset from Kevin Iglesias. Find this & other Animations options on the Unity Asset Store.

Mega Animations Packは、220種類以上のアニメーションが入ったアセットです。

戦闘用のモーションから、コミカルな動きのモーションなど様々な種類が含まれています。

武器や小道具も充実しておりお得感のあるアセットです。

FPS Animation Framework

あわせて読みたい
FPS Animation Framework | Animation Tools | Unity Asset Store Use the FPS Animation Framework tool from KINEMATION on your next project. Find this & more animation tools on the Unity Asset Store.

FPS Animation Frameworkは、FPSゲームに使えるアニメーションが入ったアセットです。

銃を構えるアニメーションやリロードなど、FPSゲームに必須のアニメーションが含まれています。

FPSゲームを開発する際に必ず役に立つアセットです。

まとめ

以上、アニメーションが上手く動かない時の解決方法について解説してきました。

アニメーションが動かない原因、解決方法は様々です。

本記事で紹介した方法で問題が解決されれば嬉しいです!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

Unityメインの個人開発者。UnityでAIを学習させてみたり、野球ゲームを作ってみたりと色々してました。現在はライターとして、Unityで開発する人の力になる記事が書けるよう奮闘中。

目次