Animation Riggingは、再生中のアニメーションの上から、骨の向きや位置を計算で上書きする仕組みである。
手を特定の場所に届かせたり、首を対象に向けたりするのに使う。
ここでは、動く最小の構成と、その後で増やしていける制約の種類を整理する。
内容はAnimation Rigging 1.3の公式マニュアルに基づき、2026年10月24日に記載を再照合した。
実機での再現は含まない。
何をするものか
公式マニュアルでは、アニメーションされたオブジェクトに手続き的な動きを足すための制約のまとまりを作る、と説明されている。
挙げられている使いどころは2つある。
- キャラクターの装備・小道具・装飾品の二次的な動きを制御する
- IKやAimの制約で、対話的な調整やアニメーションの圧縮による誤差を補う
アニメーションを作り直すのではなく、再生した結果に手を入れる形になる。
そのため、同じアニメーションのまま、対象に合わせて動きを変えられる。
動く最小の構成
作業前にPackage Managerで使用するUnity Editorに対応するAnimation Riggingを導入し、Editorとパッケージの版を記録する。
以下はAnimatorを持つボーン付きモデルを使う構成である。
既存のアニメーションに重ねる場合は、まずそのモデルのアニメーションだけで正常に再生できることを確認する。
- ルートのGameObjectにAnimatorを付ける
- 同じルートにRig Builderを付ける
- Animatorを持つルートの直下に、ボーン階層とは別の子GameObjectを作る
- その子にRigを付ける
- Rig BuilderのRig Layersに、作ったRigを割り当て、レイヤーを有効にする
- Rigの子として、制約のコンポーネントを付けたGameObjectを置く
- Targetや任意のHintになるGameObjectをRigの階層内に置く。この例では制約の子にし、制御する腕のボーンの子にはしない
Rig Builderについては、既存のAnimatorのステートマシンに追記されるPlayable Graphを作る、と説明されている。
つまり、Animatorの再生結果の後ろに処理が足される形になる。
そのため、Animatorが無いと動かない。
Rigは1つの階層に1つ
公式マニュアルには、1つのコントロールリグの階層にRigコンポーネントは1つだけにする、という注意がある。
制約をいくつも足したくなっても、Rigを増やすのではなく、Rigの下に制約を並べる。
複数の制御用リグを使う場合は、それぞれを別のRig Layerへ登録する。
レイヤーごとに有効・無効や重みを管理できる。
メニューから雛形を作る
AnimatorがあるGameObjectを選択すると、上部のAnimation RiggingメニューからRig Setupを実行できる。
操作の詳細は公式のAnimation Rigging Menuを参照する。
| メニュー項目 | 何をするか |
|---|---|
| Rig Setup | 選択したGameObjectにRigBuilderを作り、Rigを付けた「Rig 1」という子を作る |
| Bone Renderer Setup | 子のSkinned Mesh Rendererから骨を取り出して、BoneRendererを作る |
| Restore Bind Pose | 読み込んだときのバインドポーズに戻す |
| Align Transform | 選んだものの位置と回転を、別のGameObjectに合わせる |
| Align Position | 位置だけを合わせる |
| Align Rotation | 回転だけを合わせる |
Bone Renderer Setupを先に実行しておくと、シーン上で骨が見えるようになる。
Bone RendererはSceneビューでの可視化・選択を助けるもので、IKの必須条件ではない。
描画した骨はGameビューには表示されない。
Targetを手首に合わせるときは、Target、手首ボーンの順に選択してAlign Transformを実行する。
位置と回転が揃ったことを確認してからTargetを動かす。
腕を届かせる制約
手を狙った場所へ持っていくには、Two Bone IK Constraintを使う。
Root・Mid・Tipの3つのTransformで表す2本のボーンを制御し、先端をTargetへ近づける。
腕の長さで届かない場所へTargetを置いても、必ず一致するわけではない。
| 項目 | 指定する対象 |
|---|---|
| Root | 手足の階層のいちばん根元 |
| Mid | その間。Rootの子である必要がある |
| Tip | 先端。Midの子である必要がある |
| Target | Tipに来てほしい位置を示すGameObject |
| Hint | 曲がるときにどちら向きになるかを示すGameObject(任意) |
一般的な腕ではRootに上腕、Midに前腕、Tipに手のボーンを指定する。
肩・鎖骨ボーンを上腕と取り違えず、モデルの実際の親子関係を確認する。
Hintは任意で、未指定でもTwo Bone IKは使用できる。
Hintを指定すると、肘を曲げたい方向を追加で制御できる。
未指定の場合、Hint Weightは無視される。
Hintを使う場合は、肘を曲げたい側にGameObjectを置いて割り当てる。
「後ろ」に固定せず、モデルの向きと腕の姿勢を見て調整する。
Hint Weightが0だと方向の指定は反映されないため、検証時は1にする。
TipからTargetとHintを作る方法
手動で作る代わりに、Two Bone IK Constraintの自動設定を使う方法もある。
- Rig配下のGameObjectにTwo Bone IK Constraintを追加する
- Tip欄に手のボーンを割り当てる
- Inspectorでそのコンポーネントの見出しにあるコンテキストメニューからAuto Setup from Tip Transformを実行する
TargetとHintがRigの階層内に作成・割り当てされる。
作成後はRoot・Mid・Tipが意図した腕を指しているかを確認し、生成されたTargetとHintを調整する。
手動で用意済みの場合は、自動設定を追加で実行する必要はない。
効き具合を決める
| 項目 | 何を決めるか |
|---|---|
| Weight | 制約全体の効き。0なら手足に影響しない |
| Target Position Weight | 目標に届かせるときの位置の計算への効き |
| Target Rotation Weight | Tipに掛ける回転の効き |
| Hint Weight | Hintが階層の形に与える効き |
| Maintain Target Offset | TipとTargetの最初のずれを保つかどうか |
確認を始めるときはRigのWeight、制約のWeight、Target Position Weightを1にする。
手の回転もTargetに揃えるならTarget Rotation Weightを1、位置だけ試すなら0にする。
Maintain Target Offsetは初期のずれを残す設定なので、位置を一致させたい検証ではPositionの保持を無効にする。
回転もTargetに一致させて確認するなら、Maintain Target OffsetのRotationの保持も無効にする。
位置のずれと回転のずれは別々に保持できるため、Positionだけ無効にしても初期の回転差が残る場合がある。
たとえば、物を掴む場面で制約のWeightを1へ近づけ、離すときに0へ戻す。
元のポーズとIK後のポーズに差がある場合、Weightを急に変えると手が跳ねることがある。
必要に応じて時間をかけて補間する。
Animation Rigging 1.3の制約は12種類
公式マニュアルに並んでいる制約は次のとおりである。
- Blend Constraint
- Chain IK Constraint
- Damped Transform
- Multi-Aim Constraint
- Multi-Parent Constraint
- Multi-Position Constraint
- Multi-Referential Constraint
- Multi-Rotation Constraint
- Override Transform
- Twist Chain Constraint
- Twist Correction
- Two Bone IK Constraint
名前から役割が読めるものが多く、Aimは向ける、Parentは追従、IKは届かせる、になる。
まずTwo Bone IKで1つ動かしてから、必要なものを足していくと迷いにくい。
動かないときに見るところ
- ルートにAnimatorとRig Builderの両方が付いているか
- Rig BuilderのRig Layersに、作ったRigが入っているか
- 制約を付けたGameObjectが、Rigの子になっているか
- RootとMidとTipが、親子の順になっているか
- RigのWeight・制約のWeight・Target Position Weightが0になっていないか
これらは最初の切り分け項目である。
Targetが割り当てられているか、Rig Layerが有効か、Consoleにエラーがないかも確認する。
エラーが表示されないことだけでは設定が正しいとは判断できない。
再生中にTargetを腕の届く範囲で動かし、Weightを0と1に切り替えて結果を比較する。
Target自体は動かせるのに、それをまとめた親を動かしても期待どおりに追従しない場合は、その親が制約から参照されているかを確認する。
Rig階層内の操作対象で、どの制約からも参照されないGameObjectにはRig Transformコンポーネントを追加する。
追加先はAnimation Rigging/Setupである。
複数の制約を組み合わせた場合はHierarchy上の順番も確認する。
Rig内の制約は階層を深さ優先でたどって評価されるため、子への移動や並べ替えで結果が変わる場合がある。
最初は腕のTwo Bone IKだけで確認し、制約を一つずつ戻して影響を切り分ける。
まとめ
- Animation Riggingは、再生したアニメーションの上から骨を計算で動かす
- ルートにAnimatorとRig Builder、その子にRigを置くのが最小の形
- Rigは1つのコントロールリグの階層に1つだけにする
- Two Bone IKでは、Root・Mid・Tipを親子の順に入れる
- Hintは任意で、肘や膝の曲がる方向を追加制御するときに使う
- Weightを0から1へ動かして、必要な場面だけ効かせる
この記事はAnimation Rigging 1.3の公開マニュアルに基づく。
異なる版では、導入済みパッケージのマニュアルも確認する。
組み立ての流れはUnity公式のRigging Workflowにある。
制約の一覧はConstraint Componentsにまとまっている。
各項目の意味はTwo Bone IK Constraintに載っている。
Unityの操作はUnityの使い方まとめにも置いている。
自動設定・Offset・Rig Transform・制約の評価順は、2026年10月26日に上記の公式Two Bone IKとRigging Workflowで再照合した。
Editorでの操作とモデルを用いた再現は未実施である。
