原文と比べた結果、この記事には多数の(または内容の大部分に影響ある)誤訳があることが判明しています。情報の利用には注意してください。(2020年6月) |
スケルタルアニメーション (英: skeletal animation) は、日本ではしばしばボーンアニメーションまたはスキンメッシュアニメーションとも呼ばれ、キャラクターのコンピュータアニメーションに用いられる技術である。骨格(ボーン)を階層的に連結したモデルであるスケルトンを艤装し、それを所定の姿勢(キーフレーム)へとアニメーションさせ、それに従いキャラクターの表面構成点群の位置を追従させ描画する事でキャラクターのアニメーションを実現する[1]。この技術は人間をはじめ多くの一般的な生物的なモデルへ適用でき、一度アニメーションを作成すれば同様のアニメーションを任意のオブジェクトへ適用し、その形状を変化させる事が可能であり、スプーンや建築物のモデルもスケルトンさえ定義すればアニメーションを即座に適用可能である。
この技術を使用してアニメーションを作成するユーザーに対してはシンプルなユーザーインターフェースを提供可能だが、その内部実装にはやや複雑なアルゴリズムと膨大な幾何制御が必要となる。特に、逆運動学(インバースキネマティクス)は必要不可欠な重要な要素技術の1つである。原理的には骨格を実際の解剖学的構造や物理的な過程を模倣しながら動かし、キャラクターを構成するメッシュデータを骨格に追従する様に変形する事でアニメーションを実現する[2]。
この技術は一連の「骨格」を構築することにより利用される。この構築作業は「リギング」(rigging) と呼ばれることがある。骨格は3次元の変換(平行移動、拡大縮小、回転など)に対応させ、必要に応じて親子関係を持たせる。よって骨格は階層構造を持つ。子ノードの変換は親ノード及び子ノード自身の変換を合わせたものとする。つまり大腿骨を動かせば、それに接続された下肢も連動する。こうしてキャラクターはアニメーションし、また骨格も時間経過と共に変化させる事でスケルタルアニメーションは実現される。キャラクターの姿勢制御にはアニメーター向けに幾つかの制御機構を用意する。このアニメーションを実現するための艤装には順運動学と逆運動学の両方を利用する。スケルタルアニメーションでは順運動学により一意の姿勢状態を決定する。
スケルトンを構成するそれぞれの骨にはキャラクターを可視化する為の要素を関連付けておく。この関連付けを「スキニング」と言う。一般的にポリゴンメッシュのキャラクターへ適用する場合は、骨格に対し頂点群を関連付ける。例えば人間のモデルであれば'大腿'にあたる骨とその部位に相当するモデルのポリゴンの頂点を関連付ける。キャラクターの肌の一部は複数の骨へと関連付けることができ、それぞれの骨への関連性の強さを頂点ウェイト、ないしはブレンドの重み付けと言う。2つの骨に関連付けられた頂点はそれら両方から重み付けに従った影響を受ける。ゲームなど、特に速度性能が要求されるリアルタイム3DCG向けの近代的なグラフィックスエンジンの大半は、プログラマブルシェーダーを利用することでスキニング処理をGPU上で高速に並列実行させることも可能である。
ポリゴンメッシュの場合には、すべての頂点とすべての骨について重み付けを設け関連付ける事が可能である。最終的な頂点の位置はそれぞれの頂点と骨との重み付けを適用して決定する。このアルゴリズムは行列パレットスキニングと呼ばれる。骨の変換行列をパレットと見做し、各頂点からウェイトに応じてこのパレットを参照し合成する為である。
アニメーションを(ポリゴンメッシュにおける)頂点によってではなく、骨格の動きによって簡単に定義できる
近年[いつ?]では、順運動学や逆運動学を用いたキャラクターアニメーションの自動または半自動リギング手法が開発されている。なかには機械学習を活用するものもある。
以下、参考リンク:
スケルタルアニメーションはキャラクターや機械などの物体におよそ100コマを超えるような長時間の動きを付ける際に標準的に使用される。一般にゲームアーティストや映画会社、また機械的な物体などあらゆる剛体要素の結合によって構成されるオブジェクトの表現が必要な場面で用いられる。
パフォーマンスキャプチャー(もしくはモーションキャプチャー)によりスケルタルアニメーションの構築は高速化し、現実性を向上させる事が容易となる。
パフォーマンスキャプチャーが危険過ぎる場合にはコンピューターシミュレーションにより自動的に計算された物理挙動をキーフレーム等を用いて実現する。仮想的に手足の重さ、筋肉の応答、骨格の強度や関節の制限などの解剖学的な特徴付けを行い、仮想的なスタントを通じて実現する。仮想スタントはスタント・パーソンの仕事を無くしてしまう事がしばしば議論となる。また、別の応用として軍事目的における仮想解剖学的シミュレーション[3]や救急時のシミュレーションにも活用される。仮想の兵士や救急救命活動、病人、旅客、歩行者などの訓練や研究、試験に活用できる。仮想解剖学技術のみならず人工知能を組み合わせる事でこの応用はさらに広げる事が可能である。