ストラトス」は久々のジャパンパワー炸裂のアーケードゲームだといえるんではなかろうか。FPSじゃなくてTPSスタイルとなっているところも日本人フォーカスな作りといえる。対戦ツールとしても魅力的で、この夏盛り上がること間違いなし。「ファイナルファンタジー」シリーズからゲストキャラとか参戦してきたら面白そう。二丁拳銃のキャラはいたよな、確か。全てがリアルタイムシャドウ!デプスシャドウ技法の概念図。ストラトス」ではキャラクター達が空中高くジャンプすることができるため、その空間的な位置把握に「影」の情報は重要になる。本作では、背景のビル群が破壊されていくため、ビル群が太陽光をうけて地面に投射する巨大な影についても、事前計算で焼き込んで置くことができない。ビルがとっくに崩れてしまっているのに、ビルの影が地面に残っていたりしては不自然きわまりないことになってしまうからだ。ストラトス」では、全ての影について動的な生成が求められた。そこで採用したのは、カスケード型のデプスシャドウ技法だ。デプスシャドウ技法はシャドウマップ技法とも呼ばれる動的影生成手法で、そのシーンの遮蔽構造分布情報となるシャドウマップをレンダリングすることから始まる。シャドウマップは光源位置から見たシーンの深度情報(奥行き情報)をテクスチャにレンダリングすることで求められ、最終的なシーンのレンダリング時には、各ピクセルの描画を、そのシャドウマップを参照して、そのピクセルが第三者に遮蔽されているか(影になるか)かどうかを判断しながら行なう。近距離と遠距離のシャドウマップ生成される影(左)、最終映像(右)視点から見たシーンの遠い情景、近い情景のそれぞれに個別のバッファを割り当ててシャドウマップを生成するのがカスケード型のデプスシャドウ技法になる。ストラトス」では、カスケード数は遠近の2枚構成としながらも、そのそれぞれのシャドウマップサイズには4,096×4,096テクセルの大容量バッファを割り当てている。Filtering:PCF)を適用することで、生成した影のジャギーを低減させるソフトシャドウ処理も行なっている。鈴木孝司氏(バイキング、テクニカルプログラマー・ゲームデザイナー)。家庭用ゲーム開発、アーケードゲーム開発の双方に従事し、国内外の最新技術に造詣が深い。鈴木氏:かなり影の生成負荷は高くなってしまいましたが、これによって建物が破壊したときの破片の影までを出せています。本作では太陽光の平行光源がもたらす大局的な影生成以外に、各所で発生する動的な点光源が全方位に動的な影生成を行なっています。武器発射時の閃光や爆炎が放つ光が、このタイプの動的な点光源で、これが全方位の影生成をもたらす。Maps)機能が用いられる。した動的点光源からの影生成は、局所的な範囲に限られるので、それほど高い解像度のシャドウマップは必要ないが、ゲームの性格上、シーン中のそこかしこで発生することになるのでやはり負荷は高めだ。この点光源処理は、頂点演算の負荷と、Drawcallが爆発的に増えるため、残念ながら最終的に実装は見送られている。【点光源による全方位影生成(動画)】ビーム砲を撃ったあとの瓦礫の影に注目。ストラトス」は、実在の街を舞台に、超人的な能力を持つキャラクター達が地上や空中で激しいガンアクションを展開するゲームだが、その重要なサブテーマに「破壊のカタルシス」が掲げられている。いったものから、数十階建てのビルを丸ごと破壊することもできるようになっているのだ。巨大な建造物の破壊は戦略的にも意味があり、ビルに大穴を開けてそこに隠れて敵を狙撃することができる。逆に、狙撃されている立場からすれば、そのスナイパーが隠れているビルを崩してしまうことで敵を日の当たるところに引きずり出すことができる。ストラトス」の破壊表現は非常に壮大であり、60インチの大画面にも映える。同一シーンの同一ビルであっても、着弾位置やその攻撃の当て方によっては毎回壊れ方が違うため、最近にわかに脚光を浴びつつある「ノンリニア破壊」表現を実現しているように見える。DESTRUCTION」になる。ノンリニア破壊表現と言っても、実際には、事前に破壊対象の3Dモデルを事前に壊れる最小単位で分割しておく必要があるのはいうまでもない。分割前のビル(左)、そのワイヤーフレーム(右)分割後のビル(左)、そのワイヤーフレーム(右)橘川優樹氏(バイキング、プログラマー)。バイキング入社以前は証券系システムの開発に従事していたという異色の経歴の持ち主。稲田義信氏(バイキング、プロダクションリーダー、スーパープログラマー)。尾畑氏と同じくカプコンにてキャリアを積み、多数の著名アーケードゲームの開発に携わる。DESTRUCTIONは、破壊前モデルから破壊後モデルの設計と調整を使い慣れたDCCツール上で行なえるプラグインツールが充実しているので採用を決めました。破壊後モデルの破壊分割粒度や分割のされ方などはアーティストさんの方で行なってもらっています。そのモデルの各部位においてそのツール上で表現したいマテリアルごとに細かなFracture(裂け目)パラメータなどを設定すれば半自動での分割が出来ます。ガラスは細かく分割、コンクリートは大きな塊で分割といったこともある程度は効率的に行なえるんです。開発最初期に、1つのビルを1,000個の破壊単位に事前分割して、実際にランタイムで破壊を実践するデモを行なってみたところ、わずか2fpsしかでなかったという。稲田氏:それでも、この時の「破壊の爽快感」はインパクトが大きくて、あきらめられなかったんですよ。1,000分割というのをいかに妥協せず、パフォーマンスを上げられるかという視点で改良と最適化を重ねていきました。結論から行けば、大きなビルは、今でも1,000分割で破壊します。2fpsから30倍のフレームレート60fpsに上げるための工夫の数々は、いかにもゲーム開発技術的なアプローチで興味深い。最初から1,000個に分割して壊れるのではなく、段階的な破壊の概念を導入した。1度に破壊・分解するのではなく、まず、衝撃が発生した箇所で最初は大きな破片として壊れるようにし、その大きな破片同士が衝突しながら崩れ落ちていくことで段階的に細かい破片へ破壊していくように制御したのだ。壊れはじめのリアルな破片(フラクチャー)モデル(左)と、そのワイヤーフレーム(右)【デブリ】ある程度破壊したら、共通破片モデル(デブリ)に置き換えてしまうことで処理や描画を高速化(左)、そのワイヤーフレーム(右)さらに、細かい破片に破壊していったときに、ある程度の大きさの破片になってからは消失させたり、あるいは、本作の破壊表現で共通的に利用される破壊エフェクトに差し替える工夫を盛り込んでいる。した破壊エフェクトになれば、表示される破片モデルの1つ1つは重複しだすので、描画時にはインスタンシングが利用できるようになってジオメトリ負荷を低減させることができる。大きな破片では、衝突をちゃんとその破片モデルの形状に基づいて取らなければならなくなるが、破壊エフェクトに移行させてしまえば、簡略化されたパーティクル的な衝突処理に移行させられる。これはCPU負荷の低減に大きく貢献する。橘川氏:こうした工夫の数々で、2fpsになってしまった1,000分割破壊実験時に優るとも劣らぬ大規模な破壊表現を60fpsで実現することができました。自動車などの一部の大道具オブジェクトはパーツ分解破壊は行なわれず、破壊エフェクトを発生させたあと、破壊後のモデルに置き換わるのみです。破壊表現は「曲がって破壊する」というような、進化の余地はまだ残されているとは思いますね。CLOTH」が利用されている。これは基本的には頂点単位の物理シミュレーションとして作用し、各キャラクター達の衣服や頭髪の挙動制御に応用されている。CLOTHの実行はGPUではなく、CPUの方で行なわれている。ストラトス」において、プレイヤーが常時眺めることになるのは、プレイヤーキャラクターのアクションになる。同じくらい意識を集中させて見ることになるのは、攻撃対象の敵キャラクターだ。性別や体格の差はあるにせよ、登場キャラクターは、我々に馴染み深い人間キャラクターなので、より自然でなければならないし、その上でゲームとして面白みのある派手さも要求される。機体がほとんど変形しない戦闘機による空中戦ではなく、肢体が変形する人間による空中戦となるので、「モーション」や「アニメーション」のクオリティは、本作のビジュアル面において重要なウエイトを占めることになる。奥井健氏(バイキング、癒やし系プログラマー)。バイキング以前はバンダイナムコゲームスで家庭用、アーケードの著名タイトルの開発に従事。奥井健氏:ダメージ(やられ)モーションの一部などにはモーションキャプチャーを適用したものもありますが、基本的にモーションはアーティストによる手付けでの制作となっています。ストラトス」では、多数の武器が登場し、ほぼ全てのキャラクターが人型とはいえ、その数も多い。そのため、全キャラクター用のモーションを、全パターン手付けで作り込んでいくことは現実的ではない。そこで、本作では、ユニークなプロシージャル・モーション(アニメーション)生成技術を開発して組み込んでいる。それが「差分モーション」という概念だ。基準となる直立で歩いているモーションと、上半身が傾いているモーションがあったとして、両者の差分をデータ化する。このように、基準モーションから、変化分だけを抽出したこのモーションデータを開発チームでは「差分モーション」と呼称していた。上半身が傾いている動作の差分モーションを直立で歩いている基準モーションに対して加算すれば上半身を傾けながら歩いているモーションの生成が行なえる。「当たり前のことだ」と思うかも知れないが、この差分モーションを、今度は直立姿勢で走っている基準モーションに足したらどうなるか。上半身を傾けながら走るモーションが生成できるのだ。同様に銃を構えながら走っている基準モーションにこの差分モーションを足せば上半身を傾けつつ銃を構えて走るモーションが生成できる。このように、差分モーションの概念は、基準モーションと組み合わせることで、多彩なモーションのバリエーションを生成したり、あるいはモーション同士を合成したりすることに役立つのだ。基準モーションとターゲットモーションから差分モーションを抽出する工程は事前に行なっており、ランタイムでは、一連のプロシージャルモーション生成処理のみが行なわれる。ストラトス」で採られた手法と、いわゆる「モーションブレンド」と比較してどんなメリットがあるのだろうか。モーションブレンドとは、最も基本的なプロシージャルモーション生成処理で、2つのモーションを重み付けを行なって合成する技術だ。これを使っても同様なことができるように思える。ストラトス」におけるキャラクターモーションでは「差分」を選択したのだろうか。稲田氏:モーションブレンドは、例えばモーション1とモーション2があったとすれば、基本的にはその2つのモーションの間の動きしか取ることが出来ません。差分モーションの場合は、その差分モーションを加算する際に100%以上の比率を用いることで、例えばモーション2の動きを超えるような表現も可能なんです。正面方向を0度として、腕を90度広げる動きを差分モーションで表現したとする。腕を120度広げる必要がある場合、差分モーションの概念ならば、腕を90度広げる差分モーションに対して少しバイアスを掛けて適用するだけで実現できる。実際に、同じ事をモーションブレンドでやってやれなくもないだろう。結局、概念的には差分モーション的な処理を行なうことになる。した差分処理をランタイムでリアルタイム処理するよりは、事前に差分モーシヨンとして管理していた方がスマートだし負荷も低い。奥井氏:この差分モーションの概念上で、1キャラクターに付きおよそ10種類くらいのモーションが常にブレンドされています。具体的には同時に10個のモーションが並列再生されていて、そのうちの上半身だけ使ったり、下半身だけ使ったり......といった感じですね。7つの構えの差分モーションを、ブレンド率を調整して合成して生成している。ストラトス」で、こうした複雑なモーション制御を採用したのにはまだ理由がある。その1つは、本作では、2丁のガンデバイスを使うことに起因している。本作では、両手に持った二丁拳銃で、それぞれ異なる場所を狙うことができるため、プレイヤーの両腕の動きをトレースするようなモーションをゲーム中のキャラクター達に適用することが求められる。その上で、跳んだり跳ねたりの地上戦×空中戦が行なわれるわけで、非常に複雑かつ多数のモーションを合成する必要に迫られたのだ。Kinematics:逆運動学)制御で済む。ストラトス」のような、正真正銘のパラレル二丁拳銃のガンアクションではそうもいかなかったのだ。稲田氏:本作は二丁拳銃で狙って撃つというゲームシステムの関係上、「攻撃を喰らいやすい」という特徴があります。攻撃を喰らってそこから「攻撃喰らいモーション」が発動して動けなくなると攻撃を受けたプレイヤーにとってはストレスが溜まります。逆に、なんのダメージレスポンスもなくケロっとされていては、攻撃を当てた側の爽快感に影響します。ストラトス」では、攻撃を受けながらも、ある程度反撃が行なえる「ながらダメージ」というシステムを導入しています。この「ながらダメージ」システムは、開発途中までは、攻撃を受けたことによるラグドール表現と、攻撃を維持しようとするモーションを合成するような処理系を盛り込むことでユニークな動きの表現が実現されていたのだが、最終版では、固定のダメージモーションを全身に対して少しだけブレンドする手法に変更された。360を遙かに超えるハイスペックなPCアーキテクチャベースのアーケードシステム上で動作するというだけでなく、家庭用ゲーム機とは異質な2丁拳銃システムを採用したゲームタイトルとなったことで、生まれたての国産ゲームエンジン「OROCHI」にしてみれば、相当、過酷なプロジェクトだったに違いない。ストラトス」という新ゲームの実現に向けて高いパフォーマンスを要求し、自前の独自技術や各種ミドルウェアを走らせることまでを達成してしまったわけで、そこからは「生粋のゲームデベロッパの心意気」を感じる。ストラトス」は、7月12日より、日本全国のゲームセンターで稼動中だ。