Mixamoとは?

Mixamoは、Adobeが提供する無料の3Dアニメーションサービスです。

歩く・走る・ジャンプ・攻撃など数千種類のアニメーションが揃っていて、ダウンロードすればすぐにUnityで使えます。

自前でアニメーションを作る手間が省けるので、プロトタイプや個人開発では特に重宝します。

アニメーションのダウンロード

アニメーションの選択

使用するにはAdobeアカウントが必要です。すでにAdobe製品を使っているなら、そのアカウントでログインできます。

ログイン後、画面上部の「Animations」タブからアニメーションを検索・選択します。

アニメーションを選択すると、右側のプレビューでサンプルキャラクターの動きを確認できます。

Speed(速さ)やArm Space(腕の広げ具合)などのパラメータもスライダーで調整できます。

ダウンロード設定

アニメーションが決まったら「DOWNLOAD」ボタンをクリックします。ダウンロードダイアログで以下を設定します。

項目推奨設定説明
FormatFBX Binary(.fbx)Unityで扱いやすい形式
SkinWithout Skinアニメーションデータのみ取り込む場合
Frames per Second30一般的なゲームのフレームレート
Keyframe Reductionnoneキーフレームを削減しない

キャラクターモデルもMixamoのものを使うなら、SkinWith Skin にします。

自前のキャラクターモデルがあるなら Without Skin でアニメーションデータだけ落とせばファイルサイズを抑えられます。

In Placeについて

歩きや走りなど、キャラクターが移動するアニメーションには「In Place」というチェックボックスが表示されます。

  • オフ(デフォルト): アニメーションデータ自体にキャラクターが前進する動き(ルートモーション)が含まれる
  • オン: 前進する動きを除去し、その場で足踏みするアニメーションになる

スクリプトで移動を制御するなら、In Placeをオンにするのが基本です。

オフのままだとアニメーション自体が移動量を持っているので、スクリプトの移動処理と二重に動いてしまいます。

Unityへのインポート

FBXファイルのインポート

ダウンロードした .fbx ファイルを、Unityの Project ウィンドウにドラッグ&ドロップすればインポート完了です。

Rigの設定

インポートしたFBXを選択し、Inspector ウィンドウの「Rig」タブを開きます。

Animation TypeHumanoid に変更して「Apply」をクリックします。

これでリターゲティングが有効になり、体型の異なるキャラクター間でアニメーションを使い回せるようになります。

自前のキャラクターにMixamoのアニメーションを適用するなら、この設定は必須です。

Avatarの設定

Humanoidに変更すると、Avatarの設定も必要です。Avatar Definition には2つの選択肢があります。

  • Create From This Model: このFBXからAvatarを新規作成する
  • Copy From Other Avatar: 既存キャラクターのAvatarを流用する

キャラクターモデルのFBXには「Create From This Model」を設定します。アニメーション専用のFBX(Without Skinでダウンロードしたもの)には「Copy From Other Avatar」を選んで、キャラクターモデルのAvatarを参照させます。

こうすれば複数のアニメーションで同じAvatar設定を共有できます。

Animatorへの適用

Animation Clipの取り出し

インポートしたFBXをProjectウィンドウで展開すると、中に Animation Clip が入っています。

ただしFBX内のClipは読み取り専用で、設定を変更できません。

Animation Clipを選択して複製し、任意のフォルダにコピーを作っておきましょう。

ループの設定

コピーした Animation Clip を選択し、Inspector の「Loop Time」にチェックを入れるとループ再生されるようになります。歩きや走りなど、繰り返し再生したいアニメーションに設定してください。

Animator Controllerへの設定

Animator Controller を作成し、Animation Clipをドラッグしてステートとして追加します。

パラメータとトランジションを設定すれば、状況に応じたアニメーション切り替えが動くようになります。

Animator Controller の詳しい使い方は以下の記事で解説しています。

スクリプトからアニメーションを制御する

あとは Animator コンポーネントのメソッドでパラメータを更新すれば、アニメーションが切り替わります。

using UnityEngine;

public class PlayerAnimator : MonoBehaviour
{
    private Animator _animator;

    private void Start()
    {
        _animator = GetComponent<Animator>();
    }

    private void Update()
    {
        // 移動入力の大きさをSpeedパラメータに設定(旧Input Manager使用)
        float speed = Mathf.Abs(Input.GetAxis("Vertical"));
        _animator.SetFloat("Speed", speed);
    }
}

Animator Parameters の詳しい使い方は以下の記事で解説しています。

注意点

スケールのズレ

MixamoのFBXはセンチメートル単位で書き出されるため、Unityにインポートするとキャラクターが100倍のサイズになることがあります。

FBXのInspector「Model」タブで Convert Units にチェックが入っていれば、Unityがメートル単位へ自動変換してくれます。

サイズがおかしいと感じたらまずここを確認してみてください。

リターゲティングの注意

Humanoidリターゲティングは便利ですが、キャラクターの体型差が大きいと(手足の長さが極端に違うなど)関節の位置がズレて見えることがあります。

その場合はAvatarの「Configure Avatar」でボーンの割り当てを調整するか、そのキャラクター専用のアニメーションを用意したほうがいいかもしれません。

商用利用について

Mixamoのアニメーションは無料で商用利用できますが、利用規約は変更される場合があるので、使用前に最新の規約を確認しておくと安心です。

まとめ

Mixamoを使えば、アニメーション制作の経験がなくてもそれなりに動くキャラクターをすぐに用意できます。

ポイントだけおさらいしておくと:

  • ダウンロード時は FBX Binary 形式を選択
  • 移動アニメーションは In Place をオンにしてスクリプトで移動制御
  • Rigタブで Humanoid に設定してリターゲティングを有効化
  • アニメーション専用FBXは Copy From Other Avatar でAvatarを共有

アニメーションの種類がとにかく豊富なので、まずはMixamoで動きをつけてみて、必要に応じて自作アニメーションに差し替えていく、という進め方もおすすめです。