フォトグラメトリとは、現実世界にある物(オブジェクト)の複数の写真から、ゲームにそのまま使用できるアセットを作成するプロセスです。3D スカルプティングソフトウェアで作成すると時間が掛かるオブジェクトに最適です。本記事では、Unity の新機能がフォトグラメトリの使用をどのようにサポートしているかご紹介します。また、フォトグラメトリのデモプロジェクト『Fontainebleau』を、使用されているすべてのメッシュ、テクスチャ、マテリアルについても含め、ご紹介していきます。
昨年の SIGGRAPH 2017 では、プロのアーティスト向けに非常に詳細なフィールドガイドを発表しました。これは、写真や動画からゲームにそのまま使用できる高品質で再利用可能なデジタルアセットを作成するフォトグラメトリのプロセス全体を、ステップバイステップでご紹介するものです。
このワークフローの一環として、アセットストアに De-Lighting tool が提供されています。このツールを使用すると、フォトグラメトリ・テクスチャーからライティング情報を取り除き、どのようなライティング条件でも使用可能なアセットを作ることができます。De-Lighting tool に関する技術的な詳細は、SIGGRAPH で行われたフォトグラメトリ・ワークフローの概要に関する講演(英語)の中でも説明されています。
今年はさらに、もうひとつのステップバイステップ・ガイドを作成しました。これは、レイヤーシェーダーを使用して、各ゲームのテクスチャーのメモリ予算状況に合わせて最適化を行いつつ、フォトグラメトリ・ワークフローガイド中に見られるレベルの品質を実現する方法を解説したものです。
下の動画(英語)では、Unity でフォトグラメトリアセットを使用してマテリアルを作成する手順をざっくりとご紹介しています。
完全なガイドは下記のリンクでご覧いただけます。
Layering materials in Unity with Hight-Definition (HD) Render Pipeline(英語)
フォトグラメトリを使用すると何かしらの質感表現を得ることはできますが、下記のようなディテールを維持するには、非常に解像度の高いテクスチャが必要となります。
メモリ予算を考慮すれば、これは現実的にゲーム制作に使用できるとは言えません。またこれでは、オブジェクトに一切バリエーションを持たせることできません。
Unity 2018.1 ベータ版ではスクリプタブルレンダーパイプラインのプレビューが公開されましたが、Unity 2018.1 では、軽量レンダーパイプラインと高画質レンダーパイプラインの 2 種類のビルトイン・レンダーパイプラインが公開されます。高画質レンダーパイプラインは、フォトグラメトリマテリアル作成専用シェーダーである『LayeredLit』を提供しています。
レイヤー構造のあるシェーダーでは、個々のマテリアルを組み合わせることでビジュアルを設定します。上の画像を見ると、主要なマテリアルにその他のマテリアル(石や地面の要素や苔など)が混ざっていることが分かります。この「その他のマテリアル」は、タイル化可能です。つまり、これらはオブジェクトを包むことができ、各種オブジェクトに再利用可能ということです。マテリアルの組み合わせを使用することにより、低解像度のテクスチャーを使って高解像度テクスチャ―に近いビジュアル品質(画面上のテクセル密度がそれに近い状態)を実現でき、その結果メモリを節約することができます。
レイヤー構造のあるシェーダーを使うと、異なるアセット間でテクスチャ―を共有したり、タイル化可能なマテリアルを組み合わせて多様性を持たせることができます。これは、広大なゲーム世界の環境をより低コストで作成するための役に立ちます。
フォトグラメトリ・ワークフローと LayeredLit シェーダーの使用例をお見せするための Fontainebleau デモを作成しました。この技術的なデモは、ゲーム開発の条件を念頭に置いて作成されています。これは、1080p @ 30fps の標準の PlayStation 4 プラットフォームをターゲットにした、プレイ可能なゲームステージです。ステージは Fontainebleau の森を再現したもので、限られた一式のメッシュとテクスチャ―のみを用いて、LayeredLit シェーダーによってそれらを異なるバリエーションで再利用しています。一人称視点モードと三人称視点モードでプレイ可能となっており、森の中を歩けるようになっています。XboxOne や PlayStation 4 などの据え置き型プラットフォーム向けに開発する場合、そのプラットフォームを最大限に活かす方法を考えなければなりません。
また、このデモでは 3 種類の異なるライティング条件を適用できるようになっており、適切に作成されて光の情報を取り除いたアセットなら、どのようなライティング条件でも問題なく機能することをご確認していただけます。
日中のライティング
夕暮れ時のライティング
夜のライティング(照明オフ)
夜のライティング(照明オン)
さらに、3 種類のモードで探索できるようになっています。
Fontainebleau は、Unity のパリのオフィス近くにある森の名前です。この森は、フォトグラメトリの説明に使用するのにもってこいの場所でした。自然界のアセットは往々にして複雑で、写実的な再現が困難なものです。また Unity のアーティスト達にとっては、ゲーム開発に適したワークフローを分析するための様々なテストを行うに当たり、対象が近くにあることが重要だったのです。
このプロジェクトは、2018.1.0b10 またはそれ以降のバージョンで機能するようになっており、ScriptableRenderPipeline の 1.1.1-beta リリースブランチを使用しています。
本プロジェクトはダウンロードして使っていただける状態になっています。各種フォトグラメトリアセット(メッシュ、テクスチャ―、マテリアル)をぜひご自分で確認してみてください。アセットはご自身の Unity プロジェクトで自由に(一切の制約なしに)再利用していただけます。
本プロジェクトはこちらからダウンロード可能です。
事前ビルド済の PC 用スタンドアロンプレイヤーをこちらからダウンロードできます。
登録済デベロッパーの皆さんは、Unity フォーラムのPlayStation 4 デベロッパー向けページにて、本プロジェクトの PlayStation 4 用事前ビルド済バージョンを入手していただけます。
デモに関するドキュメンテーションをこちらからダウンロードできます。
フォトグラメトリのプロセスは最初は難しく感じられるかもしれませんが、それに見合った結果をもたらしてくれるものです。
このデモが、皆さんがフォトグラメトリを使い始めるきっかけとなり、アセットの品質を高めてプロジェクトの進行をスピードアップする一助となれば、嬉しく思います。
こちらのフォーラムスレッド(英語)にて、皆さんが作ったものを目にしたり、今回ご紹介したデモや Unity におけるフォトグラメトリ・ワークフローについて議論する機会を得られることを楽しみにしております。
Is this article helpful for you?
Thank you for your feedback!