【Watch記事検索】
最新ニュース
【11月30日】
【11月29日】
【11月28日】
【11月27日】
【11月26日】

3Dゲームファンのための「ヴァルキリープロファイル2」グラフィックス講座
次世代機を睨んだユニバーサル設計エンジンの秘密に迫る

7月24日 収録

 株式会社スクウェア・エニックスより6月に発売されたプレイステーション 2用RPG「ヴァルキリープロファイル2 -シルメリア-」(以下VP2)は、株式会社トライエースが開発を担当した作品だ。トライエースといえば、技術力には定評があり、最近ではXbox 360専用ゲームタイトルの開発に乗り出すことを公式発表したことが記憶に新しい。

 トライエースでは、研究開発部が汎用性のある社内オリジナルエンジンを作り込んでいき、タイトル開発プロジェクトチームがこれを活用してタイトルを作り上げていくという、モダンな制作スタイルを採用しているという。そしてこのトライエースのオリジナルエンジンの最新版ベースで動作しているのがVP2ということになる。



■ VP2のHDRレンダリングは“マジメ”な疑似技法?

 現在、3Dゲームグラフィックス表現のトレンドとなっているのが「ハイ・ダイナミック・レンジ(HDR)レンダリング」のテクニックだ。

 本連載では幾度となく出てきているキーワードだが、これは簡単に言えばレンダリングをなるべく現実世界に近い広いダイナミックレンジで行なうもの。RGB各8ビットで表現される1,677万色の色域を大前提にしてレンダリングするのではなく、これを遙かに超える色(輝度)があることを想定してレンダリングし、このフレームから画面表示するための映像を作り出すという流れになる。PCや次世代機の世界ではレンダーターゲットとなるフレームバッファがRGB各整数8ビットに限定されず、浮動小数点までが利用できたり……と、GPU自体の設計がHDRレンダリングに都合のよい進化を遂げてきているほどだ。

 プレイステーション 2(PS2)は、こうした概念が生まれる前のハードウェアであり、そのGPUである「GS(Graphics Synthesizer)」はHDRレンダリングに適した設計になっていないわけだが、本連載で取りあげた「ワンダと巨像」を始めとして、PS2にこのトレンドを持ち込んできた例が増えつつある。

 VP2もそうした作品の一例だ。自然にシーンに溶け込んでいるので、「いかにもHDRレンダリング」といった主張があまりないのだが、よく観察すると、柔らかいブルーム表現や白飛びした明部などに気が付くはずだ。

大空の光のあふれ出しの有無に注目
光源として設定されているものからの発光表現にこのHDR表現が目立つ
カットシーンでもHDR表現が積極利用されている


トライエース代表取締役の五反田義治氏。自ら研究開発部を率いる、第一線のクリエイターである
トライエース研究開発部の庄子達哉氏。VP2などで使われているゲームエンジンの開発に携わっている
五反田義治氏(トライエース代表取締役、以下五反田氏) : 「『スターオーシャン3』、『ラジアータ ストーリーズ』、『ヴァルキリープロファイル2』の3タイトルは、世代的には我々の同世代ゲームエンジンで作られています。HDRレンダリングについては実は『ラジアータ ストーリーズ』開発中あたりから実装を終えているんですよ。ただ、そのHDRレンダリングを積極的に活用して制作が行なわれたのはVP2が最初になります。我々のHDRレンダリングは疑似技法の中でも比較的“マジメ”な技法といえると思います(笑)。我々の技法についての詳細は「GDC 2005」で発表しており、当時の資料は弊社サイトで公開していますので、興味がある方は参照してみてください」

庄子達哉氏(トライエース研究開発部、以下庄子氏) : 「PS2では、PCGPUのように浮動小数点バッファのような高精度バッファが使えません。つまりRGBが各8ビットずつの通常の整数バッファを使わざるを得ないわけです。これでHDRを表現するために固定小数点の概念とHDR率というパラメータを導入しています」

 8ビット整数であれば0〜255の値が表現でき、PS2では通常、これを0.0〜1.0の値に対応付けた色表現になるが、VP2では0〜255をHDR率で設定した値に対応付けている。例えばHDR率=2.0とした場合、0〜255が0.0〜2.0までの値に対応することになり、通常時の2倍のダイナミックレンジ(表現域)を持つと見なすようにするのだ。

 HDR率の値を上げれば上げるほど、表現できる輝度レンジは拡張されるが、分解能は逆に減ってきてしまう。例えばHDR率=2.0は輝度レンジは2倍になるが、分解能は1/2になってしまう。当然だ。そして、分解能が減るとカラーグラデーション表現などでマッハバンド(疑似輪郭)が出てしまう。

 試行錯誤の結果、トライエース側では、ダイナミックレンジと階調表現のベストバランスはHDR率=2.0あたりがよいという決断を下したそうだ。

 2.0では、確かにカラーグラデーションは疑似輪郭がやや目に付くものの、周波数の高いテクスチャ模様がオーバーラップしているとほとんど視覚上気にならなくなる。なお、エンジン上ではHDR率はシーンなどに応じて可変設定できる仕様になっているそうだが、データ管理等が面倒になるためVP2ではHDR率=2.0固定にしたという。

左端が通常状態(HDR率=1.0)。右端のHDR率=4.0では色の分解能が粗くなりすぎてマッハバンド(疑似輪郭)が目立ってきてしまう。中央のHDR率=2.0ではマッハバンドはよく見れば分かるが、妥協できるレベル 同一条件でテクスチャを適用した場合。無地ポリゴンでは目立っていたHDR率=2.0の疑似輪郭もテクスチャが適用されるとほとんど目立たなくなる


 ライティング処理なども全て、この仕組みに配慮して行なわれるので色分解能は半分になってしまっているものの、輝度ダイナミックレンジは2倍となり、この範囲である程度マジメなHDRレンダリングが行なわれていることになる。

 レンダリング結果としてはRGB各8ビットのフレームだが、HDR率=2.0の影響で輝度レンジは0.0〜2.0の2倍あるため、これを表示の際には適正輝度である0.0〜1.0に落とし込まなければならない。この処理を行なうのが、マジメに行なったHDRレンダリングの結果には欠かすことのできない「トーンマッピング」の処理だ。

 人間の目は、明るすぎるシーンを見たときには、瞳の開口率を絞って光量を減らし、暗すぎるシーンでは瞳を開いて光量を増やし、結果的に適正輝度で見るような動作をするが、この動作に相当する処理がトーンマッピングだ。

【トーンマッピングの概念】
これら3つは同一シーンの映像だが、どの輝度を基準に表現輝度域を設定するか(≒瞳の絞り方を変える)で、シーンの見せ方を変えられる。これが「トーンマッピング」の基本的な考え方


 まともにトーンマッピングを行なう際には非線形カーブのトーンマッピングカーブを利用するが、PS2では処理能力的にも厳しいものがあるので、線形な丸め演算を行なう事で処理している。露光値はデザイナーや演出家によって指定されるカメラのEV(ExposureValue)によって決定される。

五反田氏 : 「非線形カーブを模したマルチバンドの線形カーブでのトーンマッピングも実験してみたんですけど、負荷が高い割に結果の差が小さいんで、単なるクランプ(丸め)にしました(笑)」

PS2では、その性能的限界もあって、平均輝度から単純な丸め(クランプ)処理でトーンマッピングを行なっている 製品版で最終的に採用された丸めによるトーンマップ処理の映像 3バンドのトーンマップを実装した例。ブルームの出方はこちらの方が柔らかい感じがするが、負荷が製品版方式の3倍掛かってしまうために、こちらの処理方式はお蔵入りとされた


 ここまででHDRレンダリングの二大基本処理は押さえられたが、これだけでは印象的なビジュアルにはならない。HDRレンダリングといえば、その醍醐味は、トーンマッピング後に高輝度と認知される領域からの光のあふれ出し(ライトブルーム)表現にあるからだ。

 VP2のブルームはフレーム内の高輝度部を低解像度で抽出してこれをMultiple Gaussian Filter(MGF)を通して、光のあふれ出しフレームを生成している。ブルーム用のバッファサイズは64×64〜128×128ドット程度だという。

 ガウシアン・フィルタ(Gaussian Filter)とは、概念的に解説すると入力値(ピクセル色)の影響を外郭に行けば行くほど弱めて散らすようにぼかすフィルタのこと。画像処理ソフトのぼかし処理などにもこのフィルタが使われていることが多い。やや難しい話になるが2次元的なガウシアン・フィルタは数式的に縦方向と横方向の変数を分離でき、縦方向の処理結果と横方向の処理結果の2つを合成することで結果が得られる特徴を持つ。つまり、コンピュータで実行する画像処理アルゴリズムとして効率よく実装できるメリットがあり、最近では好まれて使われる傾向にある。

ブルームのぼかしは、複数回のガウシアン・フィルタで実現


フィルタ径を大きく変えていく形で複数回のガウスフィルタを実行したいが、それでは負荷が高すぎるので、フィルタ径をそのままに低解像度のバッファで実行することで代用
 とはいえ、このガウシアン・フィルタを1回かけただけでは十分なボケというかあふれ出しが表現できない。となると、複数回、フィルタ径を変えてガウシアン・フィルタを実行しなければならないがそれでは負荷が高すぎる。そこで、元ぶんか社Gamesの川瀬正樹氏が考案したMGFが使われることが多く、VP2でもこの技法を利用している。

 川瀬式MGFでは、フレーム中の高輝度部を複数の異なる低解像度バッファに抽出して、これに対してガウシアン・フィルタを適用し、バイリニアフィルタで拡大して大きさを揃えて合成する方法をとる。

 そして、できあがったブルームフレームは、メインのレンダリング結果にα合成されて出力されることになる。

五反田氏 : 「我々も『スター・オーシャン3』までは、『ワンダと巨像』のような、取り出した高輝度部バッファを反復縮小してバイリニア拡大する方法を採用していたんです。ところが、『GDC 2004』で川瀬氏の発表を見て、これは使える! と思ってMGFを採用しました。MGFの方が綺麗な結果が得られるし、PS2ではこっちの方が速いんですよね」

前出の低解像度の結果をバイリニアフィルタで拡大して解像度を整えて合成すると、手抜きだがとても美しいMGF結果が得られる。これがいわゆる川瀬式MGFと呼ばれる日本発のトリックで、世界のゲーム開発者に使われている VP2におけるブルーム処理のフロー図(「GDC 2005」のスライドの画面ショットはVP2ではなく「スターオーシャン3」のものになっています。以下同)


スター(光芒)効果のフロー図。ブルーム形状の生成バリエーションという感じのものだ
 この他、自ら光を発するような高輝度HDR表現では、スター(光芒)型のあふれ出し表現を適用している。これは低解像度バッファに高輝度部を抽出する際に回転や圧縮を行ない、これらを展開して合成することで放射状に高輝度部が伸びる表現を行なっている。

 「ワンダと巨像」では比較的職人芸的なアプローチだったが、VP2では、最新のHDRレンダリング手法を基本に忠実に従いつつも、PS2というハードウェアの制限を独自の工夫で吸収して実装したような感じになっているわけだ。



■ 光散乱シミュレーションは「鬼武者3」と同手法

 HDRレンダリングとの相性も良く、フォトリアルな3Dグラフィックスを実現するにあたっては、最近よく目にするのが「光散乱シミュレーション(Light Scattering)」だ。

 3Dグラフィックスにおける光散乱シミュレーションとは、天球の空の色を自然界の法則に沿った形で計算して求めたり、大気によって光が散乱して色が変化する現象を再現すること。

 なお、VP2では、「GDC 2002」でATIが発表した光散乱シミュレーションのアルゴリズムをPS2で実装した形になっている。そう、実はこれは、本連載で紹介した「鬼武者3」の光散乱シミュレーションも、ほぼ同じ技法を使っている。詳細はそちらを参考にして欲しいが、ここでも簡単に解説しておこう。

「スターオーシャン3」の地形シーンを用い、パラメータを変えた光散乱シミュレーションを実行した時の映像


 光散乱シミュレーションは、大局的に考えると2つの流れに分解できる。1つはシーンの深度値(Z値)に応じて、遠くのものはぼやけて色変移を起こさせる、空気遠近(フォグ)的な効果をもたらす流れだ。もう1つは計算で生成した太陽や月を含む天球を、やはり深度値をキーにして合成してやることで、遠ければ遠いほど天球の光が遠近を飛び越えて漏れ出させる効果をもたらす。

 ちなみにVP2では、この光散乱シミュレーションは「森」のシーンで活用されているようだ。

光散乱オフ時 光散乱オン時。奥に行けば行くほど色のシフト量が多い




■ 本格志向の被写界深度シミュレーションで"カメラ的"な演出を実現

 被写界深度(DOF:Depth of field)のシミュレーションも、3Dゲームグラフィックスの表現では常套手段となりつつある。VP2では、特にリアルタイムグラフィックスで綴られるカットシーン(ムービーシーン)にて人物キャラクタを際立たせたり、あるいはシーンの遠近を目立たせて印象的なビジュアルに仕上げるための演出手段として効果的に活用されている。

ピントが奥に行き手前がぼけているショット ピントが手前に来て奥がぼけているショット。シーンの対象物がスムーズにボケ具合が変わるシステムを実装している


VP2のDOFは深度値を利用したオーソドックスなもの
五反田氏 : 「我々の技法は基本的な考え方は、DirectXなどのサンプルと同じ、深度値をキーにする技法です(後述)。ただ、35mmフィルムを想定したシステムを作り上げまして、現実のカメラのパラメータで制御できるようにしました。実際にキヤノンのレンズカタログの作例写真と、我々のDOFシステムにおいて、そのレンズ・パラメータでシーンをレンダリングしたときに、似たようなぼけ方になるかを確認したら、かなり近いものが得られていました」

 VP2のDOFは、五反田氏が述べているように最近ではよく用いられるシーンの深度(Z)バッファを利用する方式。シーンをレンダリングしたあとのZバッファにはそのシーンの深度(Z)情報が残るが、被写体までの距離(Z値)とこのシーン全体の深度値を比較してその差が大きいピクセルほどブラしてぼかせば、ピントが合っているところはくっきりと、合っていない領域はぼかすことができる。

 VP2では、このぼかし処理にはブルーム処理のところでも活用したガウシアン・フィルタを活用している。ぼかし処理に活用するバッファサイズはやはり粗い64×64〜128×128ドットだとのこと。

 この技法は大きくボカしたときに、そのボカしたピクセル色がくっきりと映るべき領域に漏れ出てきてしまい汚い映像になる弱点がある。

 そこでVP2では、ピントの合っている領域より後ろの「背景」と、ピントの合っている領域より前の「前景」と分けてボカし処理を実行し、さらにぼかすことが不要なピントの合っている領域をマスクすることでこの問題を回避している。

ブラーを強くすると、本来フォーカスが合っている所からも余計なブレがにじみ出て来てしまう VP2ではマルチレイヤーのぼかし処理を実装している。手前のボケが美しいのがVP2の特徴でもある


 なお、トライエースのエンジンの設計上では、ボカした背景は最大3枚、ボカした前景は2枚の合成を可能にしているという。

庄子氏 : 「あまり目立っていませんが、映像処理系では一番チート(物理的な意味を度外視した特例処理)を盛り込んでいるのがDOF処理だったりします(笑)。VP2ではパフォーマンス的な観点から、背景、前景、それぞれ1枚ずつ、としたシーンがほとんどですね。演出担当のスタッフもカメラをよく知る人間だったので、普段人々が見ている写真に近いDOF演出ができていると思います」

 VP2では、バストアップ程度の人物ショットの時はグラビア写真的な被写体以外が強くぼるような被写界深度になり、情景を広く撮った風景ショットの時は風景写真のようにボケみが淡い被写界深度になる。普段見慣れている写真に近いフレームとなっているので、うっかりすると被写界深度のシミュレーションに気が付かないほど自然に見えてしまっている。また、手前の前景側のボケはVP2の特徴的な画となっており、印象的なカットが随所に見られる。PS2でも、DOFを実際のカメラ的に処理することによって、「写真的な画」を実現できるのだ。

VP2における被写界深度のシミュレーションのフロー図 カットシーンでは人物がクローズアップされ自然な背景ボケになり、グラビア写真ライクなイメージとなっている




■ 地味だが効果の高い半球ライティング

輪郭や鼻筋の透き通った光の感じは表面下散乱処理をしているように見える。こうした処理をマジメにやるにはPS2には重荷なはずだが……
 VP2のグラフィックスをよく観察すると、一般的なPS2のゲームと比較して、人物キャラクタのライティングが、自然というか、質感がリアルに感じる。これには何か秘密があるのだろうか。人の顔などは適度に柔らかいハイライトが出ていて、簡易的な表面下散乱処理をしているように見えなくもないが……。

五反田氏 : 「いえ。特別、表面下散乱的な事はやっていません。ライティング関係で特別な処理といえば、Hemisphere Lightingをやってますね。かなり積極的に活用しています。たぶん、感じたのはそれかと思います」

 光源を設定してライティングを行なっただけだと、陰影がはっきりしすぎていて空気感が全くない味気ない画になってしまう。そこで、光源からの光が当たってない部分にも一様な光を当てる意味合いとして環境光を設定するのが一般的だ。ただし、動的な光源と環境光の組み合わせだけでは、まだ、その陰影が単調になってしまう。

 そこで完全にシーンに溶け込ませるライティング技法として、オフラインレンダリングの世界では多段のラジオシティ(相互反射)処理を行なったり、次世代機や最新PCの3Dグラフィックスハードウェアでは、そのシーンの全周の光の分布をテクスチャ化してこれを元にライティングを行なうイメージベースド・ライティング(IBL:Image Based Lighting)などが利用されている。

 VP2で採用されている「Hemisphere Lighting=半球ライティング」とは、このIBLを大胆にシンプルに簡略化したともいえるもので、そのシーンの空の色(天球色:Sky Color)と地面の色(地球色:Ground Color)の2色の環境光を設定し、これに基づいてライティングを行なう技法だ。

NVIDIAの有名な妖精のデモでは、背景の森の様子の環境マップを全方位の光源分布として捉えてライティングを行なっていた。これがIBL 各頂点(GPUによってはピクセル)の向きを表す法線ベクトルと天球の角度関係から天球色と地球色の混ぜ具合を決めて環境光を設定するのが半球ライティング。これだけでもグッとキャラクタがシーンに溶け込んだ感じになる


 そのシーンにあった天球色と地球色を設定することで、そのシーンにあった間接光を受けているようなライティングとなり、動的な光源によってライティングされた陰影の影となっている部分にも、その面の向き(法線)に応じた柔らかい天球色と地球色のグラデーションが出現する。ある意味、その3Dモデルの陰影の情報量が増えて見せられることになり、うまく設定してスペキュラとバランスすれば、VP2のように肌の陰影などにみずみずしさを与えることもできるのだ。

五反田氏 : 「半球ライティングは効果が高い割に処理負荷的には軽いので、使い勝手がいいですね。デザイナー達も使い勝手が良かったみたいで、VP2では効果的かつ積極的に使われています」

半球ライティングなし。これはこれで普通に見られるが…… 半球ライティングあり。こちらの方が、陰影の情報量が豊かな印象になる




■ 影生成はステンシルシャドウボリューム技法を採用

VP2の影生成はステンシルシャドウボリューム技法だった
 リアルタイム影生成は、3Dゲームグラフィックスにおいて非常に重要な要素となりつつある。影があることで、そのシーンにおける光の存在感が明確にされ、ひいてはキャラクタやオブジェクトの存在感を確固たるものにする。リアルタイムな影の存在は3Dグラフィックスにおける生命感を与えるもの……といっても過言ではないかも知れない。

 VP2でも、影生成が行なわれており、特にカットシーンでその存在感がクローズアップされる。光源方向からキャラクタのシルエットが地面に投射されているが、セルフシャドウは見受けられない。キャラクタのシルエットを投射テクスチャマッピングで描画する、簡易影なのだろうか。

庄子氏 : 「いえ、実は(笑)、ステンシル・シャドウ・ボリューム技法なんです。そうです。技法的にはセルフシャドウも出せるんですが、あえて切っているんですよ」

 ステンシル・シャドウ・ボリューム技法とは、設定した光源から見て、そのオブジェクトの輪郭となる頂点を引き延ばしてできるシャドウボリュームを元に影生成を行なっていく技法だ。この技法では、複雑な遮蔽構造に配慮した影生成ができるのが特徴で、互いに影を落とし合う相互投射影や、自身の影が自身に落ちる自己投射影(セルフシャドウ)といった影すらも生成可能な技法だ。なぜ汎用性の高い技法を活用しながら、セルフシャドウ搭載をキャンセルしてしまったのだろうか。

光源方向から見て頂点を引き延ばして影領域(シャドウボリューム)を生成するのがステンシルシャドウボリューム技法の特徴。この影領域内に入るピクセルが全て影として描画される仕組み


五反田氏 : 「せっかくライティングの結果で得られた陰影が、ステンシル・シャドウ・ボリューム技法で得られる影と合わさると影色が強くなりすぎて、VP2の柔らかいシーンと不釣り合いになったんです。ステンシル・シャドウ・ボリューム技法では、何もしないとセルフシャドウが出てしまいますから、あえて切るための特例処理を入れているくらいです」

庄子氏 : 「我々のグラフィックスエンジン自体は、『ラジアータ ストーリーズ』、『スターオーシャン3』の時代から、ステンシル・シャドウ・ボリューム技法を実装していました。セルフシャドウも出そうと思えば出せます。出す出さないはゲームデザインチームの方が判断するので、VP2は『出さないほうがいい』という判断が下されたということですね」

 セルフシャドウなしとした理由はもう1つあるという。

 PS2でのステンシル・シャドウ・ボリューム技法では、その性能的な限界に配慮して、高精度なレンダリング用モデルと低精度な影生成用モデルの2つを使い分けるケースが多い。影は大体出ていればまあ気にならない……という前提で低精度モデルを使うわけだが、これが負荷軽減へと結びつく。

 VP2ではカットシーンなどで特にキャラクタのクローズアップショットがあるため、低精度のセルフシャドウがどうしても目立ってしまったようだ。そのため、どうしてもビジュアルのデザインチームはセルフシャドウを断念し、影を地面へ落とすのみという策を採択したというのだ。

VP2でもエンジン設計上はセルフシャドウは出せた。しかし、影生成用の低精度モデルを用いてのセルフシャドウはあまり美しくないという判断が下されて結局キャンセルされた


 なお、戦闘シーンでは、ステンシル・シャドウ・ボリューム技法ではなく、ベーシックな影生成技法である丸影法に切り替わる。丸影法は、丸いシルエットテクスチャを足下に置くだけの簡易表現だが、VP2では、キャラクタのモーション制御用のボーン形状を地面に投射し、その形に沿って複数個の丸影テクスチャを置く工夫を実装しており、あたかもソフトシャドウを実現しているかのような表現となっている。この技法は「鬼武者3」などでも実装されていたもので、丸影技法よりはリアルでありながら軽い方法なので、PS2では広く用いられるようになってきている。

 VP2では、この他、木陰の下などをキャラクタが通ると、その木陰模様がキャラクタ達に投射される影表現が見られるが、こっちは投射テクスチャマッピングを使った影表現となっている。投射される木陰テクスチャはリアルタイムにシーンをテクスチャにレンダリングしたものではなく、予めデザイナーが描き起こしたそれっぽいテクスチャを用いている。

戦闘シーンでは投射したボーン形状で複数の丸影を連結させて描く応用型丸影技法に切り替わる 木陰がキャラクタに投射されているシーン この木陰表現は、デザイナーが作成したそれっぽいフェイク・テクスチャを投射テクスチャマッピングすることで実現している




■ オリジナル物理エンジンによる挙動生成

 キャラクタの動きをリアルに見せるために、これまで主流となっていたのは、実際の演技者の動きをデータ化し、それて3Dキャラクタを動かす「モーションキャプチャ」技術であった。

 これは想定されたシーンを再現するだけであれば十分な結果が得られるが、そのシーンがインタラクティブ性に満ちたものであると、不自然さが露呈してしまう。たとえば、あるキャラクタが殴られた場合、その攻撃を受けた場所が頭部か腹部かによって、攻撃を受けた側のふっ飛び方は本来ならば異なるはずだ。ところが、キャプチャされたモーションデータを再生して動きを付けるだけだと、どういう攻撃を受けても同じふっ飛び方になって不自然に見える。最新の3D格闘ゲームでも、こうした不自然な挙動を目にすることがしばしばあるはずだ。

 これからの3Dゲームは「いかにも物理してます」というアピールよりは、不自然さをユーザーに感じさせない形での「物理シミュレーション」が重要になる。VP2では、そんな形での物理シミュレーションの活用に徹している。もしかすると「VP2のどこに物理シミュレーションが?」と首をかしげてしまうユーザーもいるかも知れないが、VP2はあらゆるシーンで物理シミュレーションが積極活用されているのである。

 VP2の物理エンジンは、同社オリジナルのものを開発して使用している。衝突判定はシンプルな円柱のような単位で行なわれ、それぞれの衝突単位同士はデザイナーの手によってグラフィックスとつじつまが合うように接続されて、ボーン(骨)のように仕込まれる。また、各衝突単位のジョイント部が力点になる運動が算出されるが、このジョイント部にはバネ係数が設定でき、その伸び縮み具合が制御できるようになっている。

五反田氏 : 「我々の物理エンジンは非常にシンプルです。よく見ないと分かりにくいですが、キャラクタの服、武具類、アクセサリの動きの制御に活用されています。布などはかなり複雑な衝突単位の接続構造をデザイナーが設定してくれています。工夫としてはバネ係数の制御のところです」

キャラクタのワイヤフレームと物理属性を全表示した状態。キャラクタは主人公アリーシャ キャラクタの物理属性のみを表示したショット
リアルタイム物理処理を行なう、衣服やアクセサリ、髪の毛などの衝突形状の状態とそのリンク状態を示したショット キャラクタの身体側の衝突形状とそのリンク状態を示したショット。脇に刺した剣もここで管理されているのがわかる


アリーシャの長い髪やローブ(服)が、姿勢に矛盾しない形で動いたり、静止したりできるのは、摩擦係数を処理していることの現われ
 動きの柔らかさ表現に通ずるバネ係数だが、「動きは柔らかいがその材質は硬く簡単に伸び縮みしない材質」……たとえば服やスカートのようなものを表現する場合には、このバネ係数で動きを制御する仕組みだけでは、ゴムのように伸び縮んだり、発散した不自然な動きになってしまう。そこでバネ係数演算は行なうが伸び縮みはしない「絶対拘束」という特殊条件を設定して対処したという。

五反田氏 : 「シンプルな我々の物理エンジンですが、衝突処理時に摩擦係数の処理をやっているのが特徴といえば特徴です。これをやらないと、何もかもがみんな“ぬるっ”とした動きになってしまうんです。この仕組みの導入により、歩いてる人間の長い髪が動いていたとして、そのキャラクタが立ち止まるとその髪も肩の上でスッと静止するような感じの動きができるようになりましたね」

 この摩擦係数処理自体も、かなり簡略化した演算モデルを実装しているとのことだが、見た目ではない、動きとしての「材質感」が表現できるようになり、リアリティが各段に増したそうだ。歩くキャラクタの足にスカートがまとわりつく感じなども、この処理系で実現されている動きなので注目して見るといいだろう。VP2には布の動きを再現する特別な布シミュレーション物理エンジンは実装されていないが、基本的な衝突処理、バネ係数と絶対拘束物理のチューニング、摩擦係数処理で、布っぽい動きも再現できるようになったという。

首を激しく振るアリーシャの動きに追従する髪。その髪は肩や衣服に衝突するが、摩擦が処理されるため、ちゃんと“こすれている”ことが実感できる動きとなっている


 さて、現在の3Dゲームにおいて、キャラクタのアクションまでを物理シミュレーションで行なうのはまだまだ難しいし現実的でない。そこでキャプチャしたモーションデータでキャラクタアクションを実現するのがまだまだ常套手段となっているわけだが、このモーションデータの再生に終始してしまうと、インタラクティブシーンで、前述したような物理的に不自然な動きになってしまう。

 「ワンダと巨像」では、モーションデータと物理挙動をブレンドするような「加算モーション」という独自技術を開発してこの問題に取り組んでいた。VP2ではどうしているのだろうか。

五反田氏 : 「モーションと物理を完全に別物として処理して、最終的に合成や補完するという方式だと、結果として不自然な動きが出てきたときに対策が講じづらいんです。我々のエンジンでは、モーションデータを物理パラメータに変換して物理エンジンに食わせる形で処理しています」

庄子氏 : 「具体的に言えば、モーションのデータから、力や加速度の情報を算出して、これを物理エンジンに与えるんです」

 モーションデータは単なるジオメトリの変位データだが、これを微分すれば力ベクトルや加速度などの物理パラメータが求められる。このデータを物理エンジンに渡せば、物理エンジンでキャラクタのモーションを与えることができる。

五反田氏 : 「一方で、リアルタイム処理によって算出される物理挙動がありますよね。そのリアルタイム算出される物理挙動の影響度合いと、モーションデータから算出された物理パラメータの影響度合いを半々にすると、リアルタイム物理とモーションデータが融合した動きができあがります」

庄子氏 : 「つまり、ある意味、モーションデータがキャラクタの意志だとすれば、リアルタイム物理の挙動は、その世界がキャラクタに及ぼす物理法則というイメージですね」

 この仕組みにより、アニメーションモーションと物理シミュレーションとが自然にブレンドされ、動きが非常にリアルになる。例えばキャラクタが付けているアクセサリなどの挙動はモーションキャプチャのデータになくともリアルタイム物理シミュレーションによって動くことになるし、そのシーンに風が吹いていれば、そのモーションデータにマントの挙動情報がなくても、そのキャラクタのマントは風になびくことになる。

倒れ込むルーファス(手前の緑色の髪の男性)のモーションは、モーションキャプチャによるもの。その倒れ込んだときの彼の髪の毛の挙動は、リアルタイム物理シミュレーションによるものだ


 しかし、VP2では、演出意図により、物理法則を無視してでもモーションを再生した方がよいと判断した場合には、物理シミュレーションの影響度を下げてほぼ生モーション再生のようなシーンもあるという。また、最初は物理法則無視のモーションデータ再生100%だが、徐々に物理シミュレーションの影響力を増やし、モーション再生が終わったころに、は、物理法則に従った動きになりシーンに溶け込んだような後味にする……といった演出もある。物理シミュレーション影響率そのものを変化させるといった処理はとてもユニークだ。



■ まとめ

実際に開発機材を動かしながら、さまざまな技術を細部まで語ってくれた
 トライエースは、2006年春にXbox 360専用タイトルを開発することを明らかにしている。今後、トライエースのゲームエンジンはどうなっていくのだろうか。

 トライエースも昔はゲームプロジェクトごとにゲームエンジンを設計していたが、特にPS2時代以降、マルチプラットフォーム化や、複数のプロジェクトが同時進行するようになってからは、トライエース独自の汎用のユニバーサル・ゲームエンジンを、五反田氏自らが率いる研究開発部で開発するようになったという。

 今回は記述の関係上、「VP2エンジン」というような表現を用いる箇所もあったが、実際にはVP2はトライエースの汎用ゲームエンジンにて開発されたものだ。トライエースのPS2向け最新エンジンでは、VP2では使われていない、球面調和ライティング(Spherical Harmonics Lighting)なども実装されているという。

五反田氏 : 「新機能の開発や設計よりも大変なのは、その機能をデザイナーに使ってもらうための、ツールやDCCソフト(DCC:Digital Contents Creation;MAYA,SoftImageなどの3D製作ソフト)向けのプラグインソフトの開発だったりします(笑)。それとマニュアル作り!」

庄子氏 : 「そしてデザイナーのためのトレーニングソフトや、機能とその効果を分かりやすく見せるデモの開発ですね(笑)。結局、我々開発陣が凄い機能を作っても、それを効果的に活用してシーンを作り上げていくのはデザイナー達なんで。基本、我々は裏方なんですよ」

 現在は、タイトルやゲーム内容は明かせないが、Xbox 360用の汎用ゲームエンジンを開発しており、最初からやはりマルチプラットフォーム展開を視野に入れており、同時にその他のハードウェアへのインプリメントも視野に入れてエンジン設計を進めているという。トライエースの今後の動きに注目していきたい。



■ スペシャルムービーを公開

 トライエースのご厚意により、今回の記事で解説した表現技法を分かりやすく動画の形でまとめたムービーを提供していただいた。内容には一部、ゲームのストーリー展開に関わる内容も含まれているので、ゲームをプレイ中のユーザーはその点を理解した上で楽しんでいただきたい。

HDR表現と被写界深度の表現、物理シミュレーションをオン/オフしたものを並べて比較したムービー 同一シーンを全画面表示でまとめたムービー
[WMV9形式 SD映像: 97.4MB 10分39秒]
ZIP圧縮
[WMV9形式 SD映像: 97.4MB 10分39秒]
ZIP圧縮
[WMV9形式 HD映像: 795.9MB 10分39秒]
ZIP圧縮
[WMV9形式 HD映像: 795.8MB 10分39秒]
ZIP圧縮
※ このムービーは、今回の記事用に特別に作成していただいたもので、実際のゲームとは一部内容が異なるものがあります。
※ 下段は1080pのHD映像で、再生にはハイスペックなPCが必要になります。解像度の違いのみで、内容は上段のSD映像と同じものです。またHD映像のサーバーはトライエース様のもので、アクセスが殺到した場合はダウンロードできなくなる可能性もありますが、弊社では対応いたしかねますのでご了承ください。


(C)2006 SQUARE ENIX CO.,LTD. All Rights Reserved. /Developed by tri-Ace Inc.

□トライエースのホームページ
http://www.tri-ace.co.jp/
□スクウェア・エニックスのホームページ
http://www.square-enix.com/jp/
□「ヴァルキリープロファイル2 -シルメリア-」のページ
http://www.square-enix.co.jp/vp/vp2/

(2006年9月11日)

[Reported by トライゼット西川善司 / Photo by 石田賀津男]



Q&A、ゲームの攻略などに関する質問はお受けしておりません
また、弊誌に掲載された写真、文章の転載、使用に関しましては一切お断わりいたします

ウォッチ編集部内GAME Watch担当game-watch@impress.co.jp

Copyright (c) 2006 Impress Watch Corporation, an Impress Group company. All rights reserved.