2025/04/16

Blenderリギング01~Armature&Bone~

こんにちは。
蓑田(みのだ)と中川です。

昨今、映像やゲーム開発など多方面から高い注目を集めているBlenderですが、リグの観点で見たときにBlender独自の文化として最初に目につくものはArmature(アーマチュア)になると思います。
本記事では、BlenderのArmatureとMayaのJointの違いについてご紹介します。
※.本記事の内容は、Blender4.2LTS(長期サポート版)の標準状態での内容についてご紹介します。

 

◆Armatureとは?

Armatureとは、Blender内でリグを作成する際に、ほとんどの場合で使用されるData-Blockの一種です。
Data-Blockとは以下のようなものを指します。

・Blenderの基本的なデータ単位
・Blenderファイルの主要な構成要素
・Mesh、Armature、Object などの種類に分類される

Mayaユーザーの方には少しイメージしづらいかもしれませんが、ざっくり言えば、

BlenderのData-Block ≒ Mayaのノード(Nodes)

Mayaでは、すべてのの要素がノード(たとえば transform ノード、shape ノード、shading ノードなど)として存在します。
BlenderのData-Blockも同様に、あらゆるデータ(オブジェクト、メッシュ、マテリアル、アニメーションなど)を管理するための最小単位として機能しています。

 

◆Armatureの構造

Armatureには、BoneBone Constraintの情報を含むことができます。
Blenderでリグを構築する際は、通常このArmature内のBoneとConstraintを組み合わせて行います。
※Boneについては後ほど詳しく解説します。

下図は、ArmatureタイプであるObjectが、Armature Data-Blockと紐づいている構造の一例です。

Object Data-Blockでは、メッシュやカメラなどと同様にObject自体の位置(Location)や向き(Rotation)を設定でき、さらにposeプロパティで各Boneごとにも位置や向きを設定してポーズをつけることができます。
またArmature Data-Blockのedit_bonesプロパティには、初期ポーズにおけるboneの位置や向き、階層構造を設定することができます。
※Blenderでは初期ポーズのことをRest Poseと呼びます。これはMayaにおけるBind Poseと同じような概念です。

 

Armatureの3つのモード

Armatureには、以下の3つのモードがあり、作業内容に応じて使い分ける必要があります。
Mayaのように、1つのモード内でビューポート上から直接ボーンの作成や編集、アニメーション作成までを行うことはできません。Blenderでは常にモードを切り替えながら作業を進める必要があります。

Object Mode Armature自体のTransform(移動・回転・スケール)や階層構造を編集する際に使用するモード。

【Mayaユーザー向け補足】ルートジョイントのTransformを操作して階層全体を動かすようなイメージ

Edit Mode Armature内のBoneの作成や配置、向きの編集、および階層構造の変更を行い、初期ポーズを設定するモード。

【Mayaユーザー向け補足】ジョイントのバインドポーズの構造(位置・向き・階層)を編集するモード。

Pose Mode

Edit Modeで作成したBoneに対して、Bone Constraintの設定やポーズの作成、アニメーションの作業を行うモード。

【Mayaユーザー向け補足】リグとして動かす・アニメーションをつけるモード。

 

具体的には、各モードで下図の箇所を編集することができます。

 

◆Boneの構造

Mayaの場合、Jointを階層構造で配置した際、「Draw Style(描画スタイル)」を「Bone」に設定することで、親Jointと子Jointの間にボーン(骨)を視覚的に描画させることができます。

一方、BlenderではMayaのJointに相当するものを単独で作成することはできません
BlenderのBoneは、以下の3つの要素で構成されています。

・根元側の点である Head
・先端側の点である Tail
・HeadとTailをつなぐ線(胴体部分)である Body

これらがセットになったものが、BlenderにおけるBoneです。
つまり、Blenderでは「点としてのJoint」だけを作成するという概念はなく、常にBoneとして存在します。
そしてこのBoneは、ArmatureタイプのData-Blockの内部データの一つであり、ArmatureをEdit Modeに切り替えた状態で、新規作成や編集を行うことができます。


Edit ModeにおけるBoneの大きな特徴として、Boneの角度をUI上で直接設定・確認することはできません
Boneの向きは、Headの座標からTailの座標への方向が常に+Y軸方向になるように自動的に設定されており、この向きは変更することができませんつまり、Mayaにおける「Joint Orient」や「Rotate Axis」に相当する機能はBlenderには存在せず、自由に軸の方向を調整することはできません
また、BoneのY軸まわりの回転(いわゆる「捻り」)に関しては、HeadとTailという2点のみでは情報が不足するため、BoneのBody部分に「Roll」というパラメータが別途用意されています。このRollを調整することで、Boneのローカル回転軸(Y軸を基準とした捻り)を制御することができます

まとめると、

・Boneの向きは、HeadとTailの座標によって決まる。
・捻り(ツイスト)は、rollパラメータで制御される。
・Boneを構成する3つの要素(Head、Tail、Body)は常にセットで存在し、単独で削除することはできない。

 

◆Boneの親子階層の変更

次に、Boneの階層構造の変更についてご説明します。
まず、Blenderにおける「オブジェクト(Object)」同士の階層構造は、Mayaと同様に比較的自由に変更することができます。
Mayaでノードの親子関係を変更する方法としては、以下のような手段があります。

・アウトライナでのドラッグ&ドロップ操作
ビューポート上での操作(例:ショートカットキー「P」など)

これに対し、Blenderではこれらに加えて

・プロパティエディタ内の「Relations(関係性)」パネルから親を設定する方法(※詳細は後述)

といった選択肢もあります。
ただし、ここまでにご紹介した内容は、あくまで「Object」単位での階層構造に関する話です。
BlenderのBoneについては、これとは少し異なる構造と操作体系になっています。
この点についてご紹介します。

Mayaでは、下の画像のように、Jointの階層内にGeometry(ジオメトリ)を含めることが可能です。

しかし、Blenderでは同様のことは実現できません
BlenderにおけるBoneは、ArmatureというData-Blockの内部データの一つです。
少しニュアンスは異なりますが、階層構造として捉えると以下のようなイメージになります。

 

Data-Block
 Armature (Data-Blockの一種)
 |  └─ Bone (Armatureの内部データ)
 |─ Mesh   (Data-Blockの一種)
 | ├─ Vertex(Meshの内部データ)
 | └─ Edge (Meshの内部データ)
 |─ Light   (Data-Blockの一種)

 

このように、異なる種類のData-Block(たとえばMeshやLightなど)を、Boneの階層下に含めることはできませんまた、BoneをArmatureから分離して、単独のオブジェクトとして扱うこともできません

さらに、Bone同士の親子関係(階層構造)についても注意が必要です。
アウトライナ上でのドラッグ&ドロップ操作では変更できず、基本的には以下の方法で操作します。

・ビューポート上での操作(Edit ModeでBoneを選択し、Ctrl + P で親子関係を設定)
・プロパティエディタ内の「Bone」パネル → 「Relations」タブで親を指定する

 

Boneの親子階層の変更は、ArmatureをEdit Modeで編集しているときに行うことができます。
親子関係を設定・変更する際には、Boneのプロパティにある「Relations(関係性)」の中で、「Keep Offset」または「Connected」のいずれかを選択する必要があります。

 

【Keep Offset】を選択した場合

・子ボーン(親子関係を設定されたBone)の HeadやTailの位置は変更されません
・親ボーンのTailから子ボーンのHeadに向かって、細い点線(補助線)が表示されます
※これは、位置的には離れていても親子関係が成立していることを示す視覚的なガイドです。

 

【Connected】を選択した場合

・子ボーンのHeadが自動的に、親ボーンのTailの位置にスナップされます
・この状態では、親ボーンのTailと子ボーンのHeadの位置が常に一致(連結)するように同期されます
・つまり、子ボーンを移動することでHeadの位置を変えようとしても、親ボーンのTailと分離することはできません。

このように、Connectedを選んだ場合はBone同士が実際に連結され、構造上の一体感がある状態になります。
一方で、Keep Offsetはあくまで論理的な親子関係だけを保ち、位置関係は自由に設定できるという違いがあります。

 

BoneConstraint

Bone Constraintは、Boneに対して設定するConstraintです。

たとえば、MayaのOrient Constraintとほぼ同じ機能を持つ「Copy Rotation Constraint」をBoneに適用した場合、
指定されたターゲット(参照先)の回転に合わせて、対象のBoneの向きが自動で変化します。

Bone Constraintは、Object ModeおよびPose Modeで有効に機能しますが、Edit Modeでは一時的に無効化されますこれは、Edit ModeがBoneの構造自体(位置・長さ・親子関係など)を編集するためのモードであり、動作やアニメーションなどの計算(Constraintなど)は一時的に停止するためです。

 

Blenderでノードベースリギングは可能?

Blender 4.3.2 LTS(長期サポート版)の時点では、Mayaのようにノードを用いたリギング手法はまだ実装されていません。そのため、現状のBlenderでは、Edit ModeやPose Modeを駆使してArmatureを編集し、リグを構築していく必要があります。
一方で、近年のBlenderではGeometry Nodesをはじめとしたノードベースのモデリング機能も導入され、継続的に機能が拡充されています。今後のアップデートにおいて、ノードベースのリギングにも対応が進むことが期待されます。

 

◆まとめ

今回は、Blenderでのリグ作成において、ArmatureBoneに関する基本的なポイントの一部をご紹介しました。
Blenderでは、Armatureという概念があることや、Boneが最小単位であることなど、Mayaとは異なる考え方や編集手法が多く存在します。
しかし、こうした違いがあるからこそ、Blenderならではの柔軟な機能や独自のワークフローが実現されています。今後も、Blenderに関するさまざまな情報をお届けしていきたいと思っています。

当社では、Blenderを活用したリグ開発や制作にも力を入れております。
Blenderに関してお力になれることがございましたら、どうぞお気軽にご相談くださいませ。
ではまた。

※免責事項※
本記事内で公開している全ての情報について、その完全性、正確性、適用性、有用性等いかなる保証も行っておりません。
これらの情報のご利用により、何らかの不都合や損害が発生したとしても、当社は何らの責任を負うものではありません。
自己責任でご使用ください。



ブログTOPへ戻る