はじめに
Luma Unreal Engine Pluginが公開されました!
ということで、さっそくLumaAIのNeRFデータをUnreal Engineで表示してみましょう!
最終的にこのLumaデータが
Unreal Engineでこうなります。
前提
- LumaAIでの撮影は終わっている
- まだの方はこちらの記事を参考にしてください!
- Unreal Engine5.1をインストールしている
- Unreal Engineの最低限の使い方を把握している
手順
1.サンプルプロジェクトをダウンロード&解凍
公式ページにアクセスし
2. uprojectをダブルクリック
最初時間がかかります。
3.Luma Fieldファイルをダウンロード
4. Unreal EngineのContent Browserにlumaファイルをドラッグ&ドロップ
NeRFキャプチャ用のブループリントが生成されます!これをドラッグするとUnreal Engineで使うことができます!
5.ブループリントの説明
- Baked: これらのブループリントには、キャプチャしたときの照明が含まれているため、キャプチャにできるだけ近い状態で表示されます。影や照明の影響を受けませんが、他のルマフィールドやアンリアルオブジェクトと合成することができます。
- Dynamic: これらのブループリントは、Unreal のライティングとシャドウの影響を受けています。
- Cropped: これらのブループリントには、キャプチャーの中心オブジェクトが存在する場合、自動的にトリミングされたバージョンが含まれています。
- With Environment: さらに、キャプチャ時に見えなかった領域についても、キャプチャごとに適切な空模様をレンダリングします。
6. ワールドにドラッグ&ドロップ!
7. Third Personを追加する方法
- Contentブラウザを右クリック
Add/Import Content > Add Feature or Content Pack
- BluePrint
- Third Person
- Add to Project
- World Settings
- GameMode OverrideをBP_ThirdPersonGameModeに変更
8. Groundをいい感じに設定する
サンプルプロジェクトだとGroundCubeがあります。いい感じの高さ角度に調整しましょう
9. PlayerStartをいい感じに設定する
Unreal EngineではPlayerStartからPlayerがスタートする設定があります。
位置を調整しましょう。
10.完成!
このように歩き回れるようになります!
楽しい!
11.その他
- BPのScaleを (15,15,15)に設定
- GroundをCollisionは別途設定
公式ホームページ補足情報
Use cases
Luma Fieldsの使い道想定
- バーチャルプロダクションやゲームに含める
- 従来のグラフィックコンテンツと合成する
- VRに使用する
制限事項 (公式ページより)
- Unrealの一部のプロジェクトやレンダリングオプションは動作しないかもしれません。私たちのチームによってテストされた設定のスタータープロジェクトをお勧めします。
- Auto-Exposureは現在サポートされていませんので、手動exposureをスタータープロジェクトのデフォルトである〜10程度の値に設定することをお勧めします。
- 現在、キャプチャーのクロップはサポートされていませんが、近日中に対応する予定です。
FAQ (公式ページより)
Q. スタータープロジェクトを使用せず、別のプロジェクトでプラグインを使用することはできますか?
A. はい、スタータープロジェクトからPlugins/LumaAIPlugin
フォルダをお好みのプロジェクトにコピーし、Unreal Editorを再起動することで完了します。
- Temporal Anti-Aliasing / Temporal Superresolution / DLSSを動作させるためには、プロジェクトの設定
Project Settings -> Rendering -> Optimizations -> "Velocity Pass"
を"Write after base pass"
に変更する必要があり、そうしないと画像が汚れたりぼやけたりします。 - 現在では、手動でexposureを設定する必要があります。これは、Project Settingsか
PostProcessVolume
で、Auto Exposure modeかMetering modeをManual
に設定し、Exposure Compenstation
を10
程度に設定することで可能です。
Q. Web上のRenderに対してUnreal上の見た目が奇妙に見えます...!
日々改善しているのでDiscordでフィードバックお願いします!
Q. Collisionを設定できますか?
A. 現在、私たちのプラグインブループリントには、デフォルトのコライダーが付属していません。コリジョンが必要な場合(シミュレーション、VRテレポート、物理的なインタラクションの場合)、簡単な近似方法として、見えない球体や立方体のコライダーを追加することができます。
冒険すれば、Luma Webからキャプチャのメッシュをダウンロードして、手動で位置合わせすることも可能です。
Q. このプラグインはUnreal Engine専用になるのでしょうか?Unity/Blenderについてはどうでしょうか?
A. 現在は、Unreal との統合を可能な限り良くすることに力を注いでいます。それが完了したら、他の一般的なゲーム エンジンやレンダリング フレームワークと統合するためのオプションを調査する予定です。
Q. Luma FieldsはNaniteメッシュと相互作用するのでしょうか?
A.はい!スタータープロジェクトでは、Naniteは無効になっていますが(Naniteは新しいGPUとD312 / Vulkan APIでのみサポートされているため)、Project Settingsから以下を変更することで有効にすることができます。
-
Engine → Rendering → Nanite
にチェック -
Platforms → Windows → D3D12 Target Shader Formats -> SM6
Windows with D3D12上でチェック -
Platforms → Windows → Targeted RHIs → Default RHI
をDirectX 12
にする