とはいえ問題は、キャラクターの腕や脚をドラッグするだけのようにはいきません。限界まで押しすぎると、肘が突然逆方向に曲がったり、走りが壊れたゼンマイおもちゃのように見えたりします。逆に安全側に倒しすぎると、動きが硬くてロボットめいてしまいます。もっともらしい物理と表現力のバランスを見つけるのは難しいです。
この記事では、運動学とは何か、そしてBlenderでどのように機能するのかを解説します。最後には、アニメーション用の最初のリグを作れるようになります。
運動学とは
運動学とは、力がどのように運動を引き起こすかを気にせずに、物事が空間でどのように動くかを研究することです。アニメーションでは、筋肉や重力で引っ張られることを考えるのではなく、キャラクターやオブジェクトの関節、手足、体の各パーツが、あるポーズから次のポーズへ移るときにどのように変形(変換)するかに注目します。

運動学は、3Dモデルを一貫性があり、説得力のある見た目で動かすためのルールとツールをアニメーターに提供します。重要なのは、順運動学と逆運動学の違いを区別することです:
- 順運動学(Forward Kinematics: FK): FKでは、動きは階層の上(ルート側)から始まります。手を動かしたいなら、まず肩を回し、次に肘、そして手首を回します。こうした方法は、弧を描く動きや、自然なスイング(手を振る、剣を振るなど)に直感的です。というのも、チェーン(リンク)を1つずつ制御できるからです。しかし手間もあります。たとえば指で空間上のある点に触れるアニメーションをしたい場合、すべての関節を手作業で調整して位置を揃える必要があります。
- 逆運動学(Inverse Kinematics: IK): IKは問題の考え方を反転させます。各関節を回すのではなく、チェーンの末端を、そこに置きたい位置(たとえばテーブル上のキャラクターの手)に置くと、コンピューターが、その地点に到達するために肩や肘がどのように曲がるべきかを計算します。IKは、体が動く一方で足を床に固定したままにするなど、接触が固定された動きに最適です。欠点は、注意深く制御しないと不自然な曲がり方を生むことがある点で、そのためには複雑な制約を定義する必要があります。
アニメーターは、どちらか一方だけを必ず選ぶわけではありません。必要な動きの種類に応じてFKとIKを切り替えます。流れるような弧の動きはFK、正確な配置はIK、そして多くの場合、この2つをブレンドして、最も自然な端から端までの動きを実現します。
なぜ運動学が重要なのか
運動学は、キャラクターの動きが解剖学的な筋道に従うことを保証します:関節は正しい方向に曲がり、手足は適切な関係を保ち、動作は自然に流れます。これがなければ、どれほど優れた3Dモデルでも、アニメーション中に破綻して見えてしまいます。キャラクターがテーブル上のコップに手を伸ばすとき、肘は正しく曲がり、手首は自然に回転していなければなりません。運動学がなければ、腕が過度に伸びたり、手がありえない方法でねじれたりします。
順運動学と逆運動学を使うことで、アニメーターははるかに少ない手順で複雑な身体パーツを制御できます。1フレームごとに関節を細かくいじる代わりに、チェーン全体をまとめてポーズできるため、ポージングのミスも減らせます。毎フレーム足首・膝・腰を手作業で調整する代わりに、アニメーターは逆運動学で足をその場にロックし、ソフトウェアが残りを処理します。
では、仕組みをより掴むためにBlenderで簡単なモデルのリグを試してみましょう。
Blenderでの順運動学(FK)
FKはマリオネット人形を動かすのに似ています。肩から始めて指先へ向かうように、1本ずつ糸(=各回転)を制御します。各回転が、その前の回転に積み重なる形になります。
- キューブを追加し(
Add → Mesh → Cube)、それを直方体にスケールします。ベベル用にスケールを1に正規化します(Object → Apply → Scale)。

- 編集モードでエッジにベベルをかけて、各面を丸めます。
Edgeモードを使い、必要な4つのエッジを選択します。表示されるBevelウィンドウで、セグメント数を増やして丸いエッジを作ります。

- 機械的な腕を作るために、さらに2つのセグメントを作ります。
Objectモードで直方体を選択し、複製します。もう一度繰り返して、3つのセグメントにします。

- X軸に沿ってセグメントを配置し、チェーンを作ります。明確な関節位置がある状態で、端から端までつながるように位置決めしてみてください。

- 親階層(FKチェーン)をセットアップします。ベースから先端まで、チェーンを組み立てます。まず子オブジェクトを選択し、次にそれを意図した親(ベースに近い方のもの)に配置します。各セグメントが前のセグメントを親に持つように、これを繰り返します。

- 各オブジェクトの原点を関節に置きます。正しい回転のためには、原点は各セグメントの関節の端にある必要があります。カーソルツールを使って原点を配置します。次に
Objectモードで、Object → Set Origin → Origin to 3D Cursorを実行します。これをすべてのセグメントに対して行います。

- 前後運動学(forward kinematics)の挙動を観察するために、各セグメントに小さなデフォルト回転を与えます。ベース(親)オブジェクトを回転させると、親階層チェーンのおかげで子が追従します。

あとは、腕を好きなように回転させ、位置をキーフレーム化し、 最終結果をレンダーしてアニメーションにするだけです!
見ての通り、FKは手を振る、バットをスイングする、踊るといったような、滑らかで弧を描く動きにとても向いています。
より高度なリグ(IK、コントロール、制約)では、Blenderのアニメーターはオブジェクトの親子付けではなく、Armature(アーマチュア)を使います。
Blenderでの逆運動学(IK)
IKは人形の手を動かすようなもので、腕のほうが、肘と肩がどう曲がるべきかを計算して追従します。
- FKアームのメッシュを複製します。3セグメントのFKアームを選び、比較用にFK版を残すため、複製して横にずらします。

- セグメントを1つのオブジェクトに統合します。新しく複製した腕を選択し、各セグメントを1つのメッシュに結合します(
Select all → Object → Join)。これで、腕全体を表す連続したオブジェクトが1つになります。

- アーマチュアのチェーンを作成します。
Add → ArmatureでArmatureを追加します。Armatureの編集モードで、セグメントに合わせてボーンを押し出します。最初のボーンの先端を選んで押し出し、肘の位置に置きます。「手」に相当する部分も同様に、もう一度押し出します。

- IKコントローラーを追加します。ポーズモードに切り替えて、handボーンを選択します。
Shift+I → Add Inverse Kinematics → Without Targetsを押します。するとIKチェーンが腕を駆動するようになります。Bone ConstraintsタブでChain Length = 3に設定します。


- メッシュをアーマチュアにバインドします(スキニング)。
Objectモードでまずメッシュを選択し、その後Ctrl選択でアーマチュアを選択します。オブジェクトを右クリックしてParent → Armature Deform → With Automatic Weightsを選びます。Blenderは各ボーンごとに頂点グループを割り当て、腕がリグに追従するようになります。

- IKでアニメーションします。ポーズモードに移動し、IKコントローラーボーンをつかんで動かします:すると腕全体が自然に追従します!
親チェーン上のボーンを動かすことで、FKも引き続き使えます。
なお、メッシュはデフォルトではこの方法で変形します。望む動きに合わせるには、Bone Constraints(ボーン制約)を追加する必要があります。たとえば、機械的な腕のように腕が単一の軸に沿って動くことだけを許可する、といった具合です。
FK/IKスイッチ
Blenderのほとんどのリグは、ハイブリッドシステムを使います。流れるような弧の動きにはFK、固定された接触にはIKです。一般的には、アニメーターは まずFKで大まかなジェスチャーによるポーズを作り、その後接触の瞬間や正確な位置合わせのためにIKへ切り替えるという流れで進めます。
さらに高度なリグでは、Blenderのアニメーターは、FKとIKを切り替えるために(通常は)カスタムプロパティ(Nパネルのスライダーやトグル、またはコントロール用ボーン上のスイッチ)を作成します。
この記事の範囲外ですが、念頭に置いておくことが重要です。
結論
運動学はリギングとスキニングの土台であり、硬い3Dマネキンと「生きている」と感じさせるキャラクターを分けるものです。
順運動学は滑らかな弧と自然な流れを作り、逆運動学は説得力のある接触によってキャラクターをワールドに固定します。
ただ、読んで終わりにしないでください。Blenderを開いてモデルを掴み、まずは触ってみましょう。きちんと作られたリグは、ボーンをつなぐだけではありません。それは、キャラクターがどのように動き、どのようにポーズし、3Dの世界とどのように相互作用するかを定義します。


