イベント
[GTMF]「Kite Demo」で,16km四方の広大なリアルワールドを3か月で完成させた「半」プロシージャルな地形生成手法とは
セッション名は「Unreal Engineの最新ハイエンドデモ『Open World』に使われた技術」で,登壇者はEpic Games Japanでコミュニティマネージャーを務める今井翔太氏だ。ちなみに今井氏はアメリカでオフラインCG制作の現場で活躍していた人物で,今回のセッションで解説した技術の活用は,実際に自身で経験したことがあるそうで,自身の経験や知見を交えて解説を行っていた。
デジタル写真撮影で素材を作り上げる
このKite Demoは,2015年3月に開催されたGDC 2015での公開を目的とした,短期プロジェクトで制作された。2014年11月頃に制作が開始されたので,開発期間は実質的に2〜3か月程度しかなかったということになる。割り当てられた人員は10人程度。しかもそのほとんどがアーティスト系で,中心的人物はゲーム業界出身者ではなくVFXアーティスト(オフラインCG制作系のデザイナー)だったという。
16km四方の広大な空間をリアルタイムCGで実現するのはいいとして,その広大な環境を作り込むには10人程度の人材と2〜3か月の時間ではとても足りない。そこでプロシージャル的な手法が採択されたというわけである。
まず,どんな地形を生成するかを検討するためのロケハンは,実際にその場所には行かない「バーチャルロケハン」として実施されたという。バーチャルロケハンというと言葉の聞こえはかっこはいいのだが,要は,Google Earthなどのオンライン景観サービスや,風景写真サイトを活用して見て回るだけである。検討の結果,スコットランドの湖水地方が採択されることとなった。
続いて行われたのが,その地域の景観を形作っている特徴的な自然物要素の洗い出しだ。これは,実際に現地に赴いて撮影された写真を見ながら,リストアップしていったという。また,手作業でモデリング(あるいはテクスチャデザイン)することになる素材の撮影も同時に行ったとのことだ。
ただ,ここで一つ大きな問題が発生したのだという。
取材日となった冬場のイギリスのスコットランド地方は,高緯度なために日照時間が極端に短かったのだ。天候にも恵まれず,行えた素材撮影はかなり限定的なものになってしまったとのこと。そこで代案として,よく似た景観のニュージーランドにもスタッフを派遣したという。こちらは南半球のために夏冬が逆転していて日照時間も長く天気も良好だったそうだ。ネタばらしをするとKite Demoのオープンワールドはスコットランドとニュージーランドのハイブリッド景観となっているのである。
素材撮影の際に用いられた機材は,下のスライドで示したものになる。
PLフィルターは(PLはPolarizingの略記),鏡面反射光(例えば映り込み)を低減するためのフィルターだ。撮影の目的は写真作品を撮影するのではなく,撮影対象は自然物の素の姿であるなので,映り込みを除外する目的で活用するわけだ。
カラーチェッカーは,変動する照明条件下で撮影した写真に対し,その色の正規化を後処理で行うために使うもので,基本的には撮影対象物と一緒にフレームインさせて撮影することになるものだ。
今井氏は,さらに自らの経験談として,アセット撮影に用いるレンズについての知見を披露した。
それは,レンズの焦点距離についてで,いわゆる焦点距離の短い(数値の小さい)広角レンズは被写体が横に広がる傾向があり,長い(須内の大きい)望遠レンズは被写体が縦に広がる傾向があることから,50mm-70mm程度のレンズが望ましいと述べていた。
また,撮影時はできるだけ絞り込んでボケ味を殺すことが大事で,さらに撮像素子のノイズを低減させるためにISO値は100〜125などのできるだけ低い値を選択することが奨励されるとのこと。低ISO値,絞り強めで撮影すると撮影写真は暗くなりがちになる。もちろん写真が暗くてはダメなので,その状態で明るく撮影するためにはシャッタースピードを遅くするしかない。シャッタースピードを遅くすると写真がぶれる可能性が高まるので三脚や一脚は必須なのだ。
以上のことに気を付けて撮影された素材写真は以下のようなものになる。
そして,写真を参考にモデリングされた植物は下の動画になる。
複数枚のデジタル写真から3Dモデリングを行う「フォトグラメトリ」技術とは?
オフラインCGの世界では比較的最近用いられている技術に「フォトグラメトリ」という技術がある。
これは,簡単に言うと,対象の立体物をあらゆる角度から撮影して,それを3Dモデルデータとして半自動生成する技術のことだ。原理としては,撮影した各写真を一種の連続した動画とみなして,その連続写真中の特徴点の移動を検出する。その運動視差量からポイントクラウド的な3Dデータを構築して,このデータをもとに3Dモデリングを行う。
なお,運動視差とは対象物を移動しながら見ることで生じる位置のズレのことで,三角測量の要領で立体感を把握できる。ポイントクラウドとは,立体物をポリゴンではなく,点の集合体で表現する手法だ。
ここでも今井氏は,このフォトグラメトリに必要な機材を再び紹介し,自身の経験などを交えての解説を行った。
撮影に用いるデジタルカメラの撮像素子はフルサイズ(英記ではFull-Frame Size)であることが求められるとのこと。
というのも,フォトグラメトリ撮影では,同時に魚眼レンズを用いてのImage Based Lighting(IBL)用のハイダイナミックレンジ(HDR)キューブマップ素材の撮影を並行して行う際に,APS-Cサイズ(英記ではCrop Size)ではうまくいかないことがあるためだという。IBL用HDRキューブマップ素材の撮影では,撮影光軸に対して上下左右の画角が180度のシーンが撮影できなければならないのだが,APS-Cサイズの撮像素子では全周が収まりきらないことがあるのだ(編注:レンズによると思われる)。
今井氏はフルサイズ撮像素子の一眼デジカメを紹介していた。今回のプロジェクトではキヤノンの「EOS 5D Mark III」が使われたそうだ |
魚眼レンズの例。今回のプロジェクトでは左のシグマ製魚眼レンズが使われた |
必要機材の中には意外なものもある。それは高さ6mほどのポール付きの三脚だ。なんでそこまで背高のものが必要かというと,IBL用のHDRキューブマップ撮影では,横方向や上方だけでなくだけでなく,地面側の情景も写真に収めなければならないためである。地面からある程度の距離をとって撮影しないと理想的な全天周環境マップが得られないのだ。
なお,6mもの背高な三脚を使うと一つ大きな問題が発生する。それはカメラがどんな情景を捉えているかを撮影者が確認できないという問題だ。そのため,無線でカメラのファインダー表示を飛ばす機材も使われる。
IBL用HDRキューブマップ撮影時には,全周撮影用の電動パノラマ雲台が便利で,これも半ば必須機材であるとのこと。
電動パノラマ雲台とは,リモコン電動制御でカメラを回転させて全周撮影を行ってくれるものなのだが,ただカメラを回転させるだけでなく,レンズの焦点に配慮した全天周映像の中心角起点での回転動作を行ってくれるところが特徴だ。カメラ自体は偏心回転となるので,これを手作業で行うのは難しいため,こうした機械が便利なのである。
また「HDR」というキーワードが出てきていることからも分かるように,情景撮影は漆黒から超高輝度までをカバーしないといけないため,一つのシーンを多段階の階調レンジで撮影する必要がある(ここでは4段階)。こうした階調分割撮影をブラケット撮影というが,前出の電動パノラマ雲台はこれをもリモートで行ってくれる。
また,フォトグラメトリで生成しようとする撮影対象オブジェクトが,どういった照明条件下で撮影されたのかを記録しておくために,前出のカラーチェッカーに加え,ミラーボールとグレーボールを撮影対象物と同時に撮影しておくことも重要とされた。
ミラーボールは文字どおり,球状の鏡で周囲の情景をそのまま映り込ませるものだ。グレーボールは,そこにやってくる全周の光の強弱(Intensity)を表すためのものである。詳細は後述するが,これらは後段のフォトグラメトリプロセスにおいて,写真に焼き込まれてしまっている照明効果を打ち消すための情報として利用される。
モデリング対象オブジェクトの写真は,あらゆる角度から撮影することになるのだが,特徴点をトラッキングしてモデリングするという原理上,オブジェクトの同一部分が写真の30%くらいは被るようにして撮影するのがコツだ,と今井氏。そうして撮影されたフォトグラメトリ用の写真が下になる。
この写真群から3Dモデルを生成するのに用いたフォトグラメトリツールはAgisoftの「PhotoScan」だ。
実際に生成された3Dモデルの一例が下で,対象物の大きさにも依存するが,大体700万ポリゴンから2000万ポリゴンくらいになるという。同時にテクスチャも生成できるのだが,これは16384×16384テクセル程度になる。
データプロセスの過程でポイントクラウドを生成していることから,ここまでの膨大なデータ量になってしまうわけだが,当然このままではリアルタイムグラフィックスでは用いることができない。そこで後段で見映えが変わらない程度に簡略化する後処理を行うことになる。
フォトグラメトリで生成した3Dモデルは,それ以外にも問題を孕んでいる。
それは,今回の事例でいえば,屋外の太陽光下で撮影しているため,太陽に面している部分は太陽光からのライティングがなされてしまっており,地面に向いている面は照り返しの環境光を浴びてしまっていることだ。さらに,それらの光から照明を受けたことで自己遮蔽箇所にはセルフシャドウまでが出てしまっていることも問題となる。
フォトグラメトリで生成した3Dモデルは,「形状」としてはよいとしても,得られたテクスチャは撮影時の照明効果が焼き込まれてしまったものとなっているのだ。リアルタイムCGで改めてライティングを行う際には,これらの「撮影時の焼き込み照明効果」はノイズでしかないため,除去してやる必要があるのだ。
この処理に使用するのが,前出のミラーボール,グレイボール,そして同時に撮影したIBL用HDRキューブマップだ。
やり方はこうだ。まず,フォトグラメトリで生成した3Dモデルを,テクスチャを貼っていない素ポリゴン状態でライティングする。そのライティングは,ミラーボール,グレイボールを撮影した情報を参考にして,同時撮影で生成したIBL用HDRキューブマップの向きを揃えて行う。
この素ポリゴンモデルのライティング結果は「撮影時の焼き込み照明効果」に相当するため,フォトグラメトリから生成したテクスチャからこれをさっ引いてやれば,「撮影時の焼き込み照明効果」は除去されて,そのオブジェクト本来のテクスチャだけを取得できる。
今回のプロジェクトでは,この工程をAutodeskの「Maya」上で,専用のスクリプトを作成して半自動化したとのことだ。
広大な地形はNASAの地形凹凸情報から生成
Kite Demoのオープンワールドが16km四方の広大な空間になっていることはすでに述べたとおりだが,この広大な丘陵地形そのものはどのようにして作られたのだろうか。
今井氏によれば,この地形も前段までで紹介してきたような「半プロシージャル手法」で制作されたとのことである。
こうした広大な地形作成では,ノイズ関数を用いてプロシージャル生成することも流行しつつあるが,今回のプロジェクトでは,NASAが提供している地球上の地形凹凸情報を活用したとしている。
NASAが公開している地形凹凸情報には,地球の丸みが含まれてしまっていたり,一つの地域が複数のファイルに分散してしまっていたりする。そうした生データの特異性を成形するためにフリーソフトの地形空間(Geospatial)成形ソフト「VTBuilder」や「World Machine」を用いたとのことだ。
VTBuilder |
World Machine |
それに加えて,NASAが公開している地形凹凸情報は衛星軌道上から取得した情報であるため,上層が下層を遮蔽するような地形凹凸情報は取れていない。なので,そうした部分は手作業でそれっぽい崖や谷を加えて見栄えを良くしているとのことだった。
ところで,今回のプロジェクトのオープンワールドのお手本となった地形は,検討段階ではスコットランドだったのだが,最終的には第2ロケハン地のニュージーランドのものになったそうだ。地面に並べる植物や岩石などの自然物には,スコットランドのものも使われているという。当初の,スコットランドの地形にニュージーランドで撮影したアセットを加えるという構想から逆転してしまっている。
また,NASAの地形凹凸情報は衛星軌道上から取得しているデータなのでマクロスケールの凹凸情報であり,人間の歩幅スケールの地形の凹凸情報は含まれていない。そこで,そうした細かな地形凹凸はノイズ関数などを使ってプロシージャル的に付加しているとのことである。
広大な地形に3Dオブジェクトをプロシージャル配置していく手法
最後に,こうして作り上げた広大な地形にフォトグラメトリで生成したオブシェクト群を配置していくことになるのだが,ここでもプロシージャル的な手法が応用されている。
草木,樹木,岩肌,水面などはマテリアル扱いで地表に設定することが可能であり,例えば,地表面に背の低い草の群生率を表すパラメータをテクスチャの形で塗れば,そこにその設定した密度で草が生えるという仕組みだ。
また,複数のマテリアルのマスク合成は,ちゃんと高さ情報を考慮した実装になっていることもUE4の特徴だと今井氏は強調していた。
例えば,草地帯と砂利地帯がミックスされるところは,草地に対して背の高い砂利が露呈する表現となる。水面も同様で,水岸などでは背の高い砂利は水面の上に顔を出すことになる。こうした合成により,複数の自然物がオーバーラップする箇所も自然な見映えになるというわけである。
なお,このKite Demoのオープンワールド制作で用いられたような自然物のプロシージャル的生成手法は,Unreal Engine 4.8から標準機能として盛り込まれており,こうした広大な自然表現を使ったゲーム開発もUE4で行えるようになったとのことだ。
また,樹木の表示では,新規のLoD(Level of Detail)手法と特殊なライティング手法が実装されたとしている。
ここでいうLoDとは,視点からの遠近で3Dモデルの詳細度を切り換えて描画する仕組みのことだ。Kite Demoのオープンワールドでは,小さく描かれる遠方の樹木ほどポリゴン数を削減した簡易モデルとしていき,最遠方では四辺形ポリゴンに樹木テクスチャを貼り付けただけのビルボード(スプライト)にしてしまう仕組みが実装されている。
本作では4段階LODが実装されているのだが,LoDレベルの切り換えポイントで,モデルが切り替わったことが露呈するポッピング現象を低減させるために,その樹木の形状特徴をちゃんと継承しての低いLoDモデルを生成している。
ライティングについては,葉っぱに対して「両面シェイディング」と呼ばれる機能を実装したことが報告されている。UE4.8の標準機能として実装されたこの機能は,薄い透過性のものをライティングした際に,表面のテクスチャが反対側にも透過してくるというもの。具体例を示すとすれば,例えば,葉っぱが日光を受けた場合,その葉脈が葉っぱの裏に透けて見えるような表現が実現可能になるということだ。
以下の映像は,短編映画本編ではなく,純粋にこの手法でUE4上で動いているKite Demoで使われたオープンワールドをカメラで切り取ったものになる。今回のセッションでは触れられていないが,動物や鳥などもプロシージャル生成され,AI制御されたものとなっている。
実際に,このオープンワールドを実行してみたい人は,6月に公開されたスタンドアローン版をダウンロードして自身のPCで実行してみるといいだろう。ただ,ファイルサイズが5.35GBと巨大なのと,PCの要求スペックが非常に高いので,そのあたりは覚悟して試してみていただきたい。
おわりに
セッションの最後に今井氏は,Kite Demoにも使われ,Kite Demo以降のUE4.8に搭載された新機能についても軽く紹介した。
一つは最近の人肌表現で採用が進む画面座標系の疑似表面下散乱シミュレーションだ。これはBliizard EntertainmentのJorge Jimenez氏によって考案され,日本ではスクウェア・エニックスの「Agni's Philosophy」で採用され著名になったテクニックだが,UE4.8でも利用できるようになったのだ。
このほか,ブラー境界が先鋭化されない自然なモーションブラー効果や,光学的シミュレーションベースの被写界深度表現などが実装されたとことも紹介していた。
UE4.8では新型モーションブラーが実装された。スキャッターはブラー効果を拡散して実践するもので,DirectX 10以降に対応したGPUでないと利用できない |
被写界深度の表現が実在レンズのパラメータ表現で実現可能となった |
今後も,UE4は機能強化を続けていくとのことだが,直近の4.9以降では使い勝手のさらなる向上や,最適化の推し進めによる一層のパフォーマンス強化を実践していくそうである。また,Windows10リリース後にはDirectX 12への完全対応も予定されており,当面,UE4にまつわる話題は続きそうだ。
そうそう,以前からグレー扱いといわれていた「UE4で制作した映像コンテンツに関してはロイヤリティを請求しない」ことも今回のUE4.8の発表時に明言されている。このことは,ゲームではない映像コンテンツ制作現場にもUE4の採用が進むことに拍車をかけるかもしれない。いろいろと楽しみだ。
Unreal Engine公式サイト
- 関連タイトル:
Unreal Engine
- この記事のURL: