UnityでHumanoidアニメーションを使うには、キャラクターのモデルを選び、Inspector の Rig タブで Animation Type を Humanoid にして Apply を押し、Avatar を作ります。
アニメーションの側も Humanoid にしておくと、Avatar を設定した別のキャラクターに同じ動きを使い回せます。
- Humanoid の条件:2本の脚・2本の腕・頭があり、15本以上のボーンがある
- Avatar の作成:Rig タブで Animation Type を Humanoid、Avatar Definition を Create From This Model にして Apply
- 割り当ての確認:Configure を押し、ボーンの割り当てとTポーズを確かめる
- 動きだけのFBX:同じボーン構成なら Copy From Other Avatar で既存の Avatar を指定する
- リターゲット:同じ Animator Controller を、Avatar を設定した別のモデルの Animator に指定する
この記事は、Unity 6.3 の公式マニュアル(2026年10月18日に確認)の記載にもとづいています。
Unityのエディタを使った実機での再現は含まず、画面の名前は英語版の表記です。
Humanoidに向くモデル
公式マニュアルでは、Humanoid は2本の脚・2本の腕・頭を持つリグに使う設定で、それ以外の四足の動物や物体などには Generic を使うと説明されています。
| Animation Type | 使う場面 |
|---|---|
| None | アニメーションが無い |
| Legacy | Unity 3.x 以前と同じ旧アニメーションシステムを使う |
| Generic | 人型でないリグ(四足の動物など、動かしたいもの全般) |
| Humanoid | 人型のリグ(2本の脚・2本の腕・頭がある) |
モデルを作る側の条件として、マニュアルには次のような点が挙がっています(Unity Manual:Creating models for animation)。
- ボーンは最低15本で、必須のボーンがそろっている
- ボーンの名前を、LeftArm や RightForearm のように体の部位が分かる名前にする
- 左右の名前を、arm_L と arm_R のようにそろった規則で付ける
- 階層は、HIPS から spine・chest・shoulders・arm・forearm・hand のように自然な構造にする
- 二足のキャラクターは、両腕を真横に伸ばしたTポーズでモデリングする
- 書き出し形式は FBX が推奨されている
Maya の HumanIK で作ったモデルを Humanoid にする手順は、アニメーションに関するTIPSでも扱っています。
Avatarを作る
- Project ウィンドウで、キャラクターのモデル(FBX)を選ぶ
- Inspector の Rig タブを開く
- Animation Type を Humanoid にする
- Avatar Definition が Create From This Model になっているのを確かめる
- Apply を押す
Apply を押すと、Unity はボーンのつながりを解析して、モデルのボーンを Avatar の構造に自動で割り当てようとします。
うまくいくと Configure の横にチェックマークが付き、モデルの中に Avatar のサブアセットが作られます。
作れなかった場合は Configure の横にバツ印が付き、Avatar のサブアセットは作られません。
マニュアルでは、自動で作れた場合でも、Avatar が正しく設定されているかを確かめるよう案内しています(Unity Manual:Importing a model with humanoid animations)。
チェックマークは必須のボーンを割り当てられたという意味で、よりよい結果にするには、任意のボーンの割り当てとTポーズも整える必要があります。
Rigタブのそのほかの項目
| 項目 | 働き |
|---|---|
| Skin Weights | 1つの頂点に影響するボーンの最大数(初期値は4本で、性能の面でも推奨) |
| Strip Bones | スキンウェイトが割り当てられたボーンだけを Skinned Mesh Renderer に加える |
| Optimize Game Object | 読み込んだキャラクターの Transform の階層を取り除き、Avatar と Animator に格納して処理を軽くする |
| Extra Transforms to Expose | Optimize Game Object を使うときに、残しておく Transform を指定する |
ボーンの割り当てを確かめる
Rig タブの Configure を押すか、Avatar のサブアセットを選んで Configure Avatar を押すと、Avatar の設定画面に切り替わります。
Mapping タブでは、Body・Head・Left Hand・Right Hand の部位ごとに、どのボーンが割り当てられているかが表示されます。
実線の丸が必須のボーン、点線の丸が任意のボーンで、任意のボーンの動きは Unity が自動で補間できます(Unity Manual:Avatar Mapping tab reference)。
自動の割り当てがうまくいかないとき
マニュアルでは、Unity が内部で行うのと同じ手順を、画面下のメニューから手で行う方法が案内されています。
- Mapping メニューの Clear で、試みられた割り当てをいったん消す
- Pose メニューの Sample Bind-pose で、モデリング時の初期ポーズに近づける
- Mapping メニューの Automap で、そのポーズからボーンを割り当て直す
- Pose メニューの Enforce T-Pose で、必要なTポーズに戻す
それでも割り当てられないボーンは、Scene や Hierarchy から該当の枠へドラッグして手で割り当てます。
Tポーズになっていないとき
割り当ては正しいのにポーズが合っていない場合は、「Character not in T-Pose」というメッセージが表示されます。
Pose メニューの Enforce T-Pose を試し、それでも合わなければ、残ったボーンを手で回転させてTポーズにします。
Tポーズでモデリングしていないモデルで動きがおかしい場合は、Pose メニューの Reset も案内されています。
変更は、タブを切り替える前や設定画面を出る前に、Apply か Revert で確定させる必要があります。
割り当てを保存して使い回す
Mapping メニューの Save で、ボーンの割り当てを Human Template ファイル(拡張子 .ht)として保存できます。
同じ命名規則のキャラクターが複数ある場合は、Mapping メニューの Load でこのファイルを読み込みます。
Muscles & Settingsで動きの範囲を調整する
Avatar の設定画面の Muscles & Settings タブでは、ボーンごとに動く範囲を調整できます。
マニュアルの例では、Head-Nod と Head-Tilt の範囲は初期値で -40〜40度で、範囲を狭めると動きを硬くできると説明されています。
スライダーを動かすと、Scene ビューで動きの範囲を確かめられます。
Additional Settings の Translate DoF をオンにすると、一部のボーンで移動のアニメーションも使えるようになります。
ただし処理が増えるため、ボーンの移動を含むアニメーションを使う場合だけオンにするよう案内されています(Unity Manual:Avatar Muscle & Settings tab reference)。
アニメーション側のFBXを設定する
モーションを別のFBXで受け取った場合は、そのFBXも Rig タブで Animation Type を Humanoid にします。
マニュアルでは、メッシュと動きを別々のFBXに書き出した場合、ボーンの構成が同じなら、最初に作った Avatar を残りのファイルで使い回せると説明されています。
- 動きのFBXを選び、Rig タブで Animation Type を Humanoid にする
- 同じボーン構成なら、Avatar Definition を Copy From Other Avatar にする
- Source に、キャラクターのモデルで作った Avatar を指定する
- Apply を押す
ボーンの構成が違うキャラクターの動きを使う場合は、そのFBXで Create From This Model のまま Avatar を作ります。
Animationタブで確かめる項目
| 項目 | 働き |
|---|---|
| Loop Time | 最後まで再生したら最初に戻る |
| Loop Pose | 動きを継ぎ目なくループさせる |
| Root Transform Rotation の Bake into Pose | 向きの変化をボーンの動きに含める(オフならルートモーションとして残す) |
| Root Transform Position (Y) の Bake into Pose | 上下の移動をボーンの動きに含める |
| Root Transform Position (XZ) の Bake into Pose | 水平の移動をボーンの動きに含める |
| Mirror | 左右を反転する(Humanoid のときだけ表示) |
| Mask | クリップの一部の部位だけを読み込む |
Based Upon では、Humanoid のときだけ Body Orientation(上半身を前に向ける)、Center of Mass(重心)、Feet(足)を基準に選べます。
読み込みで問題があった場合は Animation タブの上に警告が出て、Import Messages を開くと Generate Retargeting Quality Report で詳しい内容を確かめられます(Unity Manual:Animation tab)。
マニュアルでは、警告はアニメーションが使えないという意味ではなく、元の動きと少し違って見える可能性を示すものと説明されています。
別のキャラクターにリターゲットする
リターゲットは、同じアニメーションを別のキャラクターのモデルに使うことで、Avatar を設定した Humanoid のモデルだけが対象です(Unity Manual:Retarget Humanoid animations)。
マニュアルでは、キャラクター用の部品をまとめた親のオブジェクトの下にモデルを置く構成が勧められています。
- Hierarchy に親のオブジェクトを作り、Character Controller などキャラクター用のコンポーネントを付ける
- モデルを、Animator を付けた状態で親の子として置く
- Animator を参照するスクリプトは、親ではなく子から Animator を探すようにする
子から探すには、GetComponent ではなく GetComponentInChildren を使います。
// 親のオブジェクトに付けたスクリプトから、子のモデルの Animator を取得する
Animator animator = GetComponentInChildren<Animator>();別のモデルに入れ替えるときは、次の手順で行います。
- 元のモデルを無効にする
- 新しいモデルを、同じ親の子として置く
- 新しいモデルの Animator の Controller に、元のモデルと同じ Animator Controller を指定する
- 親の Character Controller や Transform などを、新しいモデルに合わせて調整する
Animator には Controller のほかに Avatar の欄があり、Humanoid のキャラクターでは Avatar も指定します(Unity Manual:Animator component)。
Apply Root Motion は、キャラクターの位置と向きを、アニメーション自体で動かすか、スクリプトで動かすかを選ぶ項目です。
動かない・崩れるときの確認
| 症状 | 確かめること |
|---|---|
| Configure の横にバツ印が付く | 必須のボーンがそろっているか、ボーンの名前と階層が部位の分かる形になっているか |
| 割り当て後もポーズがおかしい | Character not in T-Pose が出ていないか、Enforce T-Pose で直るか |
| Play で動かない | Animator の Controller と Avatar が指定されているか、動きのFBXも Humanoid になっているか |
| 移動や拡大縮小の動きが消える | Import Messages に、移動やスケールのアニメーションを捨てたという警告が出ていないか |
| 関節が曲がりすぎる・曲がらない | Muscles & Settings の範囲の設定 |
| スクリプトから Animator が取れない | 親から GetComponent で探していないか(子にあるなら GetComponentInChildren) |
手の向きを狙った場所に合わせるなど、アニメーションの上から一部のボーンを動かしたい場合は、Animation Riggingの使い方を参考にしてください。
