描画の無駄を極限まで削るミドルウェア「Umbra」、スタッフインタビュー
その効果は最大600%! 優れた映像を実現するための裏方技術
PC、Xbox 360、そしてプレイステーション 3といった高性能なゲームプラットフォームで進化を続けるゲームグラフィックスの世界。一般的には、素晴らしいシェーディングや、超高密度のポリゴンモデル、高度なアニメーションといった「派手」なものが技術トレンドとしてピックアップされることが多い。
しかし、その背後にある「地味」な技術の進歩も重要だ。たとえば「オクルージョン・カリング」と呼ばれる技術。オクルージョン(遮蔽)・カリングは、その実行内容がユーザーの目に直接触れることはない。裏方としてゲームの描画効率向上をもたらし、それにより緻密なグラフィックスの作りこみを支援するものであり、その出来がゲームの映像表現に重要な影響を及ぼす。
そして今回ご紹介する「Umbra」は、この技術に特化したソリューションを提供する点において、業界トップレベルのミドルウェアだ。その歴史は浅いが、海外の有名タイトルで幅広く使われるようになってきており、最近では例えば「Mass Effect 2」や「Alan Wake」のような2010年リリースタイトルでも活用されている。今回、この「Umbra」の日本への普及を期するUmbra Softwareの上級スタッフから話を聞くことができた。それをもとに、今後国内のタイトルでも名前を聞くことになりそうな「Umbra」の技術についてお伝えしよう。
「Umbra」の技術を採用した代表的な最新タイトル |
■ 地味だが重要な技術「オクルージョン・カリング」の専門ソリューション
Teppo Soininen氏 |
ハーストハウス・ジェイムズ氏 |
ミドルウェア「Umbra」を展開するUmbra Softwareは、フィンランドのヘルシンキにスタジオを置く小規模な技術開発企業だ。創業は2005年と非常に若く、8名の開発スタッフがオクルージョン・カリングの技術だけを専門的に研究している。主力商品はオクルージョン・カリングのミドルウェア「Umbra」と、高性能機向けに特化した「Umbra Occlusion Booster」の2製品である。
その中で今回話を伺ったのは、同社でデベロッパー・リレーションを担当するTeppo Soininen氏。ファーストネームの“Teppo”は文字通り「鉄砲(canon)」を意味するとか。Soininen氏は今回、日本国内で「Umbra」のサポートを担当するIGM株式会社と共同で普及活動を行なうために来日。来日に際しては秋葉原見物を非常に楽しみにしていたという。
今回の取材にあたっては、IGM株式会社の代表取締役社長、ハーストハウス・ジェイムズ氏と、執行役員で営業統括を勤める古畑憲和氏も同席していただいた。IGMは、日本国内へ海外のゲーム開発技術を提供するため2008年4月に設立された企業で、今回の「Umbra」のほか、MMOG向けゲームエンジン「Big World」、サウンドミドルウェア「fmod」など各種ミドルウェアの販売代理・サポートも展開している。
というわけで、早速「Umbra」の技術についてご紹介していこう。まず筆者が、この技術についてわかりやすく説明してくださいと言ったところ、Soininen氏は開口一番「『Umbra』は、三次元空間の中で、カメラから見てどのオブジェクトが見え、どのオブジェクトが見えないのかを優れたアルゴリズムで判定し、レンダリングエンジンにかかるオーバーヘッドを最小化する技術です」と、平易に紹介してくれた。
インタビューの大半は技術仕様の説明に費やされたので、情報を整理して解説しよう。
・「オクルージョン・カリング」とは?
見える範囲だけにカリングされた風景 |
「カリング」というのは、不要なものを除去し、必要なものを選抜するという意味で、3Dゲームの分野では各フレームのレンダリングの前段階で行なわれる処理だ。基本的な実装では、例えばカメラ内に入らないとわかっている位置のオブジェクトを無視できるよう、簡単な範囲チェックを行なうような処理が一般的だ。
オクルージョン・カリングは、カリングのより高度な実装形態で、上記に加えてオクルージョン(遮蔽)による不可視判定を行なう技術。カメラ内で「他のオブジェクトによって遮蔽(オクルード)され、見えない位置にあるオブジェクト」を淘汰するものだ。
これを行なうことにより、GPUでポリゴンが描画される際、無駄なオーバードロー(上塗り)を回避できるため、ゲームの実行効率を大幅に高めることができる。現代的なゲームエンジンではほぼ必須の技術であるが、どこまで緻密に遮蔽を判定するかという問題は、計算量とのトレードオフの関係にあって、技術的に難しい分野である。
「Umbra」は、この分野に特化した技術である。Umbra Softwareのスタッフは、会社の設立よりずっと前となる1997年頃よりこの技術を専門的に研究してきており、製品となったミドルウェアには非常に高度なアルゴリズムが実装されている。
「Umbra」の機能の模式図 |
・高性能機向け「Umbra Occlusion Booster」はここが凄い!
デモソフトウェアを実行してみせるSoininen氏 |
Umbra SoftwareがPC、Xbox 360、プレイステーション 3向けのゲームに提供する最新のソリューション「Umbra Occlusion Booster」は、このオクルージョン・カリングのアルゴリズムとして究極の域に達している。
まず、遮蔽判定の精度が極めて高い。「Umbra」による遮蔽判定では、まず3D空間を独自のアルゴリズムで階層的に分割し、まず部屋ひとつといった単位、次にオブジェクトのグループ、最後に各オブジェクト毎といった形で大雑把な判定を行なっていく。そうして対象を絞り込んだ上で、ゲームシーンに映し出されるありとあらゆるジオメトリー、ビルボードテクスチャー、パーティクルを対象に遮蔽判定を行なう。こうして最終的にはピクセル単位での可視判定が行なわれるため、一般的な大雑把なバウンディングボックスレベルの遮蔽判定に比べ、緻密なカリングが行なわれるわけだ。
取材現場で実際に見せてもらったデモンストレーションでは、都市環境に立ち並ぶビルが、互いの遮蔽関係によって背後にあるものが刈り取られるだけでなく、歩いているキャラクターの頭、それも頭髪の細かな凸凹にも反応して、ビルの各階層単位で描画が省略される様子をみることができた。さらには、地面に植えられている植物の葉っぱがゆらぐだけでも、それを通してわずかに見える向こう側の風景で、細かくカリングの状況が変化する。これは驚きに値する。
ここまでやるとなれば、シーンデータに対して何らかの前処理が必要になりそうだが、実際のところ「Umbra」では全てランタイムにリアルタイム処理されるため、事前にアーティストやプログラマーが何かを準備しておく必要はない。
さらに「Umbra Occlusion Booster」は、PCのGPUや、Xbox 360のCPU、プレイステーション 3のSPUによる並列処理に最適化されているため、純粋にアルゴリズムの実行効率も極めて良いという。また、階層的なアプローチをとったアルゴリズムであるため、処理量や必要なメモリー量はオブジェクトの数やシーンの大きさに比例することなく、たとえオブジェクトの数を倍にしても「Umbra」が利用するマシンリソースは微増にとどまる。例として、10万オブジェクトを含むシーンで、5万オブジェクトが動的なものであった場合でも、「Umbra」が利用するメモリ領域は3~5MB程度だという。
デモソフトウェアでオクルージョン・カリングが行なわれる様子。樹木の葉の動きによる、ピクセル単位の可視範囲にも反応するあたりが凄い |
シーンの階層分割アルゴリズムを可視化したもの。大きくは部屋ひとつ、小さくはオブジェクト単位で階層的に判定が行なわれ、可視範囲が決定されていく。 |
・パフォーマンスアップでさらなるゲームグラフィックスの作り込みが可能に
上述した技術により、「Umbra Occlusion Booster」では、各ゲームデベロッパーが持つ一般的なインハウスのカリング技術を置き換えることで、ほぼ確実に大幅なパフォーマンスアップが見込めるという。特にSoininen氏によれば「何もしない場合に比べ、最大で600%のフレームレート向上が期待できる」とのことで、そのインパクトはかなり大きなものだ。
このような技術がゲーム開発に与えるメリットは大きい。一般的なゲームエンジンでは、インドアの3D空間を構築する際などに、出入口となる狭まった領域や曲がり角等に、不可視判定のフラグを提供する論理的な面データをアーティストが設定するなどして、表示の最適化を手作業で支援する必要があった。例えばゲームエンジン「Gamebryo」では、レベルデザイナーがオクルージョンプレーンと呼ばれる論理データをシーンデータに入れ込むことでカリングが達成されるが、「Umbra」ではこの手の下準備が一切不要だ。
その上で望みうる最適なフレームレートが達成されるため、アーティストはさらにグラフィックスを作り込むことができる。「Umbra」による遮蔽判定では体積のあるジオメトリーだけでなく、2Dパーティクルで表現される木の「葉っぱ」や「草」のようなものまで使われるため、レベルデザイン時に見栄えとパフォーマンスの両面で計画を立てやすい、というメリットもある。見栄えの良い海外ゲームは、シェーダーやアニメーションだけでなく、見えない部分にも高度な技術を利用しているわけだ。
安定したフレームレートが必要なPC用オンラインゲームでも「Umbra」が使われている |
■ 数々のAAAタイトルで採用。価格帯としては中堅以上のゲームデベロッパーがターゲット
談笑するSoininen氏とハーストハウス氏 |
複数のゲームエンジンで、組み込み済みのバージョンが提供される |
「Umbra」は、与えるメリットが「フレームレートの向上」という点で明確だ。このメリットはさらなるグラフィックスの作り込みという形で活用されやすいため、Soininen氏によれば、現時点の顧客はAAA(一流)タイトルのデベロッパーが主流だという。このあたりはUmbra Softwareのサイトを見ても確認できる。
「Umbra」の組み込みが容易になるような工夫も凝らされている。例えば「Big World」、「Gamebryo」、「Unreal Engine 3」、「Hero Engine」といった有名ゲームエンジンには組み込みバージョンが提供され、エンジンの使用開始時点で「Umbra」の機能が利用できる。また、インハウスの独自エンジンに組み込むような場合でも、3~5日程度で組み込みが可能だという。
新たなトピックとしては、新進気鋭のゲームエンジン「Unity」に「Umbra」の技術が組み込まれることを挙げたい。Soininen氏によれば、「Unity」に組み込まれるバージョンは、エンジンのメインターゲットがiPhoneをはじめとするモバイルゲーム端末ということで、リアルタイム処理ではなく前処理が必要な実装に置き換えられているそうだ。PSPにも対応するとのことで、「Umbra」の技術によりもう1歩、映像面での進化が見られるかもしれない。
各デベロッパーにとって気になるライセンス費用は、基本的に「要相談」で非公開の姿勢をとっているが、同席したIGMのハーストハウス氏によれば、実態としてタイトルあたりおよそ500~800万円程度でライセンシングしているという。中堅クラス以上のデベロッパーならば問題のない価格といえる。実際的には、デベロッパーの規模、各タイトルの販売成績の見込みや、対象プラットフォーム、オンラインタイトルであるかどうかなど、様々な要素を考慮してライセンス形態・価格を決めるという柔軟な姿勢をとっているようだ。
最後に、ここまで技術面の紹介をしてくれたSoininen氏が、「Umbra」を日本のゲームデベロッパーにおすすめする一言を述べてくれた。
「With Umbra, Your Games are Better.」(Umbraを使えば、あなたのゲームはもっと良くなります)。
「Umbra」の国内展開を担当するIGMでは、今後も海外の最新の開発技術を精力的に紹介していくとのこと。それがSoininen氏の言うように、日本のゲームがもっと良く、面白くなるために機能すれば面白い。
http://www.umbrasoftware.com
□IGM株式会社のホームページ
http://www.igmkk.com/
(2010年 4月 15日)