スケルタルアニメーションは、ビデオゲーム、映画、その他のデジタルメディアで使用される3Dグラフィックスの基本テクニックです。モデルがどのように変形するかを制御するボーン(骨)のセット、つまり「スケルトン」を動かして、3Dモデルをアニメーション化します。これらのボーンを調整することで、歩いたり、走ったり、あるいは踊ったり、戦ったりといった滑らかで複雑な動きを作り出すことができます。
スケルタルアニメーションでは、3Dモデルの各ポイント(頂点)は、1つ以上のボーンにリンクされています。これにより、ボーンが回転、移動、サイズ変更されたときに、スムーズでリアルな動きが可能になります。この方法は、人間や動物など、関節の動きが必要なもののアニメーションに特に適しています。
スケルタルアニメーションの起源は、キャラクターを一コマずつ描くという従来のアニメーションにあります。コンピュータグラフィックスが進化するにつれ、このプロセスは自動化され、簡素化されるようになり、スケルタルアニメーションが開発されました。1980年代と1990年代の初期のバージョンは、今日の技術の発展に貢献し、Autodesk Mayaや3D Studio Max(現在の3ds Max)といったソフトウェアは、さらに高度なツールを搭載するようになりました。現在では、Blender、Unity、Unreal Engine などのソフトウェアがこの技術を強力にサポートしているため、スケルタル アニメーションは、大規模な映画からインディーズ ゲームまで、ほとんどのアニメーション プロジェクトで重要な役割を担っています。
スケルタルアニメーションの核となるのは、スキン、ボーン、キーフレームという3つの重要な要素です。
スケルタルアニメーションはスキニングと呼ばれるプロセスを使用し、メッシュのポイント(頂点)が一つ以上のボーンによってコントロールされます。各頂点にはウェイト値があり、各ボーンがどの程度その位置に影響するかを決定します。ボーンの動きは通常、キーフレーム、インバースキネマティクス(IK)、または物理ベースのシミュレーションによって制御されます。
補間とは、キーフレーム間の中間フレームを計算して、スムーズなトランジションを作ることです。補間にはリニア、キュービック、スプラインなどの種類があり、それぞれアニメーションの滑らかさやコントロールの度合いが異なります。
モーションブレンドは、異なるアニメーションを組み合わせて複雑なアクションを作成します。たとえば、歩くアニメーションと手を振るアニメーションをブレンドすることで、キャラクターは歩きながら同時に手を振ることができます。このテクニックはビデオゲームでよく使われ、キャラクターに、よりダイナミックで機敏な動きをさせることができます。
次の動画では、ジョーイ・カルリーノが、Blenderでスケルタル・アニメーション用のモデルをリギングする方法について説明していますが、ここで説明されている原理は、他のソフトウェアにも応用することができます。
スケルタルアニメーションにはおすすめのソフトウェア・ツールがいくつかあり、それぞれがユニークな機能と特徴を備えています。最も人気のあるオプションには、以下のようなものがあります:
Unity や Unreal などのゲーム エンジンでは、スケルタル アニメーションは通常、アニメーション コントローラまたは設計図を使用して設定します。これらのシステムにより、プレイヤーのアクションやゲーム イベントに基づいて、さまざまなアニメーションをブレンドしながら、詳細なアニメーション設定を行うことができます。
昨年のUnreal Festのプレゼンテーションでは、アンリアル エンジンのリギング プロセスをより簡単にする新機能が説明され、リギングに慣れていない人でも簡単に使用できるようになりました:
スケルタルアニメーションは柔軟で効率的なため、ビデオゲームや映画で広く使われています。ビデオゲームでは、キャラクターをインタラクティブに動かし、プレイヤーの入力にリアルタイムで反応させることができます。映画では、『ジュラシック・パーク』の恐竜や『アバター』のナヴィのような複雑な生き物やキャラクターのアニメーションに欠かせません。
映画におけるスケルタルアニメーションの有名な例は、『ロード・オブ・ザ・リング』のゴラムです。ゴラムの動きはモーションキャプチャーで記録され、スケルタルアニメーションによって3Dモデルに適用されています。この方法によって、キャラクターのリアルな動きと感情表現が可能になったのです。
ビデオゲームでは、『トゥームレイダー』のララ・クロフトや『アサシン クリード』の主人公のようなキャラクターが、スケルタルアニメーションの性能を証明しています。これらのキャラクターのリアルな動きやリアクションが、ゲームプレイをより没入感のある楽しいものにしているのです。
スケルタルアニメーションは3Dモデルだけでなく、2Dアニメーションでも使われます。2D のスケルタルアニメーションでは、2D のスプライトにボーンを追加することで、キャラクターをフレームごとに描き直さなくても動かせるようになります。この方法は、『Cuphead』や『Hollow Knight』のようなゲームで使用され、2Dキャラクターが3Dアニメーションで見られるような滑らかな動きをします。
スケルタルアニメーションでは、ボーンの位置、回転、スケールなどの情報はキーフレームに保存されます。このデータは、FBXやCOLLADAなどの外部ファイルから読み込まれることが多く、3Dモデルとアニメーションデータの両方が含まれています。ランタイム中、このデータはキャラクタのボーンの動きのために使用されます。
ボーン の変換マトリクスは、3D空間におけるボーンの位置と方向を把握するために重要です。これらのマトリクスは、平行移動、回転、スケールのデータを組み合わせて作成され、メッシュの頂点に適用してボーンとの動きを制御します。
GPUはスケルタルアニメーション、特にビデオゲームのようなリアルタイムアプリケーションにおいて非常に重要です。GPUはウェイトや ボーンの指標といった頂点データを処理し、アニメーション化されたキャラクタのスムーズでリアル タイムなレンダリングを可能にします。頂点スキニングと呼ばれるこの処理は、複雑なシーンで高いパフォーマンスを維持するための鍵となります。
スケルタルアニメーションは強力ですが、うまく管理しないとその効果を減少させかねない課題があります。ここでは、アニメーターや開発者が実際に陥りがちな問題を紹介します:
スケルタルアニメーションは強力ですが、うまく管理しないとその効果を減少させかねない課題があります。ここでは、アニメーターや開発者が実際に陥りがちな問題を紹介します:
ウェイトペインティングは、各ボーンがメッシュの各頂点にどれだけ影響するかを設定します。ウェイトペインティングのやり方が悪いと、アニメーション中にメッシュが不格好に曲がったり崩れたりするような、不自然な変形を引き起こす可能性があります。この問題は、肘や膝のような関節の周りでよく起こります。これを解決するには、ウェイトを慎重にテストして調整し、スムーズで自然な動きを確かめる必要があります。
ボーンが多すぎたり、コントロールが複雑なリグは、管理やアニメーションが難しくなります。これは作業を難しくするだけでなく、エラーやバグを増やすことにもつながります。十分な機能とシンプルさのバランスをとることが重要です。ボーンが多すぎると、特にビデオゲームのようなリアルタイムアプリケーションでは、パフォーマンスが低下することもあります。
ビデオゲームのようなリアルタイムアプリケーションでは、スケルタルアニメーションは効率的に動作する必要があります。多すぎるボーン、複雑なリグ、最適化されていないアニメーションは、フレームレートの低下やロード時間の延長といった問題を引き起こす可能性があります。スムーズに動作させるために、ボーン構造を単純化し、各頂点に影響を与えるボーン数を減らし、詳細レベル(LOD)テクニックを使用する必要があります。
スケルタルアニメーションは、あるプラットフォームではうまく動いても、別のプラットフォームではハードウェアやソフトウェアの違いで問題が発生することがあります。使用する予定のすべてのプラットフォームでアニメーションをテストし、リグやアニメーションの調整や最適化を行い、どのプラットフォームでも一貫したパフォーマンスと見た目を確保することが重要です。
Mckが紹介している次の動画で、Blenderでよくあるリギングの問題とその解決方法をご覧ください。これらの問題の多くはどのソフトウェアでも起こり、解決策は基本的に異なるプログラム間で適用できます:
スケルタルアニメーションを最適化することは、特にビデオゲームのようなリアルタイムアプリケーションでは、パフォーマンスがユーザーの使用感に影響するため、非常に重要です。ここでは、パフォーマンスを向上させるための戦略をいくつか紹介します:
各頂点に影響するボーン数を減らしましょう。多くのアニメーションシステムでは、頂点あたり最大4つのボーンを使用できますが、この数を減らすことで、特にリアルタイムレンダリングでのパフォーマンスが大幅に向上します。BlenderのAutomatic Weightsのようなツールは、ボーンの影響を効果的に分散するのに役立ちます。
LOD(Level of Detail)システムを使用すると、モデルがカメラにどれだけ近いかによって、異なるバージョンのリグとアニメーションが作成されます。近いモデルはより詳細なリグとアニメーションを使用でき、遠いモデルはよりシンプルなバージョンを使用できます。これにより、ビジュアルクオリティを下げることなく、必要な処理を減らすことができます。
キーフレームデータを減らすことで、メモリ使用量を減らし、アニメーションをスムーズに再生できるようになります。余分なキーフレームや不要なキーフレームを削除することで、重要なディテールを失うことなくアニメーションデータを簡素化することができます。
最近のGPUはハードウェアスキニングをサポートしていることが多く、GPUがCPUの代わりに頂点スキニング計算を処理します。これにより、特に多くのアニメーショ ンキャラクターが登場するシーンでは、パフォーマンスが大幅に向上します。
スキニングアルゴリズムは、ボーンが動いたときにメッシュの形状がどのように変化するかを把握するための鍵となります。異なるアルゴリズムには独自の長所と短所があり、プロジェクトの特定のニーズに左右されます。
LBS(Linear Blend Skinning)はスムーススキニングとも呼ばれ、アニメーションで最もよく使われる方法です。これは、重みに基づいて、異なるボーンの影響をブレンドすることで頂点位置を計算します。使いやすく効率的に動作しますが、手首や足首のような関節が不自然にねじれる「キャンディラッパー」効果のような問題が発生することがあります。
DQS (Dual Quaternion Skinning)は、キャンディーラッパー効果のようなLBSに見られる問題を修正するために改良された手法です。回転の処理にデュアルクォータニオンを使用することで、関節周りの曲げがよりスムーズで自然になります。良い結果を生む反面、DQSはLBSよりも処理能力を必要とするため、ビデオゲームのようなリアルタイムアプリケーションではパフォーマンスが低下する可能性があります。
エラスティック スキニングは、特に筋肉や脂肪のような部分の変形をよりリアルにするために、物理ベースのアプローチを取り入れています。これは、柔らかい組織がどのように動くかを模倣するため、映画などの高品質なキャラクターアニメーションでよく使用されています。しかし、多くのコンピューティングパワーを必要とするため、ビデオゲームのようなリアルタイムアプリケーションには実用的ではありません。
技術の進歩に伴い、スケルタルアニメーションの新しい技術や ツールは常に開発されています。これらの今後の進歩は、アニメーターや開発者がキャラクターアニメーションを作成し、作業する方法を変えることになるでしょう。
近年のスケルタルアニメーションの進歩は、機械学習を用いて大量のモーションキャプチャデータを解析することで、より自然な動きを作り出すことに成功しています。これらの新しいシステムは、アニメーションソフトウェアに追加され、複雑なアニメーションの制御を容易にし、リアルな結果を作成する時間を節約します。
また、手続き型アニメーションの技術も向上しており、周囲の状況やユーザーのアクションに応じて、キャラクターがリアルタイムで動きを変えるようになっています。これは特にゲームで有用で、キャラクターがさまざまな状況によりリアルに反応するようになります。
仮想現実と拡張現実は、スケルタルアニメーションの水準を高めています。高品質であるだけでなく、リアルタイムで反応し、インタラクティブなアニメーションが求められているのです。これは、リギングとスキニングが物理的な動きとスムーズに連動しなければならない、ということであり、新たな課題を生み出しているのです。
GPUのリアルタイムレイトレーシングは、アニメーションキャラクターのライティングとシェーディングのやり方を変えつつあります。つまり、スケルタルアニメーションをどのようにレンダリングし、複雑なシーンにどのよう統合させるかについて考えなければならないということです。
新しいサードパーティのプラットフォームは、ほとんど経験のない人でも簡単にリギングできるようになっています。例えば、より簡単なリギングを実現するスタンドアローンツール、Akeytsuに関して、次のAsk NKのビデオをご覧ください:
スケルタルアニメーションについて学びたいなら、チュートリアルやコース、またアクティブに運営されているオンライン・コミュニティなど、多くのリソースが利用可能です。
初心者は、3Dアニメーションとリギングの基礎から始めるといいでしょう。Udemy、Coursera、LinkedIn Learningなどのプラットフォームでは、基本的なリグの設定から複雑なアニメーションの作成まで、スケルタルアニメーションの基礎を網羅したコースが提供されています。
YouTubeチャンネルのBlender GuruやGleb Alexandrovのチュートリアルは、Blenderでのスケルタルアニメーションを実践的に学ぶためのガイドを提供しています。より体系的に学びたい場合は、CGCookieやAnimation Mentorのコースがおすすめです。また、Blender ArtistsやPolycountといったコミュニティフォーラムも、質問をしたり、自分の作品を共有したり、経験豊富なアニメーターからフィードバックをもらうのに最適な場所です。
こちらから、CG CookieのBlenderリギングコースの予告編をご覧ください:
もっと詳しい内容に興味がある方には、リチャード・ウィリアムズの「The Animator's Survival Kit」やティナ・オハイリーの「Rig It Right! 」といった本がおすすめです。これらの本はアニメーション技術やリギングのベストプラクティスについて詳しく説明しています。また、SIGGRAPHの研究論文は、アニメーション技術や方法論の最先端の進展について学ぶのに役立ちます。
どんな複雑な技術にも言えることですが、スケルタルアニメーションについては初心者や経験者の方から多くの質問が寄せられます。ここでは、最も一般的な質問にお答えします。
スケルタルアニメーションは、ビデオゲームや大作映画など、現代メディアの基礎となっています。キャラクターに滑らかでリアルな動きをつける能力があり、アニメーターやゲーム開発者にとって必須のスキルです。技術が進化し続ける中で、スケルタルアニメーションの技術やツールもますます高度になり、創造的な表現の新しい可能性が広がります。初心者であれスキルを磨きたい人であれ、継続的な学習と実験がこの重要な3Dアニメーションの部分をマスターするための鍵です。