スケルタル
アニメーション(英: skeletal animation)は、コンピュータ
アニメーションにおけるキャラクターの動きを表現するための重要な技術です。日本ではボーン
アニメーションやスキンメッシュ
アニメーションとも呼ばれます。この技術は、キャラクターの内部に
骨格(スケルトン)を定義し、その
骨格を動かすことでキャラクター全体を
アニメーションさせる仕組みです。
スケルタル
アニメーションは、以下のステップで構成されます。
1.
リギング:
- キャラクターの内部に
骨格(スケルトン)を構築します。この
骨格は、関節で連結された一連の骨で構成され、親子関係を持つ
階層構造を形成します。
-
骨格の各部分は、平行移動、拡大縮小、回転といった3次元変換に対応しており、親
骨格の動きは子
骨格に影響を与えます。例えば、大腿骨を動かすと、それに接続された下肢も連動します。
2.
スキニング:
- キャラクターの表面を構成するポリゴンメッシュの
頂点と
骨格の各部分を関連付けます。この関連付けをスキニングと呼びます。
- 各
頂点は複数の骨に関連付けることができ、それぞれの骨への関連の強さは
頂点ウェイト(ブレンドの重み)で定義されます。
- ある
頂点が複数の骨の影響を受ける場合、その位置は各骨の動きをウェイトに従って合成した結果として決定されます。
3.
アニメーション:
-
骨格を動かすことでキャラクターの
アニメーションを作成します。
アニメーションには順運動学と逆運動学という2つの方法が用いられます。
- 順運動学では、
骨格の
階層構造に基づいて各骨の動きを順に決定し、それによってキャラクターのポーズを制御します。
- 逆運動学では、目標とする手の位置などを指定すると、その位置に到達するための
骨格の動きが自動的に計算されます。この技術は、特に複雑な動きを表現する際に役立ちます。
技術詳細
スケルタル
アニメーションの肝となるのは、
骨格と
頂点の関連付けと、その動きの計算です。この処理は「行列パレットスキニング」と呼ばれるアルゴリズムを用いて行われます。各骨の変換行列をパレットとみなし、各
頂点はウェイトに応じてパレットを参照して合成します。
近年のグラフィックスエンジンでは、GPUのプログラマブルシェーダーを利用してスキニング処理を並列化することで、リアルタイムでの高速な
アニメーションが実現されています。
利点と欠点
利点:
アニメーターは、骨格の動きを制御するだけで、複雑なキャラクターの動きを表現できます。
アニメーションは、ポリゴンメッシュの
頂点ではなく
骨格の動きによって定義できるため、効率的に作成できます。
骨格ごとに動きを独立させることができるため、柔軟なアニメーション制作が可能です。
一度作成した
アニメーションを、別のモデルに適用できます。
欠点:
筋肉の動きや皮膚のたるみなど、生物的な複雑な動きの表現には限界があります。よりリアルな表現のためには、筋肉の制御機構などを追加する必要があります。
より本物らしい表現を実現するには、解剖学的な知識や物理的なシミュレーションが必要となることがあります。
自動リギング
近年では、順運動学や逆運動学を用いたキャラクター
アニメーションの自動リギング手法が開発されています。機械学習を活用した手法も登場しており、より簡単にリギングができるようになっています。
応用
スケルタル
アニメーションは、ゲーム、映画、
アニメーションなど幅広い分野で利用されています。
キャラクターアニメーション: 人間や動物などのキャラクターの動きを表現します。
機械
アニメーション: 自動車やロボットなどの機械の動きを表現します。
モーションキャプチャー: 人の動きをキャプチャーし、キャラクターに適用することで、よりリアルな動きを再現します。
仮想解剖学シミュレーション:
軍事訓練や救急救命シミュレーションなどに活用されます。
関連技術
コンピュータアニメーション: コンピュータグラフィックスを用いてアニメーションを作成する技術全般。
3次元コンピュータグラフィックス: 3次元空間における物体の表現や処理に関する技術。
順運動学アニメーション: 骨格の階層構造に基づき、各関節の回転角度を指定してアニメーションさせる手法。
逆運動学: 目標位置を指定し、そこへ到達するために必要な関節の回転角度を計算する手法。
モーフィング: ある形状から別の形状へ徐々に変化させる技術。
インタラクティブスケルトンドリブンシミュレーション: ユーザーの操作に応じて、
骨格構造に基づいてシミュレーションを行う技術。
スケルタル
アニメーションは、3DCG
アニメーションの中核をなす技術であり、今後もその進化が期待されます。