Unity を検索

Unity の HD レンダーパイプライン(HDRP)を用いたカーコンフィギュレーターの開発

2019年1月23日 カテゴリ: Industry | 7 分 で読めます
シェア

Is this article helpful for you?

Thank you for your feedback!

パリに本拠を置く Light & Shadows は、HDRP を使用して驚くほど現実感があるリアルタイムイメージを制作しました。Light & Shadows が執筆したこのブログ記事では、同社がどのような過程を経てこれらの優れた成果を達成したのかについてご紹介します。

Light & Shadows の歴史

Unity では、Light & Shadows と緊密に連携しながら、実物さながらのビジュアル品質をリアルタイムに再現するためのプロジェクトに取り組んできました。本記事は Light & Shadows によって執筆されたもので、同社が Unity の新しい HD レンダーパイプラインを使用して、驚異的なまでにリアルな Lexus LC 500 の動画をどのようにリアルタイム生成したか、その技術的な詳細を紹介しています。Light & Shadows は、主要産業に属する企業からの魅力的なビジュアルコンテンツへのニーズの高まりを受けて、2009 年に設立されました。設立以来、同社は新機能を継続的に導入して顧客に提供し、革新を重ねながら成長を続けてきました。高品質なレンダリングやコスト軽減、生産性改善などはその主な例です。このブログの以下の内容は、Light & Shadows から寄稿されたものです。

リアルタイムレンダリング:自動車業界のためのゲームチェンジャー

近年のテクノロジーの進化は、自動車のユーザー体験のみならず、その売買方法にも変化をもたらしています。Light & Shadows は、自動車のビジュアライゼーションやオフラインレンダリング分野において深い経験を有しており、その経験は PSA カーコンフィギュレーターや Dassault Aviation との共同プロジェクトで証明されています。弊社では最近まで主に別のリアルタイムエンジンを使用していましたが、現在では、Unity とのパートナーシップを締結し、HDRP を使ったリアルタイムレンダリングによって、新たなレベルのビジュアル品質とパフォーマンスを達成するべく取り組んでいます。これらの新機能の性能を証明するため、私たちは先ごろ、Lexus LC500 のリアルタイムレンダリングを実演する動画を制作しました。

このコンテンツはサードパーティのプロバイダーによってホストされており、Functional Cookiesを使用することに同意しない限り動画の視聴が許可されません。これらのプロバイダーの動画の視聴を希望する場合は、Functional Cookiesのクッキーの設定をオンにしてください。

プロジェクトの全貌:モデルの準備から仕上げまで

CAD データ準備ツールとプロセス

私たちは、LC500 プロジェクトに取り組むため、すべての可視表面と特定の内部形状を対象に、Lexus から境界表現(B-rep)CAD データを提供してもらいました。ハードサーフェスのモデリングが一切必要なくなったので、これは非常に助かりました。ただし、モデルが非常に複雑なので、データの整理と準備が課題となりました。この課題をクリアするため、私たちは PiXYZ ソフトウェアを使用して、その高度なテッセレーションとスクリプタブルなデータ準備機能を利用することにしました。

複雑な製品においてはよくあることですが、Lexus のモデルは複雑なオブジェクト階層で構成されており、自動車の部品数は数千個にも及びました。そこで私たちは、自動車の内部と外部を分けることにしました。これによって柔軟性が増し、モデルの 2 つのパーツを並行して作業できるようになりました。また、パワートレイン、シャーシ、車両構造部品などの設計コンテンツを分離できるようになりました。

ソースデータはファイルごとに 1 つの車両として整理されているのではなく、同じ車両のすべての形状オプションをカバーした、パーツのコレクションとして整理されていました。そのため、データを論理的な方法で整理し、Lexus ユーザーに提供されているバリアント(オプション)を反映させることができました。私たちは XML ファイルを使って、ソースデータ内の各パーツを、関連するオプションロジックに論理的に結び付けました。この XML とカスタムスクリプトを使用することで、車両の複数のバリアントを 1 つのフォームに分離し、オプションの組み合わせごとにビジュアルがすぐに生成できる形式で整理することができました。

各種のパーツを分離したら、次のステップはテッセレーションでした。このプロセスでは、CAD データ(B-rep)をテッセレート済みのフォーム(三角形)に変換して、3ds Max や Unity などのアプリケーションで使用できるようにする必要がありました。私たちは PiXYZ を使用することで、比較的軽量なテッセレート済みモデルを生成しつつも、優れたビジュアル品質を確保することに成功しました。

最適なライティングとベイキングを実現するためのオプション

私たちは、自ら設定したきわめて高水準なビジュアル品質を達成するため、ライトマップを使用してライティングを強化しました。このワークフローでは、車両のすべてのパーツを一切の重複なくアンラップする必要がありました。そこで私たちは、自動アンラップツールを使用しつつ、必要な部分ではインタラクティブに(手動で)アンラップを行ってシームの配置を最適化しました。

可視表面全体にわたってラップされた UV
可視表面全体にわたってラップされた UV

私たちは、ライトマップの計算方法として 2 つのオプションを評価しました。Unity とその組み込みライトマッパーで直接計算する方法と、サードパーティのレンダラー(Octane や V-Ray など)を使用して 3ds Max で計算する方法です。私たちは両方の方法を試し、それぞれの結果の品質レベルを比較したうえで、外部のライトマップと Unity の組み込みライトマッパーを統合するためのワークフローをテストすることにしました。車内のライトマップは Unity で直接計算しました。適切な設定を加えたことで、非常に満足のいく結果が得られました。直接光はリアルタイムライトで処理し、間接光はベイクで処理しました。この方法により、シーンのインタラクティブパーツをアニメーション化した場合にも、リアルなビジュアルを再現することに成功しました(ハンドルの回転やドアの開閉など)。Unity の組み込みライトマッパーを使用するやり方は非常にシンプルなので、優れた結果が得られました。

ライトマップを使用した場合の車内と、使用しなかった場合の車内
ライトマップを使用した場合の車内と、使用しなかった場合の車内

次に私たちは、Octane のライトマッパーを使用して、モデルに含まれる個別の外装に対応するオブジェクトのスペキュラーオクルージョンをインタラクティブに調整する実験を行いました。HDRP で標準シェーダーを編集し、分離された UV チャネルを適切に統合したところ、満足いく結果を得ることができ、特にボディパネル間の隙間については、非常にリアルなビジュアルが生成できました。これら 2 つのアプローチを使用することで、私たちは他のツールのライトマッパーの柔軟性と、Unity 組み込みのライトマッパーの使いやすさを比較評価することができました。最終的には、どちらのアプローチでも目標とする結果を達成できるという結論に至りました。

ライトマップを使用した場合の外装と、使用しなかった場合の外装
ライトマップを使用した場合の外装と、使用しなかった場合の外装

フォトリアリズムを実現するためのマテリアル調整

自動車のオフラインレンダリング分野における当社の長年の経験を通して、私たちは高解像度テクスチャの膨大なコレクションを、ディフューズマップ、ハイトマップ、スペキュラーマップ、ノーマルマップなどの形で蓄積してきました。今回の Lexus プロジェクトで、私たちは自分たちのお気に入りのマップを使い、最善の結果を達成したかったのですが、Unity でのパフォーマンスを最適化するには、メタリック、スムースネス、および AO マップを 1 つのマップの RGB チャネル内に結合する必要がありました。このアプローチはパフォーマンスにとっては最適なのですが、マップやシェーダーをインタラクティブに調整するうえでは課題が生じます。このプロジェクトを開始した時点ではシェーダーグラフを HDRP に使用することができなかったので、私たちは開発チームに頼んでカスタムテクスチャエディターツールを作ってもらい、テクスチャ内の各マップを標準の HDRP シェーダーで直接個別に調整できるようにしました。このエディターツールにより、私たちは Unity 内でマテリアルを微調整し、効率的に作業できるようになりました。現在では、シェーダーグラフを HDRP に使用できるようになったので、これと同じ機能をすべての Unity ユーザーが使用できるようになっています。

カスタムテクスチャーの編集
カスタムテクスチャーの編集

ポストプロセッシング

3D シーンに映画のようなリアリスティックな雰囲気を持たせるにはポストプロセッシングが欠かせません。HDRP には、カラーグレーディング、ブルーム、ビネット、被写界深度など、シーンの最終的な見た目を調整できるオプションが数多く提供されています。

ポストプロセッシングを行ったドアのインテリアと、行わなかったドアのインテリア
ポストプロセッシングを行ったドアのインテリアと、行わなかったドアのインテリア

被写界深度は、リアルなビジュアライゼーションを実現するうえで不可欠なビジュアルエフェクトです。これにより、見る人の注目を特定の領域に引きつけ、シーンへの没入感を高めることができます。リアルタイムアプリで被写界深度の焦点に固定値を適用すると、仕上がりが不自然になるため、私たちは簡単なカメラスクリプトを作成し、カメラ前方の最も近いオブジェクトに自動で焦点が設定されるようにしました。Unity では、シーン内でレイをキャストして、最も近いオブジェクトを特定することは非常に簡単でした。

被写界深度エフェクトを使用した車内と、使用していない車内
被写界深度エフェクトを使用した車内と、使用していない車内

見せ方、作り方にまでこだわる

私たちは、Unity の Cinemachine を使用して、「デモ」モードを作成しました。これは、事前定義済みのカメラパスを使ったシネマティックなショーケースを再生するモードで、見る人が車を特に操作していない時でも、製品の重要な機能をビジュアルで示すためのものです。

自動車を正確に表現するために、私たちは自動車の様々な構成を管理するための手段を準備しました。ランタイム(実行可能)アプリでバリアントを切り替えるだけでなく、Unity エディター内においても、すべてのバリアントが正しく定義されるようにする必要があったのです。これを達成するために私たちは、シーンの状態を記録して自動マテリアル割り当てを行う、構成管理スクリプトを作成しました。

バリアント構成ロジック
バリアント構成ロジック
4 種類の内装のバリアント
4 種類の内装のバリアント

次のステップ

今回のプロジェクトでの経験を通じて、私たちは高水準なビジュアル品質が求められる新規カスタマープロジェクトにも、自信を持って HDRP を使用できるようになりました。データの準備には PiXYZ を使用し、レンダリングやシネマティック処理、ポストプロセッシングには Unity の最新ツールを使用して、さらには当社独自のカスタムツールやスクリプトも使用しながら、新規プロジェクトをきわめて効率的に展開できるようになりました。

---

最後に Unity から、本記事を執筆し、こちらの動画を制作してくださった Light & Shadows に御礼を申し上げます。自動車・輸送機器向けの Unity ソリューションの詳細はこちらをご覧ください。

2019年1月23日 カテゴリ: Industry | 7 分 で読めます

Is this article helpful for you?

Thank you for your feedback!

関連する投稿