アニメーターは、常に最高レベルのディテールで作業しているとは限りません。
YouTubeの動画を見るのに似ています。状況によっては、読み込み速度を優先し、最小限の視聴可能品質まで解像度を下げることもあります。逆に、フルのシネマ体験が欲しいときは、4K解像度を選びます。
同様に、アニメーターは視覚的な忠実度とパフォーマンス効率のバランスを取るために、ディテールのレベル(LOD)を調整します。シーンのタイミングを詰める段階では、高ディテールのモデルは必須ではないこともあります。しかしポストプロダクションでは、最終レンダリングが品質基準を満たすようにすることが重要です。
この記事では、LODの重要性、品質を損なわずに制作を最適化する方法、バンプマッピング、リトポロジー、テクスチャベイク、ディスプレイスメントマップベイクのような主要テクニックを紹介します。
LODとは?
アニメーションにおいて、ディテールのレベル(LOD)は、モデルやシーンに適用される複雑さの段階を定義します。特に、視聴者やカメラが物体を異なる距離から見たときに重要になります。
物体がカメラから遠い場合、幾何学的に高い詳細度で、すべての細かなディテールをレンダリングする必要はありません。そのため、ポリゴン数が少ない低LODモデルが使用されます。例えば、手前に見える木は葉や枝が細かく作られているかもしれませんが、遠くの木は形状を簡略化し、処理能力を節約するためにテクスチャで補うだけのこともあります。
なぜディテールのレベルが重要なのか
LODにより、アニメーターや レンダリングアーティストは計算リソースを最適化できます。遠くにあるオブジェクトは、視覚品質の目立った低下なしに、より少ないディテールでレンダリングでき、プロセッサへの負荷を減らせます。アニメーション映画が1時間長だとすると、30フレーム/秒で108,000フレームをレンダリングする必要があるため、こうした処理最適化はすぐに積み重なって効いてきます。
また、異なるLODは、必要な量だけのポリゴンやテクスチャを処理することも意味し、ストレージメモリの節約にもつながります。
これは特にリアルタイムレンダリングで重要です。アニメーターのPCを重くしすぎずに高いフレームレートを維持する必要があるからです。しかし制作全体のパイプラインとしてレンダリングコストを抑えるためにも重要です。
1. バンプマッピング
バンプマッピングは、コンピュータグラフィックスの手法で、追加のポリゴンによってモデルの幾何学的な複雑さを増やすことなく、オブジェクト表面に段差やしわを擬似的に表現して、緻密なテクスチャを作り出す錯覚を生み出します。
この手法は、実際のジオメトリを変更するのではなく、レンダリング時のライティング計算を操作することで、表面テクスチャの見え方を変えることで実現します。使用するのは「バンプマップ」と呼ばれるテクスチャで、一般的にはグレースケール画像です。そこでは、色の濃淡が表面の凹凸(摂動)の高さを表します。
従来のやり方では、レンガ壁の各レンガをそれぞれ固有の表面ディテール込みでモデリングしようとすると、緻密なメッシュが必要になり、バンプや溝を追加ポリゴンでそれぞれ捉えることになります。これは計算コストが高くなりがちです。
その代わり、バンプマップを作成して、明るい領域をレンガテクスチャの盛り上がった部分として示し、暗い領域を目地(モルタル)の線のようなより深い部分として対応させることができます。ポリゴン数が最小限の単純な平面に適用すると、レンダリングエンジンはシェーディング計算の際にこのバンプマップを用い、表面法線を摂動させます。こうして変更された法線の上での光と影の相互作用により、見ている側には、その平面が実際のレンガ壁のような複雑なジオメトリを持っているかのような錯覚が生まれます。
2. リトポロジー
リトポロジーとは、3Dモデリングにおいて、メッシュ表面のトポロジー(構造)を再定義して、より良いジオメトリの流れを実現しつつ、元の形状やディテールを保ちながらポリゴン数を減らすためのプロセスです。
ZBrushのようなスカルプト用ソフトで作った非常に高ディテールなキャラクターモデルから始めることを想像してください。このモデルには、あらゆる細部を捉えるために何百万ものポリゴンが含まれているかもしれません。リトポロジーのプロセスは、例えば次のようになります:
- 簡略化 - ソフトウェアは、リトポロジー技術(ZBrushのZRemesherのような自動、またはより細かい編集のための手動)を使って、高ポリモデルの上に新しいメッシュを作成し、キャラクターの本質的な形を捉えながら、扱いやすいポリゴン構造を定義します。
- フローの活用 - 眼、口、関節といった重要な解剖学的特徴の周囲のエッジループを考慮し、アニメーション変形(曲げる・伸ばす)を助けます。
- ポリゴン削減 - 新しいトポロジーは、大幅に少ないポリゴン数にする必要があります。
リトポロジーは、クリーンで効率的なメッシュ構造を作るために重要です。さらに、ディテールのレベルに対応する複数バージョンのキャラクターモデルを作ることが特に重要になります:
- LOD0 - 最も詳細なバージョンで、キャラクターがカメラに近いときに使用します。
- LOD1 - 中距離のショット用に、やや詳細度を下げたバージョンです。
- LOD2以上 - 遠距離のショット向けに、さらに簡略化したバージョンです。
- 頂点ウェイト付け - 低ディテールのバージョンは、重要な形状やシルエットを維持しつつ、最小限のジオメトリでレンダリング性能を最適化します。
3. テクスチャベイク
テクスチャベイクは、さまざまな表面の情報やライティング情報をテクスチャマップへ事前計算して転送します。ベイクされたテクスチャには、影、反射、グローバルイルミネーション、アンビエントオクルージョン、あるいはリアルタイムで計算するにはコストが高い複雑なマテリアル特性などが含まれます。ベイクが済んだら、このデータをより単純な3Dモデルのバージョンに適用し、品質を損なわずにパフォーマンスを最適化します。
テクスチャをベイクすることで、アーティストは異なるディテールのレベル間で視覚的な一貫性を確保できます。影の配置や表面のディテールのような特徴は、ジオメトリの複雑さを減らしても保持できます。低LODほどレンダリングに必要な処理能力が少なくなるため、よりシンプルなシェーディング手法を使いやすくなります。
リアルタイムアプリケーションで大規模な都市シーンの一部になる建物の複雑で緻密な3Dモデルは、高ディテールなジオメトリと、バンプマップや反射面を含む複雑なマテリアルを備えていることが多いです。これはハイエンドレンダリングでは美しく見えますが、制作中のリアルタイムレンダリングではリソース要求が大きすぎます。
- 高解像度モデルの準備 - まず建物モデルの高解像度版から始め、ライティングやマテリアルの効果を細部まで丁寧に適用します。
- ベイク処理 - 3D DCCソフトを使って、モデルのライティング情報をテクスチャマップへベイクします。影、ハイライト、そしてアンビエントオクルージョンのような効果を2Dテクスチャに書き込みます。通常は、ディフューズ、ノーマル、スペキュラーなど複数のマップをベイクします。
- LODモデルを作成 - 頂点数を減らし、ジオメトリを簡略化した、建物モデルの複数の低解像度バージョンを生成します。
- ベイク済みテクスチャを適用 - アーティストは、これらのLODモデルにベイク済みテクスチャを適用します。頂点数が減っていても、ベイク済みテクスチャが緻密なディテールやライティング効果を伝えるため、視覚品質を高く保てます。
- 実装 - リアルタイム環境では、LODシステムがカメラ距離、またはスクリーンスペースのサイズに基づいて、どのモデルをレンダリングするかを選択します。事前にベイクされたテクスチャによって、最もシンプルなモデルでも高解像度アセットの視覚的な複雑さの多くを維持できます。
4. ディスプレイスメントマップベイク
ディスプレイスメントマップベイクは、高解像度の3Dモデルにある詳細を、低解像度版へ転送します。これは、ディスプレイスメントマップというテクスチャを生成し、低解像度モデルの表面から高解像度モデルの表面までの高さの差を保存することで実現します。このテクスチャは、その後レンダリング中に使用され、高解像度モデルの見え方を再現できます。毎回フルの複雑さを読み込む必要がないため、負荷を抑えられます。
- 高解像度モデルと低解像度モデルを作成 - まず、バンプ、クレース、その他の表面ディテールをすべて備えた高解像度の3Dモデルから始めます。次に、ポリゴン数を減らした簡略化版を作成します。
- ディスプレイスメントマップをベイク - ZBrush、Blender、Mayaのようなソフトウェアを使って、2つのモデルの表面の差分を計算します。その結果得られるのがディスプレイスメントマップで、グレースケールのテクスチャです。色の濃淡が、低解像度モデルの表面をどれくらい動かして高解像度モデルのディテールに合わせるべきかを示します。
- マップを低解像度モデルに適用 - マップがベイクできたら、低解像度モデルへ適用します。レンダリングエンジンは、リアルタイムレンダリングやアニメーション再生中に、このマップ情報を使って高精細な表面をシミュレートします。
- LOD実装 - ディスプレイスメントマップを持つ低解像度モデルをLODシステムに組み込みます。カメラ距離に応じて、異なるディテールのレベルが切り替わります。モデルが十分に遠い場合でも、ディスプレイスメントマップのおかげで低解像度モデルは高解像度のように見え、処理能力を節約できます。
ディスプレイスメントマップは、シーンの異なるLODバージョン同士で高解像度の詳細を共有できるようにします。計算上のオーバーヘッドを抑えられるため、メモリを節約し、アセット管理もシンプルになります。
結論
ディテールのレベルは、カメラからの距離や制作環境といったパラメータに基づいて3Dモデルの複雑さを調整することで、アニメーション制作パイプラインの効率を高めるために重要な概念です。
バンプマッピング、リトポロジー、テクスチャベイク、ディスプレイスメントマップベイクのような複数の手法により、アニメーターはモデルのLODに適応できますが、ほかにも多くあります。本記事は、それらがどのように機能するのかほんの一部を紹介したにすぎません。DCCツールでこれらの手法を実際に試し、3Dモデルのポリゴン数や見た目の品質にどのような影響が出るのか確かめてみてください!


