>   >  ゲームエンジン×映像制作の基礎知識~Unreal Engine 4篇~
ゲームエンジン×映像制作の基礎知識~Unreal Engine 4篇~

ゲームエンジン×映像制作の基礎知識~Unreal Engine 4篇~

CGプロダクションがゲームエンジンでの映像制作に乗り出す際、リアルタイムレンダリング特有の制作手法が壁となることがままある。本稿では、株式会社ブロスの主要スタッフ陣に、Unreal Engine 4(以下、UE4)での映像制作のおおまかなながれとポイントについて解説してもらった。

※本記事は月刊「CGWORLD + digital video」vol. 231(2017年11月号)からの転載となります

TEXT_株式会社ブロス
EDIT_海老原朱里 / Akari Ebihara(CGWORLD)、山田桃子 / Momoko Yamada

ブロス制作のリアルタイムレンダリング作品

プリレンダリングとの様々なちがいを理解しよう

一般的にCG映像制作ではプリレンダリングが基本です。個人や小規模CGプロダクションで高速かつ大量にレンダリングする設備をもつことは、現在でもハードルが高いことに変わりはありません。一方、この数年GPUを含めたハードウェアの機能向上によりリアルタイムレンダリングの画質は大きく向上し、導入コストも格段に低減しました。

 


  • 写真左から深野暁雄氏、田村耕一郎氏、今泉隼介氏、鈴木 寛氏


  • 株式会社ブロス
    TVアニメ制作協力から海外番組技術サポート、メーカー様向けUE4セミナー企画・施行まで「幅広くお付き合いいただける」スタッフがお待ちしております。
    bros.studio

Unity、UE4、Lumberyardなど、ゲームエンジンの無料化によってかつては高額のライセンスフィーを払わなければ手に入らなかった環境が「誰にでも」「すぐに」手に入るようになり、映像制作でリアルタイムレンダリングを導入する事例が飛躍的に増えています。

とはいえ、リアルタイムのレンダリング手法やワークフローは、従来のオフラインレンダリングとは異なる作法や制限が多く、習熟に壁を感じている、という方も多いのではないでしょうか? 本稿では、UE4を使った映像制作のながれを簡単にご紹介しながら、オフラインレンダリングとのちがいをみていきます。

1 ワークフローのちがい

ゲームエンジンでの映像制作は、当然ながら従来のプリレンダリングとはワークフローが異なります。一概には言えませんが、最終的な連番の書き出しにかかるコストが低い分、シーンの構築にかかる工数や制限が増えることが多いです。また、ゲームエンジンの多くはモデリングやテクスチャ、アニメーション作成の機能を充分には備えていません。各種アセットの作成は外部ツールとの連携に頼る必要があります。リアルタイムレンダリングの最大のメリットは、レンダリング時間の大幅な短縮です。

2 リアルタイムレンダリングの得意・不得意

リアルタイムレンダリングでは、プリレンダリングで当たり前にできるものを苦手とする場合があります。それを把握しておくことはとても重要です。例えば、流体シミュレーションや破壊シミュレーション、Hair、Clothアニメーション、サブサーフェス・スキャタリング、透過の表現など、リッチなエフェクトの多くは限定的、もしくは疑似的なかたちでしか実装されていません。このため、細やかなキャラクター表現(有機物のクローズアップなど)には不向きです。様々なテクニックを駆使すれば、プリレンダリングに遜色ない結果を得ることもできますが、費用対効果に見合わなければ、意味がありません。また、プリレンダリングに比べてデータの下準備などは手続きが多くなってしまいがちです。

制作環境はCPUではなく、GPUのスペックが高いものを推奨します。NVIDIA Quadro などOpenGL用ボードより、DirectX用のNVIDIA GTX 1080を代表とする一般的なゲーム用グラフィックスボードとしての性能が重視されます。

プリレンダリングとリアルタイムレンダリングの機能比較

3 リアルタイムレンダリングで使われる用語

本稿をはじめとして、プリレンダリングでは使わないCG用語がリアルタイムレンダリングでは頻出します。まずはそういった用語を理解するのが最初のステップです。ツールによって細かなちがいはありますが、基本的には共通する単語が多くあります。

リアルタイムレンダリングでよく使われる用語の一例

4 3DCGツールでアセットを準備する際の注意点

プリレンダリングではマシンの能力の限界までポリゴン数やテクスチャサイズを引き上げることができますが、リアルタイムレンダリングではテクスチャの合計サイズの上限がメインメモリではなく、GPUメモリサイズに依存します。上限を超えると、UE4では解像度を自動で下げて表示してしまい、仕上がりのクオリティに影響するため、注意しておきましょう。

ゲームエンジンに3Dモデルをインポートする際、自動的に三角形メッシュに変換されます。mental rayV-Rayのような仮想スムースは使えません。ディスプレイスメントの仕様も異なります。また、インポートの際、3DCGツールでの質感設定はほとんど反映されません。マテリアルの設定はゲームエンジン側で行う必要があります。マテリアル名やテクスチャパスのインポートの可否はゲームエンジンによって若干仕様が異なりますが、共通する注意点としてはUV展開を綺麗に作成し、オーバラップを避けることです。メッシュ同士での親子階層は避け、トランス、ローテーション、スケールの値に気を付けましょう。履歴なども極力削除しておきます。

UE4やUnityなどのゲームエンジンにはリアルタイム再生の処理速度を上げるために、カメラの表示領域外のオブジェクトや、別のオブジェクトで遮蔽されたものをカリング(非表示)する機能があります。この機能を有効に活用するため、背景モデルなどではモデリングの際、モジュラー化を行います。

リアルタイムのモデリング例

左側のような完成品をつくりたい場合は、右のように共通パーツだけをまず作成し、それをインスタンスコピーして組み立てます。これをゲームエンジンで表示すると、カメラに映らないオブジェクトはカリングされ、レンダリング負荷が軽減されます

リアルタイム用のキャラクターリギング例

リギングでの注意事項はジョイントがルート以下に1つの階層でつながるようにすることです。階層が分離している場合、ゲームエンジンに変換した後、モデルが分解されてしまうことがあります。今まで使っていたリグが正しく変換されるか、事前にチェックしましょう。キャラクターアニメーションなどは基本的にジョイントボーンへスキンバインドしたものを扱います

アニメーションベイクする階層の例

リアルタイムエンジンには3DCGツールで設定されたIKハンドル、コンストレイン、エクスプレッション、カーブ(パスアニメ)、ドリブン、デフォーマ、Hairなどはインポートできません。そのため、ジョイントのアニメーションにキーベイクして、リグやIKなどを全て削除してから、FBXにエクスポートしたものをインポートします。IKやコンストレイン、エクスプレッションなどを使用したい場合は、ゲームエンジンの機能を使って設定する必要があります

頂点アニメーション

画像はブレンドシェイプを使ったロボットの破壊表現の例です。UnityやUE4ではブレンドシェイプやジオメトリキャッシュ(Alembic)の頂点アニメーションを扱うこともできます

5 素材のインポートとコンテンツブラウザでのファイル管理

前述のとおり、UE4などのゲームエンジンの多くは3DCGツールのように豊富なモデリング機能を備えていません。各種アセットは、主に外部ツールで作成したものをインポートして扱います。

Maya3ds Maxなど、3DCGツールでモデリングされたアセットをFBXで出力して、UE4エディタの「コンテンツブラウザ」からインポートしていきます。UE4では部品となるソースファイルを「Content」以下のフォルダに登録し、それらをインスタンスで配置して組み合わせることで、シーン(レベル)を作成します。積み木や、レゴブロックをイメージしてください。「コンテンツブラウザ」はBridgeやVaultのようにアセットを閲覧できるエクスプローラで、エディタ内で任意のフォルダをつくり、ファイルの管理を行うことができます。

コンテンツブラウザからアセットをドラッグ&ドロップで配置

POINT 1
プロジェクトフォルダ内のファイルはWindowsの標準エクスプローラからも「.uasset」拡張子のファイルとして確認できますが、編集やファイルのコピー、移動は必ずコンテンツブラウザ上で行いましょう。データ破損など、不具合の原因になります

POINT 2
弊社の過去事例では、約100万トライアングルのスキンキャラクター3体、さらに1万ポリゴンのキャラクター約50体を同時に表示したことがあります。UE4では仕様上、インポートするモデルのポリゴン数に明確な上限はありませんが、あまりに大きなデータの場合、レンダリング負荷だけでなく、インポート時の処理時間が膨大になってしまいます。アセットはできるだけ最適化して扱いましょう。また、テクスチャのピクセル数に関しては2の累乗を基本とします。それ以外のサイズでのインポートも可能ですが、一部の仕様が使えなくなるなどの問題がありますので、注意してください。
解像度は8K(8,192×8,192)サイズが上限です

POINT 3
UE4はアセットを独自形式に変換しますが、UnityではFBXなどのソースファイルをそのままプロジェクトフォルダ内に保存します。Unity上で設定されたパラメータなどの情報はファイルと1:1の「.meta」形式のテキストファイルに記述されます。そのため、SVNなどでのバージョン管理の際はソースファイルだけでなく「.meta」ファイルも忘れずにコミットしましょう

次ページ:
6 アセットの編集、マテリアルの作成

特集