Search Unity

Unity におけるフォトグラメトリ ― 現実世界のオブジェクトをデジタルアセットに

, 3月 12, 2018

フォトグラメトリとは、現実世界にある物(オブジェクト)の複数の写真から、ゲームにそのまま使用できるアセットを作成するプロセスです。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』を提供しています。

レイヤー構造のあるシェーダーでは、個々のマテリアルを組み合わせることでビジュアルを設定します。上の画像を見ると、主要なマテリアルにその他のマテリアル(石や地面の要素や苔など)が混ざっていることが分かります。この「その他のマテリアル」は、タイル化可能です。つまり、これらはオブジェクトを包むことができ、各種オブジェクトに再利用可能ということです。マテリアルの組み合わせを使用することにより、低解像度のテクスチャーを使って高解像度テクスチャ―に近いビジュアル品質(画面上のテクセル密度がそれに近い状態)を実現でき、その結果メモリを節約することができます。

レイヤー構造のあるシェーダーを使うと、異なるアセット間でテクスチャ―を共有したり、タイル化可能なマテリアルを組み合わせて多様性を持たせることができます。これは、広大なゲーム世界の環境をより低コストで作成するための役に立ちます。

Fontainebleau デモ

フォトグラメトリ・ワークフローと LayeredLit シェーダーの使用例をお見せするための Fontainebleau デモを作成しました。この技術的なデモは、ゲーム開発の条件を念頭に置いて作成されています。これは、1080p @ 30fps の標準の PlayStation 4 プラットフォームをターゲットにした、プレイ可能なゲームステージです。ステージは Fontainebleau の森を再現したもので、限られた一式のメッシュとテクスチャ―のみを用いて、LayeredLit シェーダーによってそれらを異なるバリエーションで再利用しています。一人称視点モードと三人称視点モードでプレイ可能となっており、森の中を歩けるようになっています。XboxOne や PlayStation 4 などの据え置き型プラットフォーム向けに開発する場合、そのプラットフォームを最大限に活かす方法を考えなければなりません。

標準の PlayStation 4 1920×1080 からのキャプチャー画像

また、このデモでは 3 種類の異なるライティング条件を適用できるようになっており、適切に作成されて光の情報を取り除いたアセットなら、どのようなライティング条件でも問題なく機能することをご確認していただけます。

日中のライティング

夕暮れ時のライティング

夜のライティング(照明オフ)

夜のライティング(照明オン)

さらに、3 種類のモードで探索できるようになっています。

  • 【映画モード】ライティングのモードを選択したら、後はくつろいで映像をお楽しみください。
  • 【一人称視点モード・三人称視点モード】ベーシックな探索モードです。環境内を自分で操作して探索できます。一人称視点モードにはちょっとしたおまけもあります。

Fontainebleau という名前の由来

Fontainebleau は、Unity のパリのオフィス近くにある森の名前です。この森は、フォトグラメトリの説明に使用するのにもってこいの場所でした。自然界のアセットは往々にして複雑で、写実的な再現が困難なものです。また Unity のアーティスト達にとっては、ゲーム開発に適したワークフローを分析するための様々なテストを行うに当たり、対象が近くにあることが重要だったのです。

プロジェクトのダウンロード

このプロジェクトは、2018.1.0b10 またはそれ以降のバージョンで機能するようになっており、ScriptableRenderPipeline の 1.1.1-beta リリースブランチを使用しています。

本プロジェクトはダウンロードして使っていただける状態になっています。各種フォトグラメトリアセット(メッシュ、テクスチャ―、マテリアル)をぜひご自分で確認してみてください。アセットはご自身の Unity プロジェクトで自由に(一切の制約なしに)再利用していただけます。

本プロジェクトはこちらからダウンロード可能です。

事前ビルド済の PC 用スタンドアロンプレイヤーをこちらからダウンロードできます。

登録済デベロッパーの皆さんは、Unity フォーラムのPlayStation 4 デベロッパー向けページにて、本プロジェクトの PlayStation 4 用事前ビルド済バージョンを入手していただけます。

デモに関するドキュメンテーションをこちらからダウンロードできます。

フォトグラメトリのプロセスは最初は難しく感じられるかもしれませんが、それに見合った結果をもたらしてくれるものです。

このデモが、皆さんがフォトグラメトリを使い始めるきっかけとなり、アセットの品質を高めてプロジェクトの進行をスピードアップする一助となれば、嬉しく思います。

こちらのフォーラムスレッド(英語)にて、皆さんが作ったものを目にしたり、今回ご紹介したデモや Unity におけるフォトグラメトリ・ワークフローについて議論する機会を得られることを楽しみにしております。

22 コメント

コメントの配信登録

コメント受付を終了しました。

  1. HybrisFactory

    4月 18, 2018 8:15 pm

    Shame, each time I try to run the standalone player, it crashes with “couldn’t switch to requested monitor resolution” error.

  2. Alan Mattano

    3月 15, 2018 2:42 am

    I love this asset. There is a lot to learn from it.

  3. Hi, where i can download Book of the Dead binary just to bench my pc?

  4. We need more powerful GPU!!!

  5. Looks very impressive. It would be good to have added Fontainebleau links in photogrammetry page and maybe forum thread, as this blog will sink down in upcoming weeks and nobody will find the project update…

    1. Kristyna Hougaard

      3月 15, 2018 9:13 am

      Hi, you can join us on the forum here: https://forum.unity.com/threads/photogrammetry-in-unity-making-real-world-objects-into-digital-assets.521946/. We’re also working on updating the Photogrammetry page.

  6. The scene looks great! Which image effects from the post processing stack did you use in the ps4 demo?

  7. Assets and rendering looks nice. The scene is extremedly detailed. However the TPS character looks like a cartoon model next to it. On top of that the animations and controlling of the character is blazing clunky which makes the experience uncanny. I would suggest to Remove that mode or make it better. If your gonna do something do it right.

  8. Global answer.

    Have in mind that the demo target PS4, 1080 @ 30pfs, not PC.

    The demo focus on Photogrammetry asset and allow switching time of day to highlight that respecting the workflow allow qualitative asset under different lighting condition. The third person mode is not the focus of this demo, we have not invest time but added this mode to illustrate that we were having game in mind and allow some fun.

    Import time or other thing related to Unity editor are not the topic of this blog post that focus on Photogrammetry.

    Crash on exit on PC is a know issue and solved in 2018.1b12 not out yet (and not available when preparing the zip).

    1. If the Third Person mode is not the focus of this demo then just ditch it or improve it. We don’t need to see a character walking around to know it can be used for games. This is Unity, it runs anyware blazing fast.

  9. Environment looks great.
    3rd person is indeed bad!
    Also crashing on exit on win10

  10. Guys, huge load times are pretty standard for projects like this one. UE4’s photogrammetry forest demo took something like 8 hours before you could open the editor and move around in the scene

    1. Didn’t you get the memo. You can only complain about Unity in here. It doesn’t matter that other game engines have the same issues.

  11. The Demo are really nice, great quality and performance though.
    but yeah it bit blurry in my opinion didn’t TAA have sharpness settings?
    Also one thing, at least please make the third person mode nicer. it glitchy as hell guys, easily stuck for no reason, jumpy animation and what’s with the idle animation?
    yeah sorry the third person asset might be not really relevant with the purpose of the demo, it’s just bother me a lot. The third person part.

  12. Nice work, but I find the post processing a bit questionable. It seems awfully blurry, almost like a PS3 game. It would be a much better showcase if the visuals were ultra crisp

    1. Alan Mattano

      3月 15, 2018 2:40 am

      You can open the demo and in the post process layer, you can change the saturation blending from 0.95 to 0.5. Then compile. If you go under 0.5 you lose a natural video feeling revelling more pixels.

  13. Amplify team is developing the “Amplify texture” virtual texturing plugin for Unity. Another plugin Granite already does that. I would be quite happy to hear from the Unity devs if you guys ever thought of moving into that direction?

  14. Does this use the Unity Terrain system?

    1. Sebastien Lagarde

      3月 12, 2018 4:28 pm

      >Does this use the Unity Terrain system?
      No, just regularmesh

    2. No, it use regular mesh.

      1. Hey Sebastien, is there a way to get it running using steam VR? or even XR? I know performance won’t be good but just wondering how you would approach it?

        1. Sebastien Lagarde

          3月 15, 2018 9:10 am

          We would have love too :). But VR is not supported in HD Render Pipeline yet, so this isn’t possible.