
今回はMixamoのモーションをMayaで読み込み、HumanIKを使いご自身のキャラクタにリターゲットする方法を解説します。
Mixamo作業
Mixamoとは?
Mixamoは、Adobeが提供する3Dモデリングとアニメーションのためのオンラインプラットフォームです。
ゲーム開発や映画制作など、さまざまなクリエイティブなプロジェクトに利用されています。
- 自作した3Dモデルに簡単にリグ(骨格)を設定できます。
- 600種類以上のモーションテンプレートから好きなものを使用できます。
- リグとアニメーションがついたデータのダウンロードして、様々なソフトウェアに読み込めます。
- 約70種類のキャラクターに好みのアニメーションをつけてダウンロードすることも可能です。
- 全ての機能は無料で利用できます。
サイトログイン
Mixamoのサイトにログインします。

Log in(Sign in)
Log inボタンを押します。

Email address(メールアドレス)を記入してContinueを選択します。
職場や学校のアカウント(メールアドレス)ではログイン出来ないので、SignUpで個人のADOBEアカウントを作成してください。Substance 3D Community Assets でも要求されるのでこのタイミングでの作成をお勧めします。

Sign Up
ADOBEアカウントをおもちでないかたはSignUpfor Freeを選択します。
作成方法はオレンジ色の文字をクリックすると表示されます。
↓アカウントの作成方法はここをクリック↓

ADOBEアカウントを作成するためにメールアドレス(gmailでOK)とパスワードを設定します。
ADOBEからのメールを受け取るために使用します。

個人情報を入力してCreate Accountをクリックします。
Webページに戻ります。

しばらくすると設定したメールアドレスに上記のメールが届きます。届かない場合は迷惑メールを確認しましょう。
メール内のリンクthis verification linkをクリックします。

リンク先ではCreate Accountで設定したパスワードを入力します。
Continueをクリックしてください。

これでADOBEアカウントの取得が完了しました。
Continueをクリックしてください。
Web画面に戻ります。
モーションデータの検索

Mixamoのログイン直後の画面です。左側がモーションのリスト。右側が呼び出したモーションになります。

Searchのテキスト入力エリアをクリックしてください。検索カテゴリーが表示されます。
☑Danceにチェックをいれます。

Dance のモーションがヒットしました。さらに絞り込みます。
テキストボックスにHip Hopと入力しエンターを押します。

Hip Hopで絞り込んだモーションから、今回はArms Hip Hop Danceをクリックします。
モーションのダウンロード
右側のウィンドウのキャラクターで、先ほどクリックしたArms Hip Hop Danceの動きを確認します。

DOWNLOADをクリックします。

データは.FBX形式でダウンロードすることが出来ます。
キャラクターとモーションをセットでダウンロードできますが、今回はスケルトンとモーションデータのみ必要なのでキャラクター(スキン)は必要ありません。
Skin:Without Skin
を選択してDOWNLOADをクリックします。
Mayaでの作業
.fbxファイルの読み込み
Mixamoでダウンロードした.fbxデータをMayaで読み込みます。

ファイル > 読み込み

Arms Hip Hop Dance.fbxを読み込みます。

モーションの付いたスケルトンが読み込まれました。再生して確認します。
Tポーズを作成する
HumanIKにスケルトンを定義するために適切なTポーズが必要です。
ダウンロードしたモーションにはTポーズのフレームがないので-1フレームにTポーズを追加します。

ボーンを全て選択します。
グラフエディタ

グラフエディタのウィンドウを開きます。

モーションデータが確認できました。
回転情報のリセット
MixamoのスケルトンはデフォルトがTポーズです。回転の値を全て0にします。

カーブの表示を回転に限定します(移動のカーブを非表示にします)。
表示 > アトリビュート > ☑回転

表示カーブが回転のみになりました。

タイムスライダーを-1フレームに移動します。

-1フレームにキーを打ちます。
全てのカーブを選択
右ボタンクリック→キーの挿入

-1フレームのキーを全て選択して値を0にします。

Tポーズになりました。
HumanIK
Mixamoのスケルトン(モーション)を自作キャラクターにリターゲットして動かせるように、HumanIKに定義します。HumanIKのパネルを表示してください。

キャラクタ定義を作成
MixamoのスケルトンをHumanIKに認識させる為のキャラクタ定義を作成します。

[キャラクタ定義を作成]をクリック

空のキャラクタが作成されました。こちらにMixamoのスケルトンを定義します。
キャラクタ名の変更
HumanIKのキャラクターは視認しやすいように名前を変更します。


青いHumanIKアイコンをクリック > キャラクタ名の変更
Mixamo_Motion
に変更します。
HumanIKの定義(自動)
モーションデータ入っているスケルトンをHumannIKのキャラクタに定義づけます。
Mixamoが用意しているスケルトンはHumanIKと非常に相性が良く、Mayaが用意しているスケルトン定義のプリセットを使うことですべてのスケルトンが自動で定義されます。
スケルトン定義のロード

📁アイコン(スケルトン定義のロード)をクリックします。

Template:HIK
Match all orbs with prefix:mixamorig
OK をクリック
Template:タブ内の(browse)をクリックすると
予めご自身で作成、保存したスケルトン定義を呼び出すことが出来ます。

全てのボーンが緑色(定義完了)に変化しました。右上のチェックアイコンが緑色なので、ロックボタンを押して定義終了です。
HumanIKの定義(手動)
MixamoなどのMayaと相性の良いのスケルトンは、上記の方法で自動的に定義づけが可能ですが、スケルトンの各ボーンの名前が独特な場合や構成が特殊な場合は手作業で定義づけを行わなければいけません。
以下にMixamoのスケルトンを例に手動で定義づけを行う方法を解説します。
Rootの作成
必須ではありませんがHumanIKにはReference(Root)の設定箇所があるのでスケルトンの親にロケーターを作ります。

ロケーターを作成します。

名前をRootに変更してmixamorig の親にします。
Reference(Root)
先ほどのRootを選択した状態で、humanIK のReference(Root)に定義します。

足の間のマークをマウス右ボタンクリック
Assign Selected Boneを選択

Referenceのマークが緑色に点灯しました。定義づけ完了です。
Hips(腰)

Hips(腰)のボーンを選択します。

HumanIKのHips(腰)のマークををマウス右ボタンクリック
Assign Selected Boneを選択

Hipsのマークが緑色に点灯しました。定義づけ完了です。
LeftUpLeg(左太もも)

LeftUpLeg(左太もも)のボーンを選択します。

LeftUpLeg(左太もも)のマークををマウス右ボタンクリック
Assign Selected Boneを選択

LeftUpLegのマークが緑色に点灯しました。左右対称の場合、右側も同時に定義づけされます。
LeftLeg(左すね)

同様にLeftLeg(左すね)のボーンを定義します。
LeftFoot(左足)

同様にLeftFoot(左足)のボーンを定義します。
LeftToeBase(左足前踏み)

LeftToeBase(左足前踏み)のボーンを選択します。

LeftFoot右側の▽ボタンを押します。

足指の定義画面に移動します。ボーンは1本しかないので中指の最初のマークAssign Selected Boneを選択します。

左上の△ボタンで全体画面に戻ります。
Spine(背骨)

同様にSpine(背骨)のボーンを定義します。
Spine1(背骨1)

To Spine Viewの▽ボタンを押します。

一番下のマークに定義。
左上の△ボタンで全体画面に戻ります。
Spine2(背骨2)

下から2番目のマークに定義。

左上の△ボタンで全体画面に戻ります。
Neck(首)

Neck(首)を選択後To Neck Viewに移動します。

一番下のマークに定義します。
LeftShoulder(左鎖骨)
LeftShoulder(左鎖骨)を選択します。

To Left Shoulder Viewをクリックします。

1番目のボーンに定義づけします。
LeftArm(左二の腕)

LeftForeArm(左腕)

LeftHand(左手)

ToLeftHands(左指)
今回のおキャラクターはクイックリグでセットアップしているので指は動きませんが、説明のために定義します。

指のボーンが選択しづらい場合はジョイントサイズを変更して選択しやすくしましょう。

ディスプレイ > アニメーション > ジョイントサイズ
数値を変更します。
Head(頭)

すべてのボーンが定義づけされました。右上のチェックマークが緑色に変わればリターゲットが可能です、
スケルトン定義のロック

🔓アイコンをクリックしてロック🔒
スケルトン定義の保存
定義した内容を保存します。今後は同じ仕組みのスケルトンに対しスケルトン定義のロードから読み込みが可能になり、再定義の必要がなくなります。

Temlate Name:mixamo
Path:ご自身の作業ディレクトリ
を指定してOKをクリックします。
スケルトンの書き出し
定義したスケルトンをリターゲット用ファイルとして読み込めるように[選択項目の書出し]します。
[シーンを保存]との違いは、シーンの設定やカメラ情報など余計なデータを保存しないのでデータが軽くなり、読み込む際にも余計なデータを読み込む必要がありません。

ファイル > 選択項目の書出し

.ma形式で書き出します。
.fbx形式はMaya固有のHumanIKデータを引き継げないので注意してください。
キャラクタにリターゲットする
前回クイックリグの演習で作成したキャラクタを読み込み、HumanIKで先ほどのMixamoモーションを持ったスケルトンをリターゲットします。

今回のMixamoモーションの入ったHumanIKのスケルトンデータに自作キャラクタを
ファイル > 読み込み
で追加します。

HumanIKで以下の設定をします。
キャラクタ:QuickRigCharactor1(前回作成したキャラクタ)
ソース:Mixamo_Motion (今回作成したスケルトン)
再生してリターゲット結果を確認します。

モーションがご自身のキャラクタで再現されていれば成功です。
※視認しやすいようにQuickRigCharactor1の位置を横に移動しています
移動距離をソースに合わせる
現状ではQuickRigCharactor1とMixamo_Motionの等身が異なるため移動距離がズレています。
このほうが都合の良い場合もありますが、一致させる必要がある場合は以下の方法をお試しください。
HumanIKの「定義」タブに移動します。

HumanIKのアイコンから
キャラクター定義を編集 > HumanIKプロパティを編集
アトリビュート設定を開きます 。

「リターゲット指定」の項目の「ソースの位置」を「オン」にすることで
幅と移動距離をソース(Mixamo_Motion)に合わせることができます。

ボーン単位でのソースとの位置調整

「達成度」の項目内のスライダーをパーツごとに変更することで手や頭などの位置を ソースのスケルトンに近づけることができます。

ステップアップのためのヒント
上記のモーションから確認出来る通り、クイックリグは指と前踏みボーンがないので手足が動きません。
精度を上げる為には、ボーンの数を増やす必要があります。

ヒントとして「スケルトンの作成」という方法があります。

このボタン一つでHumanIKに定義済みのスケルトンを作成することが出来ます。
初期状態で手指のボーンもあり、すべて定義されています。

更に、スケルトンタブから背骨や鎖骨、ロールボーン(腕や足などのボーンの数を増やすことで「ねじり回転」時にスキンが瘦せてしまう現象を軽減する)の数も増やすことが可能です。
HumanIKは多機能なので試行錯誤のきっかけにして頂ければ幸いです。
まとめ
今回はMixamoのモーションをMayaで読み込み、HumanIKを使いご自身のキャラクタにリターゲットする方法を解説しました。
学生さんから「Webの情報はMixamoでキャラクターを読み込み自動でリターゲットする方法が殆どで、Maya上でのリターゲット方法が見つからない」とのことでしたので急遽作りました。
今回はMayaで行いましたが、勿論Blenderなどの他のDCCツールにも応用できます。ご参考になれば幸いです。
