西川善司の3Dゲームファンのための「OROCHI」講座スクエニも採用した純国産のオールインワン型ゲームエンジンの実力を探る!シリコンスタジオ本社ゲーム開発には定番の処理系というものが存在する。それらはグラフィックス処理だったり、サウンド処理だったり、ネットワーク処理、ゲームコントローラからの各種入力処理、ストレージデバイスへの入出力処理など様々なものがあるが、こうしたものは各ゲームスタジオではライブラリの形でまとめて社内で共有利用されることが多い。ゲームハードウェアは、世代を改めるごとに機能を上げ、その仕様も多様化しており、自社で全てへの対応を賄うのが難しくなってきている。そこで特定分野において特に技術力の高かったソフトウェアスタジオが、ゲームに求められる特定機能を高機能かつ使いやすくまとめ、しかも多くのプラットフォームで共通的(あるいは透過的)に利用できるライブラリに再構築して商用リリースをし始める。これがゲーム開発向けミドルウェアの始まりだ。360といった現世代機の時代になり、ゲーム開発規模はさらに大きくなってしまったのはご存じの通り。そこで、特定機能だけでなく、「ワークフローまでを含んだゲーム開発全体の面倒を見るゲームミドルウェア」の重要性が叫ばれるようになる。これらは、それまでのゲームミドルウェアと呼び分ける目的と、ゲームを動作させる根幹駆動部分という語意を汲んで「ゲームエンジン」と呼ばれるようになる。現在、こうしたゲームエンジン分野で高い実績と強いブランド力を持っているのは欧米の有力、実力スタジオ達だ。Engine」(CE)シリーズは、まさにその代表格と言える。Technologiesの「Unity」も、欧米発のゲームエンジンとして今や無視できない存在となっている。一定の成功を収めている、こうした欧米の有力エンジンとは別に、日本でも、ネームバリューの高いゲームエンジンはある。Studio」、コナミ・小島プロの「FOXエンジン」などの新勢力にも注目が集まりつつある。これらはいずれも、実力派の大手ゲームスタジオが、自社向けに開発したゲームエンジンであり、前出のUE、CE、UNITYのような商用ゲームエンジンではない。それでは、日本発の商用ゲームエンジンはないのかというとそんなことはない。昨年、電撃的に発表された「OROCHI」がその1つだ。ストラトス」に採用されるなど、早くも実績を上げつつある。講演を行った時の筆者。手術を行った左側の耳元から首までが写っているのだが、遠目にはほとんど傷跡が分からない。実際、頬の腫れはほとんど引いており、10cm近い縫い目に沿ってもっこりとしているくらいで、周りの人に訴えかけるような痛々しさは消えた。左目の目蓋の神経が完全には回復していないため瞬きがしづらい。「ストリートファイター×鉄拳」の勝率が50%未満なのはきっとそのせい......と自分に言い聞かせている(笑)。タヒル氏(シリコンスタジオ、リサーチ&デベロプメント部、第1ソフトウェア開発グループ)シリコンスタジオといえば、「YEBIS」、「HOTEI」、「BISHAMON」といったように七福神シリーズのネーミングが与えられたミドルウェア群が有名だが、「OROCHI」というネーミングにはどう言った経緯で付けられたのだろうか。新井氏:OROCHIは、弊社で単体リリースをしているYEBIS、BISHAMONなどをも統合したオールインワンエンジンです。YEBIS、BISHAMONまでを取り込んでしまう大きな存在といったイメージを込めて八岐大蛇(やまたのおろち)をモチーフにした名前としました。弊社で、製品名にこうした和名を付けているのには、ゆくゆくは本格的な海外展開をしていったときに、「日本」を意識してもらいたいという意図があります。「いかにも日本語的な響き」のネーミングがなされることが多いんです。筆者がOROCHIを初めて知ったのは2011年2月末にサンフランシスコで開催されたGDC2011でのことだった。この時点では、参考出品という形での展示だったが「日本のシリコンスタジオが手がける純国産の新世代オールインワンゲームエンジン」という触れ込みが大きく取り沙汰されたため、多数の問い合わせが寄せられることとなったようだ。初公開から1年も経たない2011年11月には正式リリースされている。新井タヒル氏(以下、新井氏):よく今世代のゲーム開発に対し「日本の開発スタイルが海外に遅れをとっている」といわれてきましたが、実際の技術レベルという意味では、それほど欧米に対して遅れているという印象はなかったんです。「ゲームエンジンを活用する」という発想の導入が遅れていた、というのは実感していました。自社ライブラリの構築がない新興ゲームスタジオでは、今世代のゲーム開発をゼロから行なうのは、開発効率の観点からすると大きなリスクを背負うことになります。いうのも、自分は、このOROCHIプロジェクトの立ち上げ直前まで、実際の今世代機向けのゲームタイトルの開発に携わってきた開発者、プログラマでした。ゲームエンジンの必要性は、自分自身、現場で痛感していたんです。新井氏はシリコンスタジオに移籍する前は、日本の某ゲームスタジオに所属しており、1番開発が大変だったと言われるPS3初期のタイトル開発にも従事していた経験を持つ。OROCHIプロジェクトの土台は、実は、新井氏のこの時の経験をベースにしており、さらにいえばOROCHI開発チームのコアメンバーの多くは、元々実際に日本のゲーム開発シーンで現場開発を担当してきた精鋭で構成されている。360といった今世代機向けゲーム開発の黎明期の修羅場を見てきたエンジニア達の手で開発されているという点で、OROCHIは、日本のゲーム開発者からの共感を得やすいというのはあるかも知れない。ゲームエンジンといえば冒頭で述べたように欧米の方が本場だ。ブランド力も欧米の著名エンジンの方が強い。「純国産」にこだわって「後発」で投入することに、どう言った狙いがあるのか不思議に思う読者もいることだろう。これについては、新井氏の実体験がきっかけになっている。新井氏は、ゲーム開発現場にいた際、実際に海外ゲームエンジンやミドルウェアの評価を行なった経験があったという。その際に、何らかの問題が発生して、ゲームエンジン側/ミドルウェア側の対応が必要になった時に、海外製ゲームエンジンでは言語と時差の壁で対応がスムーズに行きにくかったという。したトラブルが、マスターアップ直前のような、開発が佳境に差し掛かった時に発生した場合にはプロジェクトそのものが死活問題となる。ゲームエンジン/ミドルウェアの世界では、クライアントの現場で根が深いトラブルが起きたときには、実際にそこに技術者を派遣してトラブル対策に当たると言うことも珍しくないが、さすがにそうした対応は海を越えて行なわれることは少ない(時間的にもコスト的に難しい)。その点で、OROCHIには「地の利」があると言うわけだ。新井氏:OROCHIは日本で開発していますし、販売も日本企業のシリコンスタジオが行なっていますから、そうした問題にも柔軟に対応できるわけです。欧米のゲームエンジンは、当然、欧米のゲーム開発スタイルに合わせた仕様・設計になっていることも、新井氏が「国産のものが必要」という考えに至ったきっかけになっている。いうのも、欧米のゲーム開発では仕様を厳格に決定して、いうなれば工場的に製作を進めていくスタイルが主流だ。日本の開発シーンではアート系出身のプロデューサー、ディレクターが多く、とりあえず絵を出しながら、ゲームの仕様を詰めていく......というような「トライアンドエラー」スタイルの開発が好まれる傾向にある。新井氏:OROCHIではそうしたトライアンドエラーがやりやすいワークフロー/フレームワーク設計にしており、日本のゲーム開発シーンにマッチさせています。欧米発のゲームエンジンは、欧米の開発スタイルを高効率化させるコンセプトで開発されている。一方でOROCHIは、日本の開発スタイルに適合する形で設計されている。OROCHIの開発メンバーが、今世代機向けのゲーム開発の修羅場をくぐり抜け来た強者達であるため、日本のゲーム開発シーンで起こりうるトラブルに対処しやすいというのは確かに強みになる。OROCHIには「“知”の利」もあるといっところか。Vitaへの対応を完了。続いて、OROCHIの開発ターゲットや対応プラットフォームを見ていくことにしよう。OROCHIが開発ターゲットとして想定しているのは「大規模開発チーム向け」で、大作ゲーム、ハイエンドゲームの開発に特化して設計されている。Unityを初めとした昨今のゲームエンジンは「中小規模開発チーム向け」、「カジュアルゲームからハイエンドゲームまで開発可能」といった点をウリにしているが、シリコンスタジオは、この分野については既に「ALCHEMY」というゲームミドルウェアを提供している。シリコンスタジオのエンジン戦略は、OROCHIとALCHEMYで全分野をカバーするという格好になっている。360の他に、WindowsベースのPC、そしてPCベースのアーケードゲームシステムなど。11世代へのグラフィックスへの対応も謳われている。Uへの対応も進められているようだ。スマートフォン、タブレット端末などへの対応スケジュールは明らかになっていないが、OROCHIで開発したハイエンドゲームをそうしたモバイル機器へ展開していくための道筋(具体的にはポーティングするための術)の提供については行なっていきたい(新井氏)とのことだった。Vitaの3プラットフォームで実行したときの様子。同一のクオリティだが、影の解像度やポストプロセスの数などに違いが見られる。ここまでのクオリティで全プラットフォームで動かせるのであればマルチプラットフォーム対応エンジンの実力としては申し分がない。スクウェア・エニックスが「ガンスリンガーストラトス」をOROCHIベースで開発中OROCHIが「和製ゲームエンジンとして凄そう」ということは何となく見えてきたが、「エンジンがいくら凄くてもゲームが凄くなければ意味がない」と思い始めた読者もいることだろう。気になるのは、現状、「一体、どんなタイトルへの採用が決まっているのか」という部分だ。この問いかけへの明確な回答は、通常は得られないことが多い。いうのも発表前のゲームプロジェクトの存在を明らかにすることは、一般的には御法度とされるからだ。1タイトルだけ、シリコンスタジオとゲームスタジオ側のご厚意により、正式リリース前のタイトルながら、OROCHI採用タイトルの情報開示を頂けた。それは、スクウェアエニックス制作、バイキング開発で開発が進められている「ガンスリンガーストラトス」だ。新井氏:2011年春頃から採用の検討を頂き、その後、採用頂きました。2012年夏リリースというプロジェクトだったため、開発期間が短かく、我々OROCHI開発チームがアーケードが初めてだったので大変な案件ではありました(笑)。OROCHIの洗練度を上げる意味合いからすれば、我々にとっては絶好の機会になったと言えます。360のような今世代の据え置き型機のハイエンドゲームを開発するためのゲームエンジンとして設計されていたために、オブジェクト数が1,000を超えたり、4GBの物理メモリをフルに活用するゲーム開発は想定されていなかった。アーケードゲームのガンスリンガーストラトスはPCベースのシステム基板で動作するために、まさしくそうした想定外の開発となったのだ。OROCHIは、この「想定外」を経験し、乗り越えたことで、次世代機に向けて鍛えられたということなのだろう。採用の決め手の1つはOROCHIのグラフィックスエンジンだったと新井氏は振り返っている。Pre-Passレンダリングベースのグラフィックスエンジンが丁度適合したことも決め手となったようだ。【OROCHIに統合されたBISHAMONとYEBIS】ガンスリンガーストラトスのエフェクトはほぼ全てがOROCHIに統合されたBISHAMONによるものポストエフェクトはOROCHIに統合されたYEBISによるもの。このフォトリアル表現はましさくYEBIS特有のテイストだ新井氏:いかにもスクウェア・エニックス作品らしいといいますか(笑)、「ガンスリンガーストラトス」は半透明オブジェクトの描画が非常に多いんです。Pre-Passレンダリング手法とは相性がよくないのですが、これは通常のForwardレンダリング手法のパスをも組み込む事で対処しています。この辺りの最適化やカスタマイズには我々OROCHIチームが協力しています。新井氏は、OROCHIのゲームエンジンとしての基本設計が高く評価されただけでなく、BISHAMONとYEBISのフル版の両方が統合されている点も高く評価された、と振り返っている。CLOTH」を採用しており、この他、オクルージョンカリング処理系のためのミドルウェア「Umbra」を採用している。当初、OROCHIは、こうしたミドルウェアへの組み込みは想定していなかったが、OROCHI開発チーム側で、これらのミドルウェアを組み入れて協調動作させるためのカスタマイズを施している。新井氏:「ガンスリンガーストラトス」は4コアCPUのシステムで動作しており、そうしたミドルウェア群のスレッドと、我々のエンジン側のスレッドが、CPUコアを奪い合う局面がどうしても起こります。このプロジェクトでは、そうしたスレッドチューニングなどにも我々OROCHIチームが協力しています。最終的にはOROCHI側の描画スレッドを最優先としながらも、あいているコアがあればそれらを他ミドルウェアにも使わせる設計としました。現在、「ガンスリンガーストラトス」は、開発担当のバイキングと制作担当のスクウェア・エニックスの二人三脚で、ゲームのチューニングやコンテンツ制作が着々と進められており、OROCHI側の「ガンスリンガーストラトス」のための調整作業などは一段落しているとのこと。「ガンスリンガーストラトス」のグラフィックス技術の詳細については、回を改めて、開発元のバイキング、制作元のスクウェア・エニックスの双方に取材を敢行する予定なので、ご期待頂きたい。前段でも少し触れているが、OROCHIのグラフィックスエンジンは、いわゆるDeferred系のレンダリングパイプラインを採用している。本連載読者ならば、ご存じの人も多いと思うが、Deferred系のレンダリングパイプラインは、欧米スタジオはもちろん、日本スタジオでの採用例を増やしている先進的かつ流行のレンダリングメソッドになる。Lighting)の2タイプがあり、OROCHIでは後者を採択していることになる。両者共通しているのは、最初のジオメトリ・レンダリング時に、材質表現ピクセルシェーダーを動作させるために必要な中間パラメータ群を算出してしまう点だ。この出力には、MRT(マルチ・レンダー・ターゲット)と呼ばれる、1回のレンダリングで複数のレンダーターゲットに出力してしまうGPUの特殊機能を利用する。9世代GPUでは4枚まで、DirectX10世代以降のGPUでは8枚まで)のテクスチャ(レンダーターゲット)に出力してしまい、後段のレンダリングパスではこのパラメータを使って高度なピクセルシェーダを動作させる。Renderingでは、MRTでライティングに必要な最低限の中間パラメータをテクスチャに出力し、このパラメータを用いてライティングだけを先に行なって、材質表現のためのピクセルシェーディングはさらに後段で行なう。左上から順にデプス、法線。最初のレンダリングパスのMRTにてこの2つの情報をそれぞれのレンダーターゲットに出力。Occlusion)の出力。左がディフューズ(拡散反射)計算後の結果、右がスペキュラ(鏡面反射)計算後の結果。ライティング計算をこの時点で行なう。Pre-Passレンダリングと言うのだ。左がライティングまでの流れ。右が不透明オブジェクトのシェーディングフェーズ、半透明オブジェクト処理、最終合成までの流れ共に一長一短があるが、両者共にパフォーマンスの許す範囲で動的光源数を無制限で配置できるという長所があり、これが豊かなライティング効果を生む。昨今、好んでDeferred系の採用が目立っているのはこの利点が高く評価されているためだ。360の両方でのタイトル開発を経験したエンジニアが行なっており、両プラットフォームで高いパフォーマンスが発揮できるように最適化が行なわれています。OROCHIでは従来のForward系のレンダリングパイプラインも利用できますし、Deferred系と組み合わせることもできます。開発するゲームグラフィックスの仕様に応じて選択することが可能となっています。Vitaにおいては、Forward系のレンダリングパイプラインを推奨していますね。3のようなシェーダーオーサリングツールのようなものではなく、ツールに内蔵されている多様なシェーダ群を活用し、それらに対して自在なパラメータ調整を行なう事で任意の質感を作り出していくような、日本のゲームスタジオのアーティストが得意とするワーキングスタイルに適合した設計になっている。ツールに内蔵されているシェーダ群はゲームグラフィックス作成で想定される多様なものがプリセットされているが、これをプログラマが独自に新規開発し、新シェーダパーツとして追加していくこともできるようになっている。「時間方向の見た目」を司るAIと物理シェーダーを駆使して実現される質感表現は、それこそ現在の主流ハードウェアでできることはほとんど出尽くしたのではないかというほど、熟成されてきているが、ことに時間方向の見た目、すなわち「動き」の進化については、まだ発展途上だともいわれる。そこで、昨今のゲーム開発シーンにおいて、重要度が高まっているのが、モーション(アニメーション)やAI、そして物理シミュレーションといった「動き」にまつわる要素だ。PhysXを採用している。Bulletを衝突処理に採用したのは、Bulletが全プラットフォームで動作が安定しているため。その他の要素をPhysXで制御するようにしたのは、PhysXが各プラットフォームでよく最適化されていてパフォーマンスが高いためだと説明されている。「ガンスリンガーストラトス」のケースがそうだったように、すでに、自社で構築している物理シミュレーションライブラリや、他社製の物理シミュレーションミドルウェアを利用することもできる。物理オブジェクト操作ツール。OROCHIには衝突形状を設定できるユニットコリジョンツール、物理パラメータを設定できる物理オブジェクト操作ツールといった物理関連ツールが用意されているそして、近年、物理シミュレーションと並んで、重要視されてきているのはモーション(アニメーション)要素だ。同じ「動き」を司る要素であるため、物理シミュレーションと似通った部分も多々あるが、異なるのはこの要素がキャラクターの「意志」を伴った「動き」であるという点だ。この要素は、プロシージャル的に、エンジン側の制御に委ねてしまえば終わりというものではなく、多分に開発サイドのアートセンスや演出面での作り込み要素が必要になる部分でもある。この要素に対し、OROCHIは、2つのモーションをブレンドしたり、あるいは2つのモーション間を滑らかに繋いて補間するツール、モーションを複数繋いだ連続アクションを作成するツールなどを提供している。【モーション関連のツールの画面】モーションシーケンス編集ツールキャラクターの「意志」にまつわる「動き」要素として、モーションに並んで重要となるのは「AI」だ。AIはキャラクタの「意志」決定などを司るロジックであり、モーションよりも、より大局的視点な動き制御になる。大ざっぱなものでいいかというと、そういうわけもなく、いわばゲームロジックの根幹になり得る要素であるため、ゲーム進行に直接影響し、そのゲームの面白さを左右する要素にもなりうる。この難しい「AIの設計」というテーマに対し、OROCHIでは、AI設計用ライブラリを提供するだけでなく、ユニークなAI作成用ビジュアルツールをも提供している。これはフローチャート的なGUIベースでAIが作成できるツールで、関数と関数を結びながらAIロジックを設計できるものになる。関数は基本的なものは標準状態でプリセットされているが、プログラマが独自の関数を設計して追加することもできる。「プリセットはあるが、新機能はプログラマが自在に追加できる」という設計方針はシェーダーツールと同じだ。ビジュアルAIツールは、デバッグ機能もかなり強力で、実行のトレースやブレークポイントの設定も、このフローチャート上で行なえるようになっている。したGUIベースのツールは、小回りが利かなそうなイメージがあるかもしれないが、実はOROCHIのビジュアルAIツールは、内部処理的にはスクリプト言語に1対1に対応する作りになっているので、プログラマがスクリプト言語で直接ロジックを書くこともできる。よって、大まかなロジック設計を、仕様書などを元にしてプランナーやゲームデザイナが作り込んで、細かい仕上げをプログラマが担当するといった開発スタイルを取ることもできることだろう。【ビジュアルAIツールの画面】ビジュアルAIツールの画面。特殊機能は豊富なツール群でサポートOROCHIの開発コアメンバーは、実際のゲーム開発現場を経験したり、あるいは実験的な研究開発を経る中で、様々な開発支援ツールを作り出している。OROCHIでは、それらを支援ツールの形で提供しており、その数は40種類以上にも及ぶ。ユニークなものとしては、DCCツール使用経験がないプランナーレベルでも触れる簡易マップエディタがある。これはブロックパーツを置いていくだけでマップ製作が行なえるものでプロトタイプ検証用におあつらえ向きのものだ。新井氏:リアルタイムグラフィックスで表現されるイベントシーンを製作するためのリアルタイムデモエディタも用意しています。これは、「ガンスリンガーストラトス」の開発ではエフェクトやサウンドなどの付随オブジェクトを発生するツールとしても重宝されました。本来想定していた使い方とは違ったんですが(笑)。【オブジェクト配置ツールの画面】OROCHIならではの機能というところではリアルタイム天球生成エンジン、独自のフォント描画システムなどがある。前者は地球上の任意の経度緯度、時刻を設定すると、その空模様の天球が描画できるというもの。実際の地球上を舞台にしたオープンワールド系のゲームで、空模様を正確に再現したい場合には役に立ちそうだ。ゲーム中の会話シーンや、ムービーシーンなどで描画する字幕文字をシステムフォントではなく、オリジナルの書体で表現できるものだ。文字に至るまで雰囲気作りを行ないたいという場合には有用な機能となる。実はOROCHIは、この春に、比較的規模の大きいバージョンアップを行なっている。その内容は多岐にわたるが、次世代機までを見据えた機能強化といえそうなポイントが2つある。11世代技術への対応と64ビットOSへの対応だ。11世代技術への対応」というのは具体的にはポリゴンのプログラマブル分割/変移機構であるテッセレーション・ステージへの対応のこと。9世代グラフィックスであるため、OROCHIにおけるテッレーション対応は、ワンポイントリリーフ的な対応に留まっている。具体的には、入力された3Dモデルを自動的により滑らかなモデルに変形させる機能として実装されているようだ。Embeddedベースのアーケードシステムへの対応や、次世代機を見据えるうえでは必須事項となってきたためだ。32ビットシステムでは、基本的には4GBの物理メモリ空間までしか扱えないという制約がある。4GBというと、単一のゲームプログラムの実行空間としてはまずまずの大きさだが、開発/テスト時にツール群を常駐させる領域(いわゆる開発メモリー領域)を確保することも考えるとそろそろきつくはなってきている。オール64ビット化の流れは遅かれ早かれやってくるので、OROCHIでは早々とこの命題に取り組んでしまったと言うことだ。64ビットシステム対応は、部分的に32ビットモジュールを残したりするとややこしいことになるので、エンジンを構成する全モジュールを64ビット対応化しなければならず、意外に大変なことなのだが、OROCHIではひとまずの対応作業を終えたようだ。おわりに~メイド・イン・ジャパンの強み取材風景OROCHIは「純国産」を前面に押し出したゲームエンジンであり、他社のゲームエンジンや欧米製ゲームエンジンに見劣りしないほどの高機能ぶりに圧倒されるわけだが、新井氏自身は、なによりも日本のゲーム開発スタイルに適合することを第一に設計してきたということを強く訴えていたのが印象的だった。OROCHIのスペックを1つずつ見ていけば確かに高機能であり、最新技術トレンドを一通り網羅していることに気づくが、それらは別にハイスペックとなることを目指して設計されているのではないのだ。日本の開発者が使って「高機能である」と実感できるようにデザインされており、いわばここがOROCHIの1番の特徴であり強みなのだ。新井氏:OROCHIは「カスタマイズ性に優れているエンジン」として訴求していますが、これは「お客さん側で自在にカスタマイズできる」ということだけをいっているのではありません。「ガンスリンガーストラトス」の開発ケースがまさにそうでしたが、お客さん側の要望に応える形で我々がカスタマイズして差し上げられるというような部分もウリだと考えています。したサービスまでを提供できることこそが、エンジン開発拠点が日本にある「メイド・イン・ジャパンの強み」なんです。