スクウェア・エニックス研究開発部開発ディレクター藤井栄治氏
|
CEDEC最終日,スクウェア・エニックスの研究開発部による
「Natural Expression 自然な表現を目指す」と題した講演が行われた。
最初に登壇したのは開発ディレクターの藤井栄治氏。まずは,なぜNatural Expressionが重要なのかについて語った。
Natural Expressionを直訳すると,そのまま「自然な表現」となるのだが,Naturalの意味として「加工されていない」というものを強調していたことから,加工されていない→手を加えなくていいようなデータを自動生成していくことを目指すもののようだ。
つまり,スクウェア・エニックス社内には,職人級の優秀なアーティストや技術者がいるわけだが,モーションキャプチャで取り込んだアニメーションデータはアニメータが修正していき,クロス(布)シミュレーションでドレスから膝小僧が飛び出していたら,手作業で修正しなければならないだろう。ゲーム作りには先ほどの例でいうとNaturalでない処理が多く,職人の技が必要な処理が多いのだという。だが,職人を増やすのは簡単ではない。
また,CG制作部分でいうと,機器やソフトのコストは下がっているのに人件費が跳ね上がってきているという。これを,高性能化し続けるハードウェアのパワーをうまく利用することで抑えられないかというのが基本命題だ。やや意外なことに,効率化によるコスト削減の試みの一環で最先端技術開発が進められているようだ。
そういった自動化に関してスクウェア・エニックス社内ではいくつかの取り組みが行われているようで,今回はグローバルイルミネーション関係,音声認識関係の2種類について発表があった。
GPUによる演算でグローバルイルミネーションを
スクウェア・エニックス研究開発部シニア・ソフトウェア・デザイン・エンジニア大垣真二氏
|
CEDECをはじめ,技術系のイベント取材では何度か紹介したことのある大域照明:グローバルイルミネーションは,柔らかく自然な陰影を作るため,最近では必須事項となりつつある技術といえるだろう。スクウェア・エニックスでは,非リアルタイムCGでの,高精度なグローバルイルミネーションを用いたレイトレーシングの演算をGPUベースで行うシステムを構築しているという。
冒頭に示されたレンダリング例では,1000万フォトンを使ったフォトンマッピング(光源から光子をばらまいて,オブジェクト表面に明るさをマッピングする手法)によるグローバルイルミネーションの画像が紹介された。普通にレンダリングすると1時間かかるデータらしいが,フルHD解像度でGPU6台(後半の説明でQuadro Plex FX5800となっていたので,GeForce GTX 280相当と思っておけばよい)を使って30秒ほどでレンダリングするという。
続いて,システムの特徴についての解説が行われた。パラメトリック曲面(ベジエ曲面やスプライン曲面など)を直接レンダリングする処理系を作り,3Dツール上でパラメトリック曲面ベースで作ったモデリングデータをポリゴンデータで入力して,またパラメトリック曲面に変換してレンダリングするといった流れのようだ。このシステムでは並列度を上げるため,幅優先のレイトレーシングを採用しているとのこと。
レイトレーシングでは,各ピクセルに向かって視点からレイ(光線)を飛ばしていくわけだが,そのレイが反射を繰り返して,光源に到達したときに最終的な色が決定する。この通常の方式を深さ優先とすると,幅優先というのは1点ごとに端から完全に輝度演算を進めるのではない方式のことである。幅優先や深さ優先というのはツリー探索などでよく使われるアルゴリズムの違いだが,レイトレーシングの場合,まず1次レイを各ピクセルに飛ばして,反射面上からの2次レイ以降も段階的に全体を1階層ずつ処理していくのが幅優先レイトレーシングに相当する。
レイトレーシングに使用するレンダリング方程式をノイマン級数展開すると,反射次数ごとの級数として再定義されるので,それぞれの次数についての処理が可能になる(らしい)。
ここで面白いのが最適化のアルゴリズムである。スクウェア・エニックスのシステムでは,蜂須賀恵也氏のコヒーレント レイトレーシングの手法が用いられているという。これは幅優先で得られた各ピクセルごとのばらばらのレイをざっと集めて,同じ向きのものをまとめて計算するという手法だ。
|
|
通常はこのように1点からたくさんのレイを順に出して処理 |
|
|
同じ方向のレイをまとめて処理 |
飛ばしたレイも,反射光,ディフューズ光,屈折光など,同じ種類のものをまとめて処理
|
|
また,どの部分かはよく分からなかったのだが,キャッシュ・オブリビアス・データ・レイアウトが取られており,ヒルベルト曲線に沿ったデータ配置が行われているとのこと。ヒルベルト曲線は,平面ないし空間を端から再帰的に一筆書きで埋めてくれるアルゴリズムで,空間を1次元的に再定義でき,空間的に比較的近くのものが前後にきやすいので,キャッシュの利きがよいなど,重宝されている方式だ。1次レイの飛ばし順と,フォトンマップを回収する際のレイの飛ばし順でもヒルベルト曲線が使用されているという。
開発状況を見ると,まだ全体が完成というわけではないようだが,すでに実用段階にあるようで,(さらっと流していたが)年内に発売されるタイトルで使われるとのこと。プリレンダームービーの作成以外に,ベイク用のライトマップ作成などにも使われるということ。
ちなみに,NVIDIAが
「レイトレ始めました」といったニュースが先日あったように,NVIDIAは以前からGPUを用いてレンダリングを行うアプローチをGelatoというプロジェクト名で推進している。これを使うとMAYAなどからはそのままレンダリングできるはずなのだが,これを使わないのかと聞くと「Gelatoより全然速いです」とのこと。どうも,かなり高度なグローバルイルミネーションを要求しているようで,それなりの最適化をしてないと実用性にも影響してくるのだろう。また,このレンダリングの技術は将来的にはリアルタイム化を目指すようで,5年後のハードウェア(ゲーム機とはいってなかったが)でリアルタイム処理させることを目標としているという。
リップシンクの自動化
スクウェア・エニックス研究開発部テクニカル・スーパーバイザー井上仁氏
|
続いて行われたのは,音声認識に関する研究だ。
これは,リップシンク,つまり,声優がしゃべったセリフの音声とゲームキャラクターの口の動きをあわせる作業を目的としたものだという。最近のゲームは,たくさんのキャラクターがしゃべりまくったりするので,この作業はかなりの労力を要するものになっているだろうことは容易に想像できる。
セリフごとに口の動きをあわせ,視線や表情のアニメーションを決めていく。この作業は熟練したCGアニメータ3名で行われていたそうだが,1秒あたり0.6人日,つまり一人あたり1日1.6秒分の処理しかできなかったのだという。チームで1日5秒ずつ。これは自動化したいと思うのも無理はないだろう。
声優のしゃべったセリフから適切な口のアニメーションを生成するというというのは,簡単なようで難しい。いろいろな方式が試されたようだが,たくさんの声優による音声データから単一の音素データベースを作って汎用に適用するような方式は,データを増やすほど逆効果になったとのこと。声優一人ずつで音素データベースを作ると精度は上がったが,声優それぞれについての作業が必要になる。単語単位でデータベースを作っていくと,ほぼ100%の識別率にはなったものの,手間がかかりすぎて実用的ではないとのこと。最終的には,声優単位で処理する方式が現実的という判断になった。
識別エンジン自体を自社で作ったり,既存のエンジンを検討したりした結果,最終的に選ばれたのはNHK技研が提供しているエンジンになったそうだ。将来的に逐次型の処理を検討していたことに適応できるほか,データの形式や音響モデルの適応化法が開示されていたことなど,そして自社製より有意な差があったことなどによるという。
このシステムができたことにより,従来と比べてコストは1/8になり,クオリティ向上も実現したという。今後発売されるタイトルでは,このシステムが適用されているとのことで(FFシリーズでも使われるとのこと),カットシーンを見る機会があったら,裏でこのようなシステムが動いているのだということを思い出してみよう。
スクウェア・エニックスでは,これら以外でも自動化による処理の拡充を予定しており,とくに「バーチャル・アクター」と予定に入っている部分など,群衆,モーション,フェイシャルアニメのそれぞれについて,キーフレームを廃したアニメーション生成を可能にするものということなので,かなり期待大である。より有効な部分に職人技を投入できるようになれば,ゲーム自体のクオリティ向上も期待できるという。今後のさらなる研究にも期待したいところだ。