2008年の設立以来、「"Entertainment in Real life" エンターテインメントで日常をより楽しく、より素晴らしく」をMissionに掲げ、新しい発想のモバイルゲームを世に送り出し続けているコロプラ。
同社は2021年からUnityのレンダリングパイプラインをUniversal Render Pipeline(URP)へ本格移行し、デモアプリの開発を通して様々な表現のR&Dを続けてきた。そして去る1月24日(火)、そのデモアプリが、短篇アドベンチャーゲーム『PRINCIPLES』として配信開始された。
CGWORLD.jpでは、「モバイルゲームグラフィックス最前線」と題して、背景やVFXの技術的な取り組みについて複数回にわたって紹介してきた。今回はその集大成として、『PRINCIPLES』の開発の経緯と、開発中に生じた課題やその解決手法について改めてふり返ってもらった。
関連記事
・ボリューメトリックフォグも、シャドウもブルームもあきらめない。コロプラにUnity URP移行の今を聞く
・「HDRPの表現をURPでも可能にする」URPへの移行を実現したコロプラの次の挑戦とは?
・技術開発を自己満足で終わらせない。コロプラ技術デモにおけるVFX表現の取り組み
・新作アプリ体験会で感じた、コロプラの次世代のモバイルゲームグラフィックス開発への意欲
Information
Recruiting Information
コロプラでは3Dアーティストを募集しています。当社はこれまで常に最新のテクノロジーと独創的なアイデアで、人々が見たことのない"新しい体験"を届けることに挑戦してきました。"新しい体験"を私たちと一緒にゼロから創りだしていただける3Dアーティストの方のご応募をお待ちしております。
技術デモをアプリとしてリリースする試み
大下岳志氏(以下、大下):1月にリリースされた『PRINCIPLES』について、まずは公開おめでとうございます。大きな反響があったと聞いています。先鋭的なタイトル開発においては苦労も多かったと思いますが、今回は開発中に発生した技術的な課題とその解決方法について、広くお話を伺えたらと思います。
大下岳志/Takeshi Oshita
ユニティ・テクノロジーズ・ジャパン株式会社
クリエイターアドボケイト
unity.com/ja
秋友 覚氏(以下、秋友):ありがとうございます。『PRINCIPLES』は本当に大変なプロジェクトでした。綺麗にまとまった良い話として仕立てても良いのですが、やはり気になるのは成功例ではなく苦労話や解決策の方だと思います。今日はそのあたりをお話しさせてください。
秋友 覚/Satoru Akitomo
株式会社コロプラ
テクノロジー推進本部技術研究部 部長
秋友:コロプラでは、『PRINCIPLES』のプロジェクトが発足する前からレンダーパイプラインのカスタムを行なっていました。
モバイルゲームでコンソール級の表現を追求する試みは2019年頃、LWRP(軽量レンダーパイプライン)の時代から行なっていて、CEDEC 2019では「コロプラの開発中タイトル事例 〜Unity最新技術でコンソール級のモバイルゲームを実現〜」と題して、SRP(スクリプタブルレンダーパイプライン)を使った表現に関する発表も行いました。
大下:技術デモとしても素晴らしいですが、アプリとしてリリースする判断でハードルは大きく引き上がったのではないでしょうか。
秋友:単純な技術デモよりハードルは何段も上がりましたね。リアルタイムで動作する必要があり、カメラ移動ができるため全方向で嘘がつけない。でも、アプリにした方が「使える技術になる」と思ったんです。
結果的には、ポケットから端末を取り出してすぐにお見せできるデモンストレーションとしてすごく役に立ちましたし、開発においても技術習得という意味ですごくいい経験になりました。
大下:背景だけでなく、キャラクター表現やVFX表現まで含めてトータルでクオリティを引き上げているのがすごいと思いました。背景が先行したとのことですが、他のパートに関する研究開発も盛んだったのでしょうか。
秋友:『PRINCIPLES』と同時リリースした『MONSTER UNIVERSE』で使われている背景は、CEDEC 2019で公開したモデルがベースになっています。2019年の段階でレンダーターゲットや動的テクスチャなどのカスタマイズは行なっていました。
秋友:その後、2020年から2021年にかけてボリュメトリックフォグやオブジェクト破壊などのVFX表現を研究し、続いてキャラクター表現にも着手しました。その内容はCGWORLD.jpで紹介していただいた通りです。
これらを全部載せたアプリとして、リリースするまでは反応があるか不安だったのですが……おかげさまで無事に公開でき、国内外から大きな反響を得ることができました。
背景における課題と解決法:AAAタイトルに匹敵するライティング表現
北村康高氏(以下、北村):背景における課題については私からお話しします。皆さんがお手元で見ているアプリの画面に着地するまでは紆余曲折があったのですが、最も苦戦したのは「ライティング」です。
当初はAAAタイトルに準ずるライティングの知見がなかったので、ライトの重複の問題や暗部の階調、明暗がパッキリしているところでキャラクターとの整合性が取れないなど、様々な課題が発生していました。
北村康高/Yasutaka Kitamura
株式会社コロプラ
テクノロジー推進本部 横断アート部
大下:ライトの重複の問題というと、各ライトの影響範囲が重なりすぎて負荷が上がっていたということでしょうか。
北村:それもありますが、そもそもライトを置きすぎていたんですね。ライトの重複については、影響範囲を検知できるような可視化ツールを作成しました。また、負荷問題については、途中からハイエンドなPBR環境でライティング業務を行なってきた経験者からアドバイスをもらったりしながら、最適化を進めました。
大下:素晴らしいですね。可視化ツールはテクニカルアーティストの方が作成されたのでしょうか。
桐山明人氏(以下、桐山):アーティストから「ライトの問題を解決するために必要なツールを作ってほしい」というオーダーが来たので、エンジニア側で作成しました。その後、実際に使ってもらいながら「こういうふうな見え方が良い」「こういう機能が必要ですよね」といったやり取りをしながら組み上げた感じです。
桐山明人/Akito Kiriyama
株式会社コロプラ
テクノロジー推進本部 技術研究部 開発効率化グループ
桐山:コロプラではセクションを問わずプロジェクト単位でチームを組んでいるので、アーティストとエンジニアは日頃からカジュアルにコミュニケーションしています。こういう見え方はどうでしょう、ツールが必要だからつくりましょう、というシンプルな話だったと認識しています。
大下:アーティストとエンジニアが検討し、即時的にフォローできる体制は良いですね。また、ハイエンドのノウハウをおもちの方がアドバイスをしたとの話題も、それをすぐに活かせる体制だったのは素晴らしいと思いました。
北村:このほかにも、以前の記事でもお話ししたように、リアルタイムGIの解像度不足によるライトリークやベイク時間の長さ、ファイルサイズが問題になっていました。
Unityのイベント「SYNC 2022」でも発表しましたが、これはProbeベースのGIを内製することで解決しています。自分たちでGIをつくるという貴重な経験が積めましたし、アーティストが使いやすいProbeのソフトブレンド・ハードブレンドなどの調整機能を用意したことで画づくりも向上したと思います。
北村:ただ、ここ最近はUnityの新機能「Adaptive Probe Volume(APV)」が非常に良くできており、Probeのオフセットやライトリークなどもカバーされています。次にモバイル開発を行うなら、APVを使うことも視野に入れたいと考えています。
大下:APVはHDRPから始まって、続くかたちでURPにも実装される予定です。このAPVに限らず、今回の試みの中で実装された機能に類似したものがワンテンポ遅れてUnityにも実装されることが多々ありましたね。
北村:確かに、私たちも機能開発をするときは「今後そういう機能が出るかも?」と常に話題にしていました。でも、その瞬間の生産性が重要なので、必要なものはつくります。ノウハウも溜まりますしね。Unityの標準機能のアップグレードは、私たちも本当に楽しみにしています。
秋友:仮に類似する機能が公式からリリースされたとしても、それはまったく問題ありません。「つくったものがもったいない」ではなく、品質が上がって、公式のサポートもあるのであれば、それで浮いた時間で別の知的好奇心を満たすようなメンバーが多いんです。ツールや機能はあくまで手段であって、目指すべきゴールはより良いゲームの体験をつくることです。
VFXにおける課題と解決法:Houdiniの導入とPBR環境の画づくり
桐山:VFXの方も、課題は山積みでした。以前のインタビューで、破壊表現をHoudiniで行なった事例を取り上げていただきましたが、初期の頃はHoudiniを実践的に使うこと自体にハードルがありましたね。
桐山:モデルの分割や断面の処理、UV展開、メッシュの出力など、個々のステップでやり方を調べるのに時間がかかってしまい、実際に試してみても「思ったような破片にならない」ということが頻発しました。1つ1つは解決策があるのですが、暗中模索な感じはありました。
大下:Houdiniは自由度が高いため、目的を達成する方法も複数ありますよね。効率のいい方法、悪い方法、それぞれで目的を達成できてしまうぶん、チームの中で標準的な解決策を構築することは大切だと思います。
桐山:結局、自分たちでの情報収集には限りがあったので、途中から外部の方にアドバイザーとして入っていただきました。自分たちである程度まで触って理解して、その後アドバイザーに相談して最適化を図るようなかたちで進行しました。
大下:一度覚えれば他のところに応用が効くので、アドバイザーの手を借りて自分たちの中にルールを作るのは効率が良いと感じました。
桐山:VFXについても、PBRかつHDR環境での画づくりの知見がなかったので、「作ってみたはいいが、画が破綻していた」というケースも多かったです。
代表的なところでいくと、Unlitシェーダでつくった発光する爆発エフェクトが露出補正の影響を受けてしまって白飛びするなど、表示したエフェクトと背景の干渉がありました。
そのほか、LDR環境のグローなどをそのままもってきたら破綻してしまうなど、環境に応じた変化の想定が難しかったですね。
大下:エフェクトの場合、「明るいところだと目立たなくて暗いところだと目立つ」だと困る部分もありますよね。物理的に正しいだけでは、ゲームとして成立するルックにならないこともあると思います。
桐山:人間の目の特性を正直に反映すると、「爆発」は瞳孔が絞られるために周りの背景が暗くなり、光だけが目立つことになってしまいます。でも、ゲームのレンダリング処理としては、周りがバッと暗くなる処理はしていません。ゲーム画面の中で美しくエフェクトが出るように嘘をつくことが重要で、全て正確に計算するのが最良ではありませんでした。
秋友:物理的な正しさは重要ですが、あくまで「その世界での正しい見せ方、ゲームの中の物理」として考えるほうが良いと思います。普遍的な物理現象だけを追うのではなく、今回は『PRINCIPLES』の中での正しさを追求しました。
大下:タイトルごとに正解が存在するので、ここは手を動かさないと判断できない部分だと思います。
桐山:また、HDR環境を正しく扱えていないバグも発生していました。例えば「ラジアルブラーをかけるとブルームが消える」という現象は、ブラーに使っていたレンダーテクスチャがHDRではなかったことが原因でした。
桐山:また、「本来は黒い煙が白くなってしまう」という現象も発生しました。
いくら検証してもUnityのFrame Debuggerでは黒いままで原因が掴めない中、実はReflection Probeの影響が入ってうっすらと白くなっていたものがトーンマッピングでもち上げられていた……という単純な問題だったことに後から気付きまして。HDRの場合は画面の明るさにも注意しなければいけない、というのが印象に残っています。
大下:原因がわかれば単純なバグかも知れませんが、HDR環境ではよくある状況かも知れません。実際の画面に描画されるまでのレンダリング手順が複雑になると、どの部分でどういった画づくりになっているかを把握するのが困難になりますね。
秋友:エンジニアからすれば許容できる部分でも、アーティストの目から見ると違和感があるといったケースが多かったですね。ディレクターとしては、両者間のやり取りに直接的な干渉はしなかったものの、コミュニケーションは活発だった印象が強いです。
桐山:VFXチームも、エンジニアとアーティストが同じ枠組みで定例ミーティングを行なったりSlackのスレッドでやり取りをしたりするので、連携という意味では非常にスムーズだったと思います。職制単位でセクションを切るような現場もありますが、機能単位でチームを組んだ方が効率が良いように感じました。
前向きなチームワークが生んだ“最先端”の表現
大下:エンジニアとアーティストの協業など、プロジェクト全体から強いチームワークを感じます。開発全体をふり返って、改めて感想をお聞かせください。
北村:チームとしての一体感もあったし、壁を感じない組織になっていたと思います。リリース後の反応をチームに伝えたときも大きく盛り上がっていましたし、全体を通して楽しかったですね。
秋友:Slackも、プログラマーだけで話しているときと違う盛り上がりもあって楽しかったです。アーティストの方がいると賑やかなスクリーンショットも上がってきますし、動画が貼られるたびにテンションが上がっていました。
北村:コロプラは他のプロジェクトもメンバー同士の距離が近いのが特徴です。アーティストもエンジニアもプランナーも区別なく、全員で課題や表現について取り組む姿勢が面白いと感じます。
桐山:仮に衝突があったとしても、それは作品を第一に考えたポジティブな内容がほとんどでした。
例えば、もともと本作の描画品質はHigh、Middle、Lowの3パターンしかなかったんです。ただ、「各設定項目のON/OFFがないと技術デモとして試せない!」という意見もあって、これは本当にギリギリで実装しました。個別で設定を変えられた方が、技術デモとしては有用ですからね。
秋友:デバッグで組み合わせ爆発が起きることは想定されましたが、提案には全て根拠があったので、挑戦の姿勢を貫きました。もちろん、デバッグの時間を十分に取れるようスケジュールを組んだ上で、メンバーの熱意をできるだけ反映しています。メンバーは力を尽くしたので、これで反応が得られなかったら私個人の責任だろうと思っていました。
大下:そして、終わってみれば世界的に見ても類例がないようなハイレベルなグラフィックス表現となっていたということですね。インタビューの最後に、今後コロプラで一緒に働きたいと思う人物像などを教えてください。
北村:PBR環境でハイエンドなモバイルゲームグラフィックスを目指す試みは、これからも継続します。ハイエンド環境でのライティングノウハウや開発経験がある方と一緒に仕事ができると嬉しいです。今回のような取り組みに興味をもった方がいらっしゃいましたら、ぜひ応募していただきたいです。
桐山:エンジニアとしては、今後出てくるであろう様々な最新技術や研究成果を積極的にインプットし、開発に活かせる人材と一緒に仕事がしたいと思っています。
現時点でハイエンドタイトルを開発している方も歓迎ですが、スキルを問わず興味があるというだけでも問題ありません。今後モバイル環境でもリアルタイムレイトレーシングが可能になるでしょうし、そういった新しい描画方法を積極的に試す気持ちがある方はぜひよろしくお願いいたします。
秋友:今回はアーティストやエンジニアの苦労や課題を包み隠さずお話ししましたが、最後にふり返ると「本当にやって良かった」と心から思えるプロジェクトでした。
コロプラでは、これからもUnityをフル活用したゲーム開発を行なっていきます。セル調やフォトリアルに加え、これらをミックスした表現にも挑戦します。こうした技術を一緒に積み上げられる方に来ていただければ嬉しいです。
Recruiting Information
コロプラでは3Dアーティストを募集しています。当社はこれまで常に最新のテクノロジーと独創的なアイデアで、人々が見たことのない"新しい体験"を届けることに挑戦してきました。"新しい体験"を私たちと一緒にゼロから創りだしていただける3Dアーティストの方のご応募をお待ちしております。
TEXT_神山大輝 / Daiki Kamiyama(NINE GATES STUDIO)
EDIT_小村仁美 / Hitomi Komura(CGWORLD)