【Blender5.2】Mixamoからアニメーションを取得する:トランスフォーム適用するときの注意

blender
記事内に広告が含まれています。

Mixamoでは、3Dキャラクターのモデルやリグ、アニメーションを手軽に入手できます。

Blenderでキャラクターアニメーションを作る際にも便利ですが、Mixamoからデータをそのまま読み込んで使おうとすると、

  • キャラクターのサイズが合わない
  • アーマチュアのスケールがおかしい
  • スケールを適用するとアニメーションの移動量まで変わってしまう
  • キャラクターを別のサイズに合わせたいのに、アニメーションだけ元の移動量のままになる

といった問題が起こることがあります。

この記事では、Mixamoからキャラクターとアニメーションを取得する基本的な方法から、Blenderで扱いやすいトランスフォームに調整する方法までを解説します。

※用途によってはトランスフォーム適用する必要はありません

スポンサーリンク

Mixamoからキャラクターを取得する

Mixamoを利用する

まずはMixamoにアクセスします。

Mixamoを利用するにはAdobeアカウントが必要なので、アカウントを持っていない場合は作成してログインします。

アクションを選択する

Mixamoにはあらかじめ用意されたアクションが多数あります。
使用したいアクションを選択し、Blenderで利用するためにダウンロードします。

  • アクションを選択
    左側画面でアクションを選択できます。アクションの検索もできます
  • アクションの調整
    右側に選択したアクションが再生されます。速さやミラーなど、好きに調整できます。
  • ダウンロード設定へ
    右上のDOWNLOADボタンを押すとダウンロード設定ウィンドウが開きます。

ダウンロード設定

ダウンロード時の設定について

  • Format:FBX Binary(.fbx)(FBXファイルとしてダウンロードします)
  • Skin:With Skin(モデルもダウンロードする) / Without Skin(アニメーションのついたリグのみダウンロード)
  • Frames Per Second:24、30、60fpsから選べます。必要に応じて設定。(よくわからない場合、デフォルト設定は30fpsなので30でいいです)
  • Keyframe Reduction:基本的にはNone(不要なキーフレームを削減するための設定です)

設定したら右下のDOWNLOADボタンでFBXファイルをダウンロードできます。

スポンサーリンク

BlenderにMixamoのデータを読み込む

次はBlenderを開いてダウンロードしたMixamoのFBXファイルをインポートします。

FBXをインポートする

Blenderの

File > Import > FBX (.fbx)

からファイルを読み込みます。

インポート設定は特に構う必要はありません。

ダウンロードしたfbxファイルを選択してImport FBXでインポートします。

  • スキン有の場合
    スキンとリグ
  • スキン無の場合
    リグだけ

がインポートされます。

(リーフボーンがあるかと思ったけどリーフボーンじゃないらしい…。のでIngnore Leaf Bonesにチェックしても何も変わらなかったです。)

スポンサーリンク

Mixamoのトランスフォームを確認・修正・適用する

Mixamoから読み込んだキャラクターは、Blenderでそのまま使うこともできますが、回転やスケールに数値が入っており、整理したくなるときもあります。

そもそも適用する必要ある?

正直、普通に使うだけなら適用しない方がいいです。回転とスケールを適用すると、あとから修正する必要が出てきてしまうからです。適用する必要があるのかどうかは確認してください。

  • 自分のリグにMixamoアニメを流し込みたいだけ→Rokokoアドオンなどでリターゲットすればいいだけだから適用しなくていい。
  • Mixamoアニメのみを組み合わせたい→適用する必要ない
  • サイズを変えたい。→アーマチュアをスケールして適用せず使えばいい

というわけで、それ以外の特殊な用途でとにかくトランスフォームが適用したいんだ‼という方以外は、特に適用する必要はないかもしれません。正直適用してもあまりいいことがない気がしています。

※自分はジオメトリノードで操作してみたいという動機のもとこのような操作をしているだけです。

なぜScaleをApplyするとアニメーションがおかしくなるのか

Mixamoのアニメーションでは、キャラクターの移動に関する情報がHipボーン側のLocationなどにキーフレームとして記録されています。

そのため、トランスフォームでスケールを調整していた移動量が、適用すると1倍に戻ってしまい、おかしくなってしまうようです。

つまり、「キャラクターを大きく(小さく)する」だけではなく、「アニメーションが記録している移動量との比率」も考える必要がある

回転について

ちなみに回転も適用するとローカル軸が変更されるけど、デフォルトでローカル軸を使う設定になっているので回転を適用してもアニメは変化しません。しないけどY軸とZ軸が入れ替わってるので自作のアニメを追加しようと思うとおそらくめんどいことになる。

スポンサーリンク

トランスフォームの修正・適用

サイズ変更

アーマチュアを選択してサイズを変更できます。

※デフォルトではピンク球体関節モデルは1.76mになっています。

サイズを変更したい場合は3Dカーソルを中心にしてスケールして好きなサイズに変更してください。

トランスフォームの適用

まずアーマチュアを見てみると、回転やスケールに値が入っています。

スケールの値は後で調整に使うので覚えておきます。

Ctrl + AでRotation & Scaleを選択しトランスフォームを適用します。

トランスフォームを適用すると、アーマチュアの位置が大きくズレることがあります。探してください。

モデルのトランスフォーム適用

球体関節モデルの場合ジョイント部分とそれ以外の二つのオブジェクトに別れています。統合して、こちらもトランスフォームを適用しました。

再生してみると位置が莫大な量移動していきます。これを直します。

Hipsボーンのアニメーションを確認する

Pose ModeでHipsボーンを選択し、Graph Editorを開きます。

  • Location X
  • Location Y
  • Location Z

だけを表示してカーブを確認します。莫大な数値が入っていると思いますので、これを選択し、
S + Y 0.01(最初にアーマチュアのスケールに入ってた値)で縮小します。

アニメーションを再生して不具合がないか確かめます。

スポンサーリンク

リグ位置を中心に戻す

トランスフォームを適用すると原点とリグ、モデルの位置もかなりズレます。

アニメーションを修正したときと同様、

Pose ModeでHipsボーンを選択して、X, Y, ZのLocationを1つずつ直していきます。

例えばZLocationを選択し、全体を選択して、G + Yで上下に動かし、リグが原点位置に近づくようにします。

(※Z軸とY軸は入れ変わったように動きます)

スポンサーリンク

まとめ

Mixamoは、キャラクターとアニメーションを手軽に用意できる非常に便利なサービスです。

一方で、Blenderに読み込んだ後にスケールを変更したり、トランスフォームをApplyしたりすると、アニメーションの移動量との関係を調整する必要が出てくる場合があります。

今回のポイントは、

  • MixamoからFBXをダウンロードする
  • Blenderにキャラクターとアニメーションを読み込む
  • アーマチュアのトランスフォームを確認する
  • ScaleをApplyする場合はアニメーションへの影響を確認する
  • HipボーンのLocationをGraph Editorで調整する

という流れです。

※途中でも言いましたが、普通にMixamoアニメーションを組み合わせてみたい、とかアニメーションを自作リグに流し込みたい、などの用途ではトランスフォームを適用する必要はありません。

スポンサーリンク

関連記事

コメント