[PR]
2008年の設立以来、「"Entertainment in Real life" エンターテインメントで日常をより楽しく、より素晴らしく」をミッションに掲げ、新しい発想のモバイルゲームを世に送り出し続けているコロプラ。 新たな体験創出のため、次世代モバイル端末へ向けたグラフィックス開発にも余念がない。本稿では、同社の取り組みのひとつとして、アーティストの要望を汲んだUnityのUniversal Render Pipeline(URP)への移行・カスタマイズについて紹介。ユニティ・テクノロジーズ・ジャパン の大下岳志氏にモデレーターを務めていただき、同社エンジニアの皆さんに語ってもらった。
TEXT_神山大輝 / Daiki Kamiyama(NINE GATES STUDIO)
EDIT_小村仁美 / Hitomi Komura(CGWORLD)
Recruiting Information
コロプラでは3Dアーティストを募集しています。当社はこれまで常に最新のテクノロジーと独創的なアイデアで、人々が見たことのない"新しい体験"を届けることに挑戦してきました。"新しい体験"を私たちと一緒にゼロから創りだしていただける3Dアーティストの方のご応募をお待ちしております。
レンダーパイプラインのURPへの移行の背景は?
大下岳志氏(以下、大下):本日はよろしくお願いいたします。進行役を務めさせていただく、Unityの大下です。日頃は主にアーティストに向けた技術的内容や新機能の説明・講演などを行なっています。
-
大下岳志/Takeshi Oshita
ユニティ・テクノロジーズ・ジャパン株式会社
クリエイターアドボケイト
unity.com/ja
荒木和也氏(以下、荒木):テクノロジー推進本部 技術研究部 開発効率化グループの荒木です。2013年入社で、社内の主要タイトルに関わってきました。開発効率化グループというのはR&Dのようなことも行いますが、プロジェクトへの技術支援を行う部署というのがイメージとして近いと思います。プロジェクトに所属はしていませんが、必要なときに一緒に作業してより良いものをつくることを支援するという働き方です。
中田 充氏(以下、中田):同じく開発効率化グループの中田です。私はコロプラに来て6年ほどになります。チームを転々としながら、現在は効率化グループの一員として各プロジェクトの困りごとを技術的に解消したり、ヘルプに入ったりといった横断的な業務を行なっています。グラフィックスに関わるお仕事も多いので、本日は参加させていただきました。
稲垣匡哉氏(以下、稲垣):新卒で入社して現在6年目の稲垣と申します。直近では新規開発プロジェクトに携わっていましたが、半年前に効率化グループに参加して、積極的なツール開発や修正を行なっています。URPの移行作業などを実際に行なった経緯もありますので、本日はそのあたりをお話しさせていただければと思います。
大下:よろしくお願いいたします。さっそく本題に入りますが、今回ご紹介いただくURPへの移行事例は、従来ビルトインレンダーパイプラインで制作したものをURPに移行したという認識で良いのでしょうか。
稲垣:はい。URPへの移行事例としては2つありまして、移行のタイミングなどは異なりますが、いずれも開発初期はビルトインを用いていました。
大下:レンダーパイプラインの移行は大変な作業になる可能性もありますが、URPへの移行に踏み切った理由を教えてください。
中田:事例のひとつは当時まだ起ち上げたばかりのプロジェクトで、移行の話が出たのはビジュアルの基礎をつくろうとしている時期でした。プロジェクトのデザイナーから効率化グループに「3DCG表現を向上させたい」という旨の相談が来て、それに応えるためにURPを導入することに決めました。
というのも、相談の内容を聞くと、モバイルとしてはかなり豪華な表現を求められていたんですね。ただ、こちらとしてもアーティストの高い要求にはできる限り応えたい。そこで、当時すでに導入実績のあったURPを活用し、パフォーマンス改善に乗り出したという経緯になります。
大下:その時点ではURPもまだリリースからあまり時間が経っていなかったと思いますが、既に導入実績が社内にあったということでしょうか。
荒木:CEDEC 2019で発表した際のものが最初のプロジェクトでした。このときに移行のメリットを明確に実感できていましたね。ビジュアルのアップデートはどのプロジェクトでも求められるものなので、CEDECでも紹介させていただきました。
▲CEDEC 2019で紹介されたURP(当時はLWRP)への移行事例
「コロプラの開発中タイトル事例 ~Unity最新技術でコンソール級のモバイルゲームを実現~」
cedec.cesa.or.jp/2019/session/detail/s5ceb8b998ed1e.html
大下:メリットというのは具体的にはどういった部分でしたか。
荒木:メリットのひとつは、ソースコードが公開されているため、欲しい機能が自由に追加できるカスタム性の高さです。ビルトインの場合はブラックボックスになっているため、マニュアルに書いていない仕様を完全に把握することができていませんでした。URP導入に関しては最初こそ不安はありましたが、我々エンジニアとしてはソースコードがあることで「Unityエンジンが今何をやっているのか」がハッキリするので、すごく助かりました。
大下:確かに、URPはパッケージとしてソースコードが公開されているので、そのメリットは大きいと思います。実際の移行にあたっては、トラブルなくいきましたか? プロジェクトによっては大変なこともあるのではないかと思いますが。
中田:URPへの移行に関しては、今後社内でも活用が増えるだろうという見込みでしたので、私自身ではなくプロジェクト所属のエンジニアにURPをレクチャーするかたちで、一緒に移行作業を行いました。私の方で2~3日検証し、移行自体は1日ですんなり完了しました。移行作業は昨年の夏頃に行なっています。
先ほど荒木も申しましたが、わからないことがあればソースコードを読みにいけばいい、というのが助かります。「どうしてこの挙動なの?」ということがない。そこはエンジニア的にはすごく良い部分だと感じていますね。
大下:1日とは、かなりスムーズな移行で驚きました。アセットの修正や設定変更などの工数も出てくるかと思いますが、そこも含めて1日で完了したのでしょうか。
中田:プロジェクトのフェーズによりますが、今回はビジュアルの基礎をつくっている段階での移行でしたので、モック用のシェーダや、ベースの見た目をつくっている部分のシェーダは変換が必要でしたが、その程度でしたね。
弊社ではプロジェクトの初期段階に、アーティストがShader Graphなどのノードベースのシェーダエディタを使って見た目のイメージをつくるということをよくやっています。この段階ではAmplify Shader Editorからの自動生成のものを使っていたので、書き出し直しただけで問題なく進行できました。シェーダ以外でアセットの変換が厳しいということもありませんでした。
大下:イメージの共有にShader Graphを使っているというのは、すごく良いですね。画づくりの種類にもよりますが、モバイルで動かす場合はURPの方が処理負荷の面でも有利になると思います。その点はいかがでしたか。
中田:おっしゃるように、パフォーマンスが上がったという意見はありました。
荒木:ちょうど今のプロジェクトでも、ディレクショナルライトだけでなくポイントライトを配置したい場合などが多く、URPのシングルパスフォワードレンダリングにはかなり助けられています。
独自のURP拡張でシャドウとブルームを実現
大下:続いて、URPの具体的なカスタマイズ事例についてお伺いします。まずは「端末ごとにリアルタイムシャドウを切り替える」という機能について、詳しくお聞かせください。
稲垣:本作では幅広いユーザー層をターゲットにしているため、ハイエンドなスマートフォン端末がない方でもフレームレートを落とさずにゲームをお楽しみいただけるよう、端末のGPUに応じてリアルタイムにシャドウを切り替える機能を実装しました。シャドウの品質は3種類あり、最高品質のものはURP標準のデプスシャドウ、中品質として投影テクスチャシャドウ、低品質としてプリミティブなシャドウ、つまり丸影ですが、この3つを用意しています。
▲左:URP標準のデプスシャドウ(高品質)、右:投影テクスチャシャドウ(中品質)
▲プリミティブなシャドウ(低品質)
大下:端末ごとに最適な影を描画するということですね。高品質と中品質の主なちがいは何でしょうか?
稲垣:デプスシャドウはセルフシャドウありで、ほかはなしです。かなり負荷は変わりますし、他にもメリットが2つありました。ひとつはUnityエディタを再生しなくても影の切り替えの確認ができることです。これはアーティストがシャドウの品質を確認するのに役立ちました。
もうひとつはカメラ単位に切り替えができるということ。カメラにコンポーネントをつけておいて、カメラに応じてどのシャドウタイプを選ぶかを選択することができています。大量にオブジェクトが表示されるカメラでは端末の性能に応じたシャドウにして、あまりオブジェクトが映らないカメラではデプスシャドウを入れるというかたちで、なるべく品質を落とさずに負荷を避けるようなしくみを採り入れています。
大下:カスタマイズの手軽さはURPを使う大きなメリットのひとつですね。このしくみをつくるきっかけは、どういった部分だったのでしょうか。
稲垣:実は、もともとは2つ目の投影テクスチャシャドウが最高品質だったんです。ただ、アーティストからの要望で、セルフシャドウを導入したいと。従来のタイトルですと負荷的に厳しかったのですが、本タイトルはURPに移行した後でしたので、検証の結果どうにか動きそうだということで、この切り替えのしくみをつくって導入しました。
荒木:弊社はモバイル端末での開発が多いため、幅広いスペックに対応する必要があります。ですから、アーティストとの協議の上で、クオリティの上限がここ、下限がここ、というふうにコンセンサスを取りながら開発を進めるのがコンセプトになっています。最高品質だけ確認しても意味がないんですね。
大下:アーティストと一緒にコンセンサスを取りながら画づくりを進めていくというワークフローは、非常に理想的だと思いました。本実装に関して、アーティストからの評判はいかがでしたか。
稲垣:やはり、アーティスト側も「負荷的に諦めないと」と言われて無念な思いをしたこともあるだろうと思いますので、そこを技術的に可能にすることはすごく価値があって、コストをかける意味合いは大きいです。切り替えの時間が短く確認コストも高くないということで、とても喜んでもらえました。
荒木:負荷の面はエンジニアでないとイメージしづらい部分でもあるので、やはり一緒に相談しながら一番良い落としどころを探っていくという感覚が重要なんだと思います。
大下:続いて「対象を限定したブルーム効果」についてお伺いします。こちらはどういった効果になりますでしょうか。
稲垣:本作には夜表現があり、選択可能なオブジェクトは夜でも視認性を上げるために明るくしています。端末の負荷を考慮してHDRではなくLDRを採用しているため、URP標準のブルームではこれらのオブジェクトが明るさの閾値を超えてしまい画全体がぼやけていました。これを防ぐために、対象を限定したブルーム効果をもたらすポストエフェクトを開発しました。
大下:具体的にはどういった実装を行なっていますか?
稲垣:ブルームの対象になるシェーダにブルーム用のパスを書き込んでおり、夜表現のときだけ実行されています。テクスチャに色を入れ込んで上から重ねているだけで、ブルームの強度は各オブジェクトに設定されたテクスチャの色の強さに応じています。
▲左:URP標準のブルーム、右:カスタマイズしたブルーム。建物外の木箱がブルームの対象から外れていることがわかる
稲垣:URP標準のポストプロセシングのしくみに対して新しいポストエフェクトを自由に追加できるので、アーティスト側から見れば「いつものポストエフェクトが並んでいるところに、独自のブルーム機能が追加されている」という見え方になっています。同じUIで作業できるので、ON/OFFのしやすさなども意識しています。
大下:ボリュームフレームワークの中でアーティストも簡単に扱えるようになっているのは良いですね。これもアーティスト側の要望に応えた実装だったのでしょうか。
稲垣:そうですね。最初は標準ブルームでやろうとしていましたが、「パラメータ調整が難しい!」と。全体をボケないようにするにはLDRでは確かに難しいものの、タイトルの開発もある程度進んでいてアート素材も揃っている状態だったので、そこに手を加えずにブルームの懸念を払うためにはURPを拡張してポストエフェクトを開発した方が良いだろうという判断になりました。
次ページ:
URPで実現したボリューメトリックフォグ。
PS4世代の画づくりを目指す
URPで実現したボリューメトリックフォグ。
PS4世代の画づくりを目指す
大下:続いてフォグの事例についてお伺いします。この画像を拝見したとき、本当にモバイル環境なのだろうか? という感想が真っ先に浮かんだのですが、このゴッドレイに関してはボリューメトリックフォグで表現されているのでしょうか。
▲左:ボリューメトリックフォグON、右:ボリューメトリックフォグOFF
荒木:はい。HDRPでボリューメトリックフォグを使用してゴッドレイ表現を行なっているのを見たことがあるので、同じようにURPにもボリューメトリックフォグを導入しました。今ではPS4タイトルでも当たり前にボリューメトリックフォグが使われていますので、それをモバイル環境でも使おうと試しています。
もちろんこれはとても重い処理なので、従来はビルボードを置いてゴッドレイなどの空気感を表現したりしていました。ただ、板ポリを1枚置くにも、マップが広くなってくると、工数的に手動では置くことができなくなります。そのため、ビジュアル表現としても、開発手法としても、今後はボリューメトリックフォグ以外あり得ないという判断になり、実装を行いました。
大下:かなりリッチな空気感が出ているように見えますが、実装は困難だったのではないでしょうか。
荒木:ボリューメトリックフォグはシャドウマップに対してレイを飛ばすという一般的なアルゴリズムを採用しています。URPのシャドウマップを組み合わせることで最小限の実装で済みました。処理としての工夫は少ないと思いますが、こういったことをすぐに試せるのもURPのメリットであると感じています。
荒木:ボリューメトリックフォグに関しては新しめの端末では十分導入可能な負荷にとどまっています。また、ハイトフォグなども実装しており、ランプテクスチャを使用して濃さや色をコントロールできるようにしています。いずれもボリュームフレームワークを利用しているので、他のエフェクトとUI的には変わらず、アーティスト側にも使いやすいかたちにしています。
大下:その他のポストエフェクトはどういったものを使われているのでしょうか?
荒木:疑似的ではなくHDR環境で制作していて、トーンマッピングも入っています。ほぼ現状のコンシューマ準拠になっていますね。今から新規タイトルを開発するのであれば、少なくともPS4世代と同じグラフィックスレベルを目指すべきだろうと考えています。
大下:モバイル環境と、PS4世代と同様のグラフィックスを同列に語るのは技術的にも難しいと思います。HDRでボリュームメトリックフォグを実装というのは、現在のモバイル向けの技術水準とはやや異なる印象を覚えますね。
荒木:モバイル環境のタイトルも開発期間が長期化しています。おおむね3年後の端末を最高スペックと仮定すると、今のうちからPS4クラスはつくれないとダメだよね、という意識が社内で共有されています。
新端末発表会を見ていると前モデルよりGPU性能が30%アップなどと宣伝されています。これが3年続けば2倍以上の向上になりますよね。少し前のタイトルがモバイルでできる表現の最大値だと考えてつくり始めると、リリース時点では古くなってしまうんです。ここに気を付けながら開発を進めています。
ポイントライトの影響を可視化するツールを開発。
アーティストの負荷をなるべく抑える
大下:続いて、「ライト可視化ツール」についてお伺いします。こちらはライトの影響をエディタ上で確認するためのものだと思いますが、改めて機能紹介と実装の経緯をお聞かせください。
中田:URPは低い負荷で多数のライトが使える設計になっています。ただ個数の上限を超えたライトの扱いが難しく、アーティスト側が調整しづらいという状況も起こり得ます。
荒木:1オブジェクトに対して8個のポイントライトまで、シングルパスで速く描画できるのですが、大きなメッシュや床などに対してどのライトが当たっているのかを目視だけで確認するのは難しいです。このツールはシーンビューでライトの影響を円形に表示するしくみになっていて、実装は中田が担当しました。そもそもポイントライトが使えるだけでアーティスト側は喜んでくれますし、これをツールで調整したりプレイしたりせずにプレビューできるというところにも喜んでもらえて。開発して良かったです。
▲ポイントライトを配置したシーン
▲ポイントライトの影響可視化ツールの画面。右下のパネルで閾値を操作することで各ライトの影響範囲を確認できる
中田:やはりソースコードを読めるというのは強くて、他の業務をやりながらでも2週間ほどで新規ツールを開発できるくらいにはURPは学びやすいです。
大下:Unity標準の機能に欲しいくらいです(笑)。先ほどのフォグの話でも感じましたが、モバイルでの負荷を考慮しながら、その中でも常にクオリティへの妥協がないことを感じることができました。
荒木:PCゲームなら最新のGPUと内蔵GPUで幅広いスペックが混在しますが、モバイル環境はそれに近いですね。先ほどのシャドウの話もそうですが、PCの世界で当たり前に行われていることを参考にしながらモバイルに向けて実装しています。モバイルだけでなく、VRなど最新のデバイスも対象にはなりますが、とにかく幅広く技術的なことをキャッチアップすることを大切に考えています。
大下:新ハードのリリース量もコンシューマとは比較にならないですね。そういった現場において、エンジニアとアーティストの協業によって表現が拡張されることは素晴らしいことだと感じました。
荒木:アーティストの要望も以前に増して高くなってきました。昔だとポリゴン数がどうとか、容量がどうという話が多かったのですが、今はポストエフェクトの話にまで発展するようになりました。「これができるならあれも実現したい!」という、アーティスト側のクリエイター魂のようなものを感じます。私たちとしても、良いグラフィックスがつくれるのが一番のモチベーションです。私たちがやりたいのは「誰も見たことのないもの」をつくりたいということなので、モバイル最高のグラフィックスと言えばコロプラと言っていただけるくらいには頑張りたいと思っています。
アーティストの高い要求に応えたい。
ハイエンドな画づくりを目指せるメンバーを募集中
CGWORLD(以下、CGW):最後に、求人についても教えてください。現在はデザイン職の募集を行なっているそうですが、どのようなデザイナーに参加してほしいですか?
荒木:先ほどもお話しした通り、数年先を見据えてコンシューマ最高クラスのグラフィックスをモバイルで実現しないといけない時代になっていると思います。モバイル業界というと「コンシューマよりも前のことをやるんだよね」と思われるかも知れませんが、そうではなく、今のコンシューマの最前線と同レベルのことをやっています。
その意味では、PS4世代の画づくりが可能な方というのが弊社の求める人物像です。より具体的には、PBRを導入したタイトルの開発経験があり、HDR環境やボリューメトリックフォグ、カラーグレーディングなどのポストエフェクトを含めたレベルの高い画づくりができる方を求めています。
中田:コンシューマ開発経験があり、その中でも新しい表現をやってきた方と一緒に働きたいです。言われたものをつくるような作業を行なってきた人よりは、アイデアや要望をどんどん出して、一緒に高度な画づくりができる方が好ましいです。私たちエンジニアもクオリティの高いグラフィックスをつくりたいし、そういうものづくりが好きだからこそアーティストの高い要求に応えたいんです。新しい、高度な表現に興味のある方を期待します。
稲垣:そうですね。我々も要望があれば検討して開発したいですし、何も要望を言われないよりはいろいろアーティスト側から言ってくれた方が嬉しいんです。それがエンジニアにとっての楽しみにもなるし、それで良いものができたら嬉しいですよね。もう少し言うと、アーティスト側のチャレンジを上手く取りまとめて、提案としてしっかり組み立てられる方がベストです。説明能力も含まれると思います。
CGW:ありがとうございました。
Recruiting Information
コロプラでは3Dアーティストを募集しています。当社はこれまで常に最新のテクノロジーと独創的なアイデアで、人々が見たことのない"新しい体験"を届けることに挑戦してきました。"新しい体験"を私たちと一緒にゼロから創りだしていただける3Dアーティストの方のご応募をお待ちしております。