■はじめに
レンダリング時間やトライ&エラーの時間ロスは、3DCGの映像制作現場において非常に大きな悩みの種です。 最終的にアウトプットされる絵が最も重要であるにもかかわらず、それをなかなか見ることができないまま作業を進めるのはよくあること。そして長時間のレンダリングを経てやっと出てきた結果はエラーだらけというのも日常的に起こっています。スケジュールは実際のところ、作業時間とは別に“待ち時間”を考慮して複合的に組まれます。このトライ&エラーによる時間ロスを抑えるべく日々知恵を絞っています。
はじめまして、株式会社ジェットスタジオの赤崎と申します。 ジェットスタジオは2001年より発足し現在まで、フルCGの映像を中心にアニメ、ゲーム、パチンコなど様々なコンテンツの3DCG制作を行ってきた会社です。近年、発達の著しいリアルタイムエンジンは私たちのような映像屋の目線からも非常に興味深く、前述の悩みの種から解放されるだけでなく、表現の幅をも広げる可能性を感じています。
その“CG映像屋”の目線から、UE4の活用方法を解釈し紹介していこうと思います。特に私の得意としているキャラクターの分野を中心にお話し致します。これからUE4を触ってみようという方でも分かるよう、個人レベルでも入っていけるような内容を心がけお話ししていきたいと思っております。
■パフォーマンス < クオリティ
リアルタイム描画を行わず映像として出力するのであればパフォーマンスに対する優先度はさほど高くありません。もちろんストレスなくアニメーション再生できることがベストですし、描画負荷が高くなりすぎるとそもそもUE4を採用しているメリットが薄れてしまい本末転倒ですが、クオリティを妥協・制限することでパフォーマンスを担保しようとしているならば、その選択は得策ではありません。
パフォーマンスやクオリティと一口に言っても様々な要因がありますが、ポリゴン数という点でお話しすると実際のところキャラクター1体のポリゴン数はどの程度で作成するのが良いのでしょうか。
ゲームはリアルタイム描画のコンテンツでありパフォーマンスは大前提のものです。最近ではモバイルゲームで数千~1万、コンソール機のゲームでは数万~10万程度で制作されているケースが多く見られます。もちろんこれらには明確な規定があるわけではなく、実機のスペック、マテリアルやライティングの設計、背景の密度や同時に登場するキャラクター数など、その作品においてのさまざまな仕様を確認し決定されているかと思います。スマホやPCが対象であれば実機スペックも様々です。 これに対し、映像制作の場合では自分の作業PCでさえ描画できれば問題ありません。多少FPSが落ちていても動画ファイルに出力してしまえば同じです。 これらのことから映像制作においては、ゲーム制作の知見をお借りして“目安となる指標は意識しつつ特に制限は設けない”という方針が良いのではないかと思います。
■キャラクターモデリングフロー
あくまで私なりの一例となりますが、具体的なキャラクターモデリングフローは以下の図(fig02)のとおりです。こちらをもとにピックアップして解説していきます。
以下の画像(fig03)はUE4での映像使用を目的として制作中のモデルです。部分的なクローズアップのショットでない限りポリゴンの角が目立たない程度まで、十分に細分化しています。プリレンダーとは違いサブディビジョンを前提としていないため三角ポリゴンも気にせず取り入れています(※1)が、それでも四角ベースで制作している理由は、単純に編集がしやすい点とサブディビジョンの取り回しの良さを考慮しているためです。上記フロー図のE,Gにあたります。ただし、あくまでこれらは制作途中での付加的な理由でしかありません。最終的には結局すべて三角化されること(フロー図:C)、状況によりテッセレーションにも対応する可能性を考え(フロー図:D)あまり無理のあるトポロジ構成はしないよう心がけています。未完成のパーツも多いですが、顔だけで1万ポリゴン、全身では約15~20万ポリゴン(※2)を予定しています。
Fortniteトレーラーのキャラクターは全身約18万ポリゴンで作成されているようです。下記リンクにあるホワイトペーパー(PDF)は非常に参考になるので一度目を通しておくと良いでしょう。
参考:『Fortnite トレーラー制作のリアルタイム パイプライン情報』
※1.プリレンダー系では粗いモデルでシーンを制作しレンダリング時にサブディビジョン処理を行うことが通常です。また、サブディビジョンは四角形ポリゴンを中心に構成することできれいな形状に処理されます。
参考:『[CEDEC 2013]なぜPixarのCG制作手法はゲームグラフィックスと違うのか? 「OpenSubdiv」セッションレポート(前編) - 4Gamer.net』
※2.ポリゴン数はすべて三角形換算で表します。
輪郭が角張らないほどの細かいポリゴンをすべて手作業で組み上げるのは非常に大変な作業です。ポリゴンモデリングから始めている場合は「サブディビジョン」などの細分化系機能を、スカルプトモデルから制作している場合は「オートリトポ」系の機能を活用するなど、効率的に滑らかなメッシュを作成します。
■テッセレーションとサブディビジョン
十分なポリゴン数で制作していた場合でも、万が一想定以上に寄りのカットが出てきた際の対処法も考慮しておきたいところです。方法としては以下の2つが挙げられます。
・UE4のマテリアルで「テッセレーション」処理を行う。(フロー図:D)
・DCCツールで「サブディビジョン」を行い“アップ用モデル”とする。(フロー図:G)
細分化するという点ではどちらも同じですが、結果が異なる点に注意します。角をそぎ落としていくイメージのサブディビジョンに対し、テッセレーションでは膨らませていくイメージになります。また、それぞれの特性を理解し分割前のポリゴンを構築する必要もあります。サブディビジョンは四角ベースで分割しますが、テッセレーションは三角ベースですし、角の立ったエッジの周辺は特にポリゴン配置に注意が必要です。下記参考リンクで非常に分かりやすく解説されています。
参考:『[UE4] Catmull ClarkとPN Triangles』
テッセレーションはUE4のマテリアル設定で簡単に適用でき非常に簡単ですが、そのままと比較すると当然処理負荷は上がります。DCCツールで事前にサブディビジョンを行う場合UE4上での追加の処理は増えませんが、ポリゴン数が増大することでの負荷と、何よりスキニングからすべてやり直しになるというデメリットがあります。
冒頭にも書いた通り、リアルタイムCGと言えど出力してしまえば結局はただの動画ファイルです。こんなことを言うと怒られてしまいそうですが、映像用途であればあまりシビアな規定やデータ構成は気にせず「まずは気軽にやってみる」で良いと思っています。私のようなプリレンダーの映像ばかり作ってきた人間からすると、リアルタイム制作のノウハウには学ばされることがたくさんあります。逆も然り、ゲーム界隈からすると映像屋のノウハウに驚くことも多いのではないでしょうか。 それぞれの技術を理解し、より良い制作を行っていきたいものです。
(関連記事)