3月14(月)〜18日(金)にかけて米サンフランシスコで開催された、世界最大のゲーム開発者会議Game Developers Conference 2016(GDC)。今年のハイライトとなったのはもちろん、今春にコンシューマー製品がローンチされるVR(Virtual Reality)関連の情報だった。
今年から新設されたVR専門トラック「VRDC」を含め、会期中に40を超えるVR関連セッションが行なわれたことからも、GDC 2016におけるVRへの過熱ぶりが伺える。
▲VR特化型のトラック「VRDC」。どのセッションも関心が高く、満席が続いた
様々なメーカーが新製品や試作品を展示するEXPOでも、半数以上のブースで何らかのVRヘッドセットやVR関連デバイスを見ることができた。広くコンピューターグラフィックス業界全体においても、VRという新しい媒体の登場は、いよいよ無視できない社会現象になりつつあるという印象を強くした。
▲会場内ではどこに行ってもVRHMDを用いた展示を見ることができた
一方、既存のフラットスクリーン向けのコンテンツについても、最新の知見が得られる技術セッションを複数見ることができた。特に勢いがあったのが、近年になって多彩なジャンルの最新ゲームタイトルを多数投入しているUbisoftによるセッションだ。
UbisoftはPS4・Xbox Oneといったいわゆる"次世代機"への完全移行を完了しており、これらの最新ゲームプラットフォームの持つマシンパワーを活かしたゲームグラフィックス技法の開発・応用に対して抜きん出た積極性を見せている。
本稿ではそんなGDC 2016のVRおよびハイエンドゲームグラフィックス関連セッションから、特に先駆的と見られる2例をピックアップしてご紹介したい。
フォトグラメトリーによる緻密な環境データをリアルタイム描画した「Everest VR」
実写に基づくVR映像は、ノンゲーム系VRコンテンツにおける王道の表現方法といえる。ステレオカメラや360度カメラで撮影された無数の"VR体験コンテンツ"が、Google CardboardやSamsung GearVR、ハコスコ等のスマホ向けのコンテンツとして既に大量制作されているという現状からも、それは明らかだ。
とはいえ、実写系VRコンテンツにはユーザーがVR空間内で自発的に動きまわることができない、という致命的な弱点がある。つまり、撮影した映像を視聴するだけの体験になってしまい、"ユーザー自身がその空間に参加する"という、本来的な意味でのVRのコンセプトを実現できない。
ユーザー参加型のVRを実現するためには、リアルタイム3DグラフィックスによるVR映像が必要になることは明らかだ。そこに、実写による説得性の高い映像の力を組み合わせるにはどうすればよいか。そこに一つの答えを出したのが、VRコンテンツ開発のスタートアップ企業Solfar Studiosと、映画「エベレスト」のVFXを担当した企業RVXによる共同プロジェクトで実現したVRデモ「Everest VR」だ。
▲実写と見紛うほどのリアルタイムグラフィックスを実現した「Everest VR」
ルームスケールVRを謳うHTC Vive向けのコンテンツである「Everest VR」では、エベレストの山頂付近にある複数の名所・難所を乗り越え、登頂を目指すというユーザー参加型のVR体験を楽しむことができる。その映像は実写さながら......というよりは実写そのもののリアリティだ。これを実現した背景には複数の最新技術・ゲーム系技術の応用がある。
▲EVEREST VR first look
▲「Everest VR」のストーリーボード。山頂付近のキャンプから難所を越え登頂するというコンセプトになっている
フォトグラメトリーによるエベレスト山頂の精密サンプリング
「Magical Realism: The Art of Creating Everest in Your Living Room with VR 」と題するセッションで明かされたところによれば、"実写さながら"のエベレストをコンピューターグラフィックスとして制作するにあたり、フォトグラメトリー(Photogrammetry)技術を用いた。
フォトグラメトリーとは、複数の観測点から撮影した写真を元に、撮影対象の立体構造を3Dデータ化する技術。高精細な写真を大量に解析することで高精細なメッシュとテクスチャデータを得ることができるが、その実現には最新のアルゴリズムと大量の計算時間が必要になる。
▲フォトグラメトリーの概略
そこで本プロジェクトでは、Designing Reality社のソリューションを利用。28コアのCPU、128GBのRAMに、大量のSSD、GeForce Titan Xを6枚搭載したワークステーションを用い、数万枚の撮影データを解析。数ヶ月をかけて1兆5000億ポリゴンのメッシュデータに落とし込んだ。
Designing Reality
http://www.designingreality.co/
データの粒度には場所によってかなりの差がある。データ全体としてはエベレスト山脈全体を覆うほどの広い範囲がカバーされているが、実際のデータ量的には、山頂付近のプレイエリアにデータのほとんどが集中している。クローズアップされることが前提のいくつかのシーンについては、山脈全体よりも多くのデータを用いているというから面白い。
▲写真素材の撮影にあたっては、徒歩による接写と、ヘリによる広域の撮影の両アプローチが採られた
Unreal Engine上でリアルタイム描画
この膨大なデータをゲームエンジンであるUneal Engineでリアルタイム描画するために、さらなる工夫が行われている。
まず、データを扱いやすくするため、シーン全体をおよそ1500万ポリゴンづつの126個のパッチに手作業で分割。山頂付近についてはもともとのデータ密度が非常に濃いこともあり、パッチの分割はかなり細かくなっている。その中で遠方にしか表示されないとわかっている部分については、ノーマルマップをベイクした。
▲遠景部分はごく大雑把な分割になっているが、 山頂付近は非常に細かくパッチが分割されている
▲プレイエリアに相当する部分では、山脈よりも多くのポリゴンが1つの構造に割かれている
それでも、近景として表示される部分のジオメトリ量は膨大だ。ターゲットマシンのスペックはGeForce GTX 970を搭載したごくふつうのゲーミングPCであるので、大胆な最適化が必要。特にプレイエリアに重なる部分は、プレイ中に様々な距離・角度で表示されるため、動的なLODレベルで表示される必要がある。そこで活用されたのが、ゲーム業界で広く使われているジオメトリ最適化ソリューションの「SIMPLYGON」だった。
SIMPLYGON
https://www.simplygon.com/
ゲームエンジンへの組み込みが前提となっているSIMPLYGONでは、シーンの必要性に合わせたLODレベルに調整されたメッシュデータを半自動的に生成し、グラフィックスエンジン上で適切なLODレベルでの描画を行なうことができる。セッションで示された例では、山頂付近のメッシュについて5つのLODレベルが用意されており、132,000ポリゴン~7,000ポリゴンと、かなりの幅を持たせてある。
▲SYMPLYGONによるLOD生成
ここまでの最適化を加えても、一般的なゲーミングPCでのリアルタイム描画は不可能だ。シーン全体が非常に巨大で、特にテクスチャデータ(全マテリアルで8Kの高解像度を使用)が24GBにも及び、とてもビデオメモリに収まらないためだ。そこで使用されたのが、ゲーム向けのテクスチャ圧縮とストリーミングのソリューションであるGRAPHINEのGranite。このソリューションによりテクスチャデータを8分の1に圧縮し、GTX 970のビデオメモリ(4GB)上での動作を可能とした。
GRAPHINE Granite
http://graphinesoftware.com/granite
また、写実的な空の描画には、シミュレーションベースの天球描画ソリューションであるSIMUL trueSKYを用いている。
SIMUL trueSKY
http://simul.co/truesky/
▲SIMUL trueSKYによるシミュレーションベースの天球と雲の描画
このように非常な高品質のグラフィックスを実現した上で、さらにパフォーマンスを高めるために用いられたのが、NVIDIAのゲームグラフィックス支援技術である「GAMEWORKS」のMultires Rendering機能だ。これは複数解像度での描画を、1パスで実現する技術。VR特有のレンズ歪みにより描画ピクセルが潰れてしまう視野の端部分を、はじめから低い解像度で描画するという最適化を高効率に実装することができる。「Everest VR」ではこの技術の活用により、レンダリング時間を1~2ミリ秒削減できたという。その削減分はもちろん、高品質化に向けられる。
▲レンズ歪みによって潰れてしまう部分を、低解像度でレンダリングすることによる最適化
NVIDIA GAMEWORKS
https://developer.nvidia.com/gameworks
HTC ViveやOculus RiftといったPC用VRシステムでは90fpsでの描画が基準となるため、1フレームの描画に使える時間は10ミリ秒ほどしかなく、非常に厳しく描画効率を求められる。「Everest VR」はその制限の中で、実写と見まごうばかりの高品質な風景を、リアルタイムグラフィックスで表現することに成功している。その実現に寄与した上記のような各技術は、今後様々なVRコンテンツの制作に活用されていきそうだ。
▶︎次ページ:︎リアルタイムアニメーション技術に斬新な手法を持ち込んだ「For Honor」 [[SplitPage]]
リアルタイムアニメーション技術に斬新な手法を持ち込んだ「For Honor」
カナダに大型の開発拠点を置くフランスのゲームデベロッパー・パブリッシャーのUbisoftは、2016年内の発売を予定しているPC/PS4/Xbox One用のアクションゲーム「For Honor」で非常に斬新なモーション遷移システムを実装している。
Ubisoftで10年のキャリアを持つアニメーションプログラマーのSimon Clavet氏が「Motion Matching」と呼ぶこの手法では、歩く・走る・止まる・方向転換等の各モーション遷移について、人の手による作業をほぼ完全に排除した。
▲「For Honor」。中世の騎士・侍・バイキングがソードファイトを繰り広げるアクションゲーム
▲For Honor Gameplay - Multiplayer Walkthrough - E3 2015 [Europe]
従来の考え方では、各モーションはあらかじめ適切な長さのモーションクリップに手作業で分解され、遷移図上でそれらのクリップを適切につなぎ合わせることで各モーションの遷移をプログラムしていた。この場合、モーション間のつながりを自然に見せるためには、遷移が生ずるモーションクリップ間の"出口"と"入口"が、人の手で丹念に調整されていなければならない。ユーザーの入力が介在しないカットシーンなどでは、各モーションが生ずる(遷移する)タイミングをアニメーターが全て制御できるため、この手法で問題はない。
しかし、ユーザーの入力に機敏に反応しなければならないアクションゲームでは、従来の手法では限界がある。アニメーションを自然に見せることを優先すれば、規定のモーション遷移タイミングを尊重することになり、操作性や自由度が低下する。ユーザー入力への反応を優先すれば、モーション間のつながりが不自然になることを許容したり、移動方向とキャラクターの動きが合っていないタイミングが生ずるような部分を許容するほかなかった。アクションゲームにおけるアニメーション表現の歴史は、この限界を、モーションクリップ数や遷移パターンを増やしたり、補完アルゴリズムを高度化させることによって「ごまかす」ことに終始してきたといってもいい。
これに対して「For Honor」で実装された「Motion Matching」アルゴリズムでは、全く異なるアプローチでリアルタイムアニメーションを生成する。
▲非常に自然なつながりを見せるモーション遷移
このアルゴリズムで使用するデータは、「走る」、「平行移動する」、「武器を構えて歩く」、「武器の持ち手を変更する」といった、ゲーム中で生ずる様々な動きを、アクターがそれぞれ数分間も変化をつけながら繰り返した、ひとつながりの長大なモーションクリップだ。
▲本作のために行なわれたモーションキャプチャセッション。一種類の動きを数分間も繰り返し、それを丸ごと収録する
本作のアニメーションエンジンは、ユーザーの入力に応じて生ずるキャラクターの姿勢・移動速度・方向・回転速度等の移動パラメーターをもとに、全てのモーションデータの中から最も適切な1フレームを選択し、遷移させる。この処理は毎フレーム行なわれるため、いついかなるタイミングでユーザーの新たな入力が生じても、常に自然なつながりを持つアニメーションが再生される。
▲ユーザー入力に応じて将来の移動方向を予測し、それに近い移動結果が得られるフレームが優先的に選ばれる
なお、数分~数十分にも及ぶモーションデータの全検索を正面から行なうのはさすがに負荷が高いため、モーションデータの各フレームには、検索時に用いられるパラメータが予め紐付けられている。そのフレームにおける両足や武器の位置、移動ベクトル、将来の移動方向といったものだ。これを現時点のフレームにおけるそれとマッチングさせることで、最適な遷移先フレームが見つけられる仕組みだ。
▲姿勢、勢い、各部位の動作方向などがパラメータ化されており、検索のために使われる
▲モーションフレーム検索の精度や動作遷移の自然さを高めるため、ゲーム側で大胆に移動方向の予測を行なっている
一方、剣を振る、防御するといった移動以外のアクションについては、ゲームデザイナーによる緻密な調整を可能とするため、基本的には事前にプログラムされた遷移パターンを尊重するつくりになっている。この場合は事前に人の手で切り分けられたモーションクリップが用いられるが、各アクションの合間に細かく発生する移動アクションについてはMotion Machingが働くため、いわゆる「待機アニメーション」を挟む必要なく、自然な動きのつながりと、機敏な操作性が実現される。
▲攻撃等のアクションについてはゲームロジック優先型の遷移手法が採られている。手付けしたイベント情報等による割り込みも可能
▲本作におけるアニメーション全体の処理パイプライン
このように「For Honor」で実装されたMotion Matchingアルゴリズムはアクションゲームのアニメーション表現に一石を投じる革命的な手法だが、唯一の難点は膨大なモーションキャプチャセッションの実施が必要となることだ。
つまり、完全に自然な動きを実現するためには、ありとあらゆるシチュエーションに対応した動きがあらかじめ収録されていなければならないが、事前にそのすべてを把握することが難しい。1度のモーションキャプチャセッションで全てをカバーすることはできず、動作テストを行いながら不自然な動きをするパターンを見つけ、その穴を埋めていくために追加のモーションキャプチャセッションを実施する必要があるというわけだ。
このため「For Honor」の開発チームでは、週に1回、繰り返しモーションキャプチャセッションを実施し、モーションの穴を埋めているという。こういった負担が生ずるため、本手法を本格的に利用できるのは大手スタジオに限られる可能性があるものの、ゲームにおけるリアルタイムアニメーションをひとつ上の次元に引き上げるポテンシャルを秘めた手法であることもまた間違いない。
TEXT & PHOTO_佐藤カフジ