4月4日(月)、5日(火)の2日間、東京お台場のヒルトン東京で、春恒例のUnity開発者向けカンファレンスイベント「Unite 2016 Tokyo」が開催された。本記事では「Unite 2016 Tokyo」で披露されたマーザ・アニメーションプラネット/MARZA ANIMATION PLANETの映像コンテンツ『THE GIFT』について紹介する。
TEXT & PHOTO_谷川ハジメ(トリニティゲームスタジオ)
EDIT_山田桃子
「Unity」とは、3大メジャーゲームエンジンのひとつで、日本国内では、スマートフォンなどのモバイルプラットフォーム向けゲーム開発、イコール「Unity」と言っていいほど、ここ数年来、ゲーム開発プロジェクトを席巻している。今年は「Unity」がバージョン5にメジャーバージョンアップした昨年と比較してしまうと、話題としてはどうしても小粒になってしまうものの、DGC 2016に合わせて2つのベータ版がリリースされている。また、エンジンの外堀では、ゲームデータの分析を行えるサービス「Unity Analytics」がベータを終え、正式に「Unity」エンジンと統合されたほか、チーム作業を支援する「Unity Collaborate」環境のクローズベータも開始された。さらに周辺では、GDC 2015での予告通り「Unity」開発者の技能認定制度「Unity Certification」プログラムが始動するといったニュースも発表されている。このように「Unite Tokyo」は、例年その開催がGDCの直後となることから、「Unity」を取り巻く最新の話題を日本語で入手できる貴重な機会となっているのが特長だ。
ROOM1のセッション会場風景。どのセッションもおおむね満席で人気のものは立ち見が出る場合も
「Unite Tokyo」が今年で4回目ということもあってか、ゲームではない映像コンテンツが中心セッションとして扱われるあたり「Unity」も日本向けに随分とこなれてきた印象だ。
では次項から、「Unite 2016 Tokyo」のセッションの中でもCGWORLD読者にとって最も関心が高いであろうマーザ・アニメーションプラネット(以下、マーザ)による映像コンテンツ『THE GIFT』のメイキングを解説したセッションについて紹介したい。
『THE GIFT』トレーラー
2016年の「Unite Tokyo」も、例年の流れを受けて多数のセッションが用意された。なかでも要注目だったのは、先のGDC 2016でトレーラーが公開されたマーザ・アニメーションプラネットの映像コンテンツ『THE GIFT』だ
▲左から、エフェクトを担当する小泉薫央氏(マーザ)、エンジニアの守随辰也氏(マーザ)、ディレクターの加治佐興平氏(マーザ)、石橋誠也氏(ユニティ・ジャパン)、エンジニアの松成隆正氏(マーザ)
<1>5分、108ショットを3ヶ月で仕上げたワークフローとは
「Unite Tokyo」2日目に、「映像制作のゲームチェンジャー:メイキング オブ "THE GIFT"」と題して、マーザが、前日の基調講演で初公開した3DCGアニメ映像『THE GIFT』のメイキングセッションを行なった。本講演では、マーザから加治佐氏、守随氏、松成氏、小泉氏の4人が登壇したほか、制作に協力したユニティ・テクノロジーズ・ジャパン(以下「ユニティ・ジャパン」)から石橋氏も登壇者に加わった。
『THE GIFT』本編
総尺5分、108ショットを、アーティスト30人、その他エンジニア等を加えると、約40人の体制で制作された『THE GIFT』は、総制作期間は約8ヵ月であるものの、ストーリー開発とそれに平行するリサーチとテストプロダクションに3ヵ月、GDCでのトレーラー公開までに3ヵ月、そして「Unite Tokyo」での本編公開までに2ヵ月というタイトなスケジュールだったという。
▲『THE GIFT』の制作スケジュール。当事者たちにとっては時間はいくらあっても足りなかったことだろう
『THE GIFT』の制作は、マーザの通常の制作ワークフローのうち、レンダリング用シーンの構成から、ライティング、レンダリングまでの段階を、そっくり「Unity」に置き換える形で進められた。キャラクターや、背景、エフェクトを構成するモデルやアニメーションは、マーザでの既存のワークフロー通りMayaやHoudiniで作成している。「Unity」にデータを渡すためのフォーマットに、ジオメトリのアニメーション情報を内在させたAlembicキャッシュを活用しているのも従来通りだ。
▲Alembicキャッシュを「Unity」にインポートした後、「Unity」環境でマテリアル設定をしてモデルに関連づけている
一般的なゲームプロジェクトの場合、「Unity」へのデータインポートには、Mayaや3ds MaxなどDCCツールの標準データ形式かFBXを使用するため、「Unity」は標準ではAlembicフォーマットをサポートしない。そこでマーザはユニティ・ジャパンと共同で、「Unity」用のAlembicインポーターを開発して対応している。本年1月のニュースで触れられていたAlembicインポーターは、本プロジェクトの副産物であったというわけだ。
映像業界において、Alembicが業界標準のフォーマットとまでは言いきれないが、本作のようにMayaとHoudiniとの間で頻繁にデータをやり取りする場合のほか、流体シミュレーションや大量のパーティクルエフェクト、同一モデルによる群衆アニメなどではメリットが大きい。キャラクターのアニメーションに関しても、クロスやフェイシャルでは、スケルタルアニメーションを超えるクオリティを出すことができる。さらに、シーンをレンダリングする段階では、アニメーションの計算量を大幅に減らすこともできる。デメリットとしては、頂点数やアニメーションの量、時間が増えれば増えるほど、リソースのデータサイズが大きくなってしまうことが挙げられる。
▲OpenEXR形式ではマルチチャンネルが取り扱える。コンポ前提の映像素材に有用なファイルフォーマットだ
「Unity」でのレンダリング結果も、やはりユニティ・ジャパンと共同で開発した「Frame Capturer」プラグインを活用して、OpenEXR形式で出力している。EXRは、HDRイメージを最終レンダリング結果となるFrameBufferの内容のみならず、複数のG-BufferやマテリアルIDといった情報をマルチチャンネルで1つのファイルに格納できるのが特長だ。30fps~100fpsで毎フレームリアルタイムにドローを繰り返すゲームとは異なり、複数の要素に分けて出力した素材をコンポジットして最終的な映像を得る映像制作においては、本作のようにEXR形式を採用するプロジェクトもかなり増えた。ファイルのハンドリングが簡便になり、必要になる可能性がある素材をもれなく揃えることができるというメリットがある一方、ファイルサイズが大きくなり、素材の要不要を見極めてレンダリング時間を削減するといったことがおろそかになるデメリットがある。もっとも、作品の最終品質を左右するコンポジット工程に注目して考えると、合成用素材が不足するより、終わってみればあまり活用しなかったという素材がでるくらいでちょうど良いし、コンポジットツールにEXRを取り扱いやすいNUKEを採用するマーザにとっては、デメリットよりメリットの方が大きいということだろう。
▲各プロジェクトでレンダリング対象シーンが異なるため厳密には比較できないが、それでも「Unity」でのレンダリングは圧倒的に高速だ
コンポジットが前提であり、ゲームのようにリアルタイムではないとはいえ「Unity」のレンダリング速度は良好で、1フレームあたり平均3秒、最大でも32秒で出力している。この値には、ファイルIOも含まれるから、実際にレンダリングの計算にかかった時間は、これよりも短いことになる。レンダリングの対象が異なり同一の条件下ではないものの、速度に一定の評価があるV-Rayをレンダラに使用した別プロジェクトとの比較で、平均で565倍、最大値の比較では677倍という好スコアを叩き出したというから驚きだ。レンダリングに使用したハードウェアについては言及がなかったため、どの程度の環境でのレンダリング時間かは分からないが、映像制作において十分"使える"レンダラと言えそうだ。プロジェクトの画づくりの要件を満たすなら、DCCツールと連携して動作するレンダラとの比較において、速度面では「Unity」に大きなアドバンテージがあると感じられた。
▲一連のシーケンスなど近似のシーンでソースデータを共有して省力化。マスターからのデータ収集もツールで自動化している
この「Unity」を活用した『THE GIFT』ワークフローの話題では、個々のショットを構成するシーンを、あくまでショットをベースにして組み立てているのも、映像制作会社らしい発想で興味深い。本作では、ショットありきで、そのショットの撮影を行うために必要なデータをファイルサーバから収集して、シーンを構成する仕組みが整えられている。組み立てられたシーンにライティングを施した後、レンダリングとキャプチャが行われるという流れで制作は進むのだが、一連のシーケンスでも、カメラやアニメーションを差し替えたシーンを、別のショット用のシーンデータとして複製しているのだという。
ゲームの場合、ゲームオブジェクトを配置したシーンが、唯一無二のゲームワールド(レベル、ステージ)であり、カメラやアニメーションといったデータは、ある瞬間のゲームの状態を構成するのに必要なデータの一要素にすぎない。もちろん、ゲームによっては、レベルが複数あるものも多く存在するが、カメラやアニメーションのみならずモデルが差し代わるような場合でも、ローディングペナルティでゲームプレイに悪影響がでない限り、ほぼ同一のシーンを複製して別のシーンとして用意することはない。特別な演出を行うカットシーンでもない限り、そもそもショットという概念すらない。
カメラやアニメーション以外は同じリソースデータを最大限再活用して制作工数削減に努めているといった趣旨の話題であったため、わざわざ別のシーンとして用意していることの理由は説明されなかったが、おそらくは、ショットごとに担当を割り振ってしまえば、個々の担当者が平行して作業してもお互いに悪影響を及ぼすリスクが少ないことと、基本的に同じだといっても、特定のショットに例外的な変更があっても対応しやすいからだろう。反対に、ショットごとに似て非なるシーンになってしまうリスクも増えそうなものだが、「Unity」でレンダリングしておしまいではなく、その後のコンポジットの工程がチェック機構となり最終的な画づくりの一貫性が保たれるということもあると思われた。
次ページ:
<2>アートとエンジニアリングを一体的に行うマーザの強み
<2>アートとエンジニアリングを一体的に行うマーザの強み
基調講演でマーザ代表取締役の前田雅尚氏が指摘したように、「Unity」を含めた今のゲームエンジンによるグラフィックスの進化の方向性は、比較的リアル指向が強い。それはつまり、ディズニーやピクサー、あるいは本作のような王道の3DGCアニメにとって、ゲームエンジンをレンダラとして採用することが、必ずしも最適解ではないことを意味する。それでも「Unity」を3DCGアニメの製作に活用するために、本作では専用のカスタムシェーダを書いている。
▲FurShaderは、試行錯誤のうえShell方式に落ち着いた。本作品のテイストによく合っている
「Unity」の標準シェーダを拡張した「MARZAStandardShader」では、3rdレイヤーを追加する拡張を行なっているほか、ポリゴン裏面のON/OFF、ポリゴンの動的分割を行うテッセレーション、マスクに対応するといった改良を施している。ぬいぐるみキャラクター"ポーター"の体毛を表現する「FurShader」は、シェル方式のFurシェーダとなっており、フカフカ感が高いポーターの耳元部分では50パスに渡って積層された毛並みが描かれている。毛の流れにはThe FoundaryのMARIで作成したFlowMapを参照しており、HightMapや粗密用のマップも使用するなど、かなり凝ったつくりになっている。リアルな動物の擬人化ではなく、あくまでぬいぐるみが擬人化したという設定の表現にこの「FurShader」が大きく貢献しており、作中の懸命なアクションと相まって、ポーターを愛すべきキャラクターに仕上げている。
このほかのカスタムシェーダでも、「EyeShader」にはパララックス(視差)マッピングを利用した写り込みに対する屈折の表現を入れ、「GrassShader」では前フレームをチェックして草原をソリのように滑ったあとの軌跡を表現するといったような、かなり芸の細かいシェーダによる画づくりの工夫がなされている。これらに加えて「MaskShader」では、コンポジット用にノーマル、カラー、デプスといった各種マスクを、正しく合成するためにマップのアルファを考慮したうえで出力している。
▲「Unity」環境でのライティングの調整。「HairShader」は複数のスペキュラマップに対応している
▲「Unity」が開発環境(プレビュー)とゲームビュー(レンダビュー)の双方にリアルタイム描画するため、マスクの状態もファイル出力前に視覚的に確認、調整できる
「Unity」にあらかじめ用意されているシェーダとマテリアルのみで表現できない場合に、こうして自前のカスタムシェーダを制作できる体制は大きい。アーティストのみで構成されるスタジオでは、なかなかとることができない方法論で、マーザの強みと言えるだろう。なかなかそこまでの体制が整わないスタジオやアーティストのみのインディチームの場合は、Unityアセットストアを利用して、求めるものに近いものを探すか、場合によってはPBRが適用されないUnlitシェーダ等を割り当てて、アーティスティックに描いてしまった方がいいのかもしれない。
▲各制作フェイズにおけるカラーボールの大波。画像中段のAlembicポイントキャッシュが本シーンのキモだ
上記のカスタムシェーダに加え、本作におけるマーザとユニティ・ジャパンの協業の集大成とも言えるのが、冒険のクライマックスシーンだ。主人公の女の子がポーターに抱きかかえられて巨大な毛糸玉に追いかけられるシーンの最後に、毛糸玉は大きく弾けて無数のカラーボールの大海原になる。その大海原に投げ出された女の子はいかだに乗ってカラーボールの大波に高く持ち上げられ、光るゲートに向かって急降下する――といった15秒ほどのシーケンス(3分12秒~3分26秒のあたり)では、ピーク時になんと32億ポリゴンのカラーボールがドローされている。32億個という数は、int32(符号付き32bit整数)で数えられる最大値をはるかに超えており、スタッツ表示もマイナスに転じてしまっている。ユニティ・ジャパンの石橋氏によると、このことはユニティ・テクノロジーズでレンダラやシェーダのコーディングを担当するAras Pranckevičius氏を大いに驚かせたそうだ。
▲Aras Pranckevičius氏のコメントからも、ゲームエンジン開発者にとって想定外のとんでもないポリゴン数だということが分かる
「Houdini」ウェーブデフォーマから、シミュレーションで求めた大波のアニメーションによるAlembicポイントキャッシュを生成し、各ポイントの座標にボールのモデルを表示しているというのが、このカラーボールの大海原の正体だ。最終的には、Alembicポイントを用いることになったわけだが、当初のテスト段階ではAlembicメッシュで出力しており、1万個のカラーボールをディレクショナルライトひとつの環境下でレンダリングすると1フレームあたり5秒の計算時間であったという。その段階で、Alembicメッシュのキャッシュが1万個あたり500MBと非常にサイズが大きく、100万個のボールを出すともなると、キャッシュファイルは50GBととなり、レンダリング以前の問題で到底作業が進められるとは思えない状況だった。
そこで石橋氏の示唆により、メッシュではなくポイントでデータを持ってAlembicキャッシュデータのサイズを削減し、大量のボールを高速に描画するという課題は、レンダリング時に擬似インスタンシングの手法を用いてクリアすることになった。擬似インスタンスとは、昨年の「Unite 2015 Tokyo」で石橋氏が紹介したテクニックで、できる限り多くのモデルをまとめてゲームオブジェクトを減らすと共に、まとめたモデルを一度にドローすることでドローコールの回数を減らし、結果として大量のポリゴンモデルを高速に描画する手法だ。本作では、1メッシュに1500個のスフィアが格納されており、1回のドローコールでこの1500個のボールを描画している。100万個なら670回弱のドローコールで描画できる計算になる。
▲プロジェクタの出力だとボケが出るため、これくらいのサイズでスムージングかかった状態だとローポリゴンだと分からない
▲スムーズ前の状態をワイヤフレームで表示した画像。ちょっと見にくいがワイヤフレームより小さくボールが削られているのがお分かりいただけるだろうか
こうして大量のカラーボールをレンダリングする道筋は立ったものの、速度維持のためにボール1つあたりに割けるポリゴン数の制約が厳しくなってしまった。ざっと見た感じ、ボール1個のポリゴン数は96~128といったところだろうか。いずれにしても、いくら高速に描画できるといっても、これでは目指すクオリティに達しない。この問題に対して本作では、ピクセルシェーダを使ったトリックで、なめらかな球体に見せかけるという手法をとっている。リソースデータなしに数式で表現できる滑らかなスフィアを、カラーボールの大きさより小さめにビュープレーンに投影して得られた像をカラーボールに重ね、スフィアからはみ出している部分をピクセルシェーダで削ってしまえば、スムーズに見えるカラーボールの出力イメージを得ることができるのだ。
あくまでフチを削っているだけなので、静止画をよく見ればカラーボールに当たった光の反射からポリゴン数が少ないことがわかってしまうのだが、最終映像のように動きのあるシーンでブラーやデプスによるボケが入ってしまえば、まったく気にならない。
こうして制作された『THE GIFT』には、制作目的の中に確かに技術デモという側面はあるものの、ストーリーありき、見せたい絵面ありきで、それを実現する方法論として技術の裏打ちが存在している。『THE GIFT』は、映像で人を楽しませることができる映像制作スタジオならではの、誰もが理解できる喜怒哀楽にあふれた作品に仕上がっているのだ。
▲『THE GIFT』を生み出したマーザの総合力。今後「Unity」コミュニティに貢献すべく本作のキャラクター、ポーターのデータをシェーダと合わせてWebで公開するとのこと
本レポートでお伝えしたセッションのほかにも、「Unity」自体の情報アップデートのほか、GDCで価格と発売日が明らかになったばかりの「Playstation VR」や「Oculus Rift」、「Gear VR」といったVR HMDにおける「Unity」開発の話題、未確定ながら5月にも正式なリリースが予定されている「Unity」の新しい2Dツールや「Live2D」、日本の人気モバイルコンテンツのメイキングセッションなど、どれも外せない話題ばかりでどのセッションを受講すればいいのか本当に悩ましかった。
今現在も、当日ライブ配信されたセッションの模様をtwitchのユニティ・ジャパンページから視聴することができる。4月下旬には、さらに映像が追加公開される予定になっているので、見逃したセッションの動画公開を待ちたい。
-
「Unite 2016 Tokyo」
会期:2016年4月4日(月)~4月5日(火)
会場:ヒルトン東京お台場
japan.unity3d.com/unite/unite2016