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

URLをコピーする
URLをコピーしました!

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

あわせて読みたい
Mega Animations Pack | 3D Animations | Unity Asset Store Elevate your workflow with the 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をコピーする
URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

目次
閉じる