Unreal Engine 5を使ってみる その15(Scaniverseのデータ取り込み2回目、SuperSplat)
はじめに
今回はScaniverseで3DスキャンしたデータのUnreal Engine 5 (UE5)への取り込みについて、再び試してみました。
以前の取り込み方だとScaniverseでの見た目とは異なり、無理やりメッシュ化しても表面が荒くなっていました。今回利用したプラグインではScaniverseと同じ見た目で取り込めました。
▼以前の記事はこちら
XV3DGS-UEPluginを使ってみる
GitHubで公開されていたXV3DGS-UEPluginを使います。READMEに従って、まずはZIP形式でダウンロードして解凍しておきます。
▼リポジトリはこちら
Unreal EngineのEngineフォルダにある、Pluginsフォルダに追加します。私の場合、Unreal Engine 5.3のフォルダに追加しました。
▼以下のように追加しました。
Unreal Engine 5.3のプロジェクトを起動し、編集→プラグインを選択し、XV3dGSを選択してプロジェクトを再起動しました。
▼XV3dGSがプラグインの欄に追加されています。
再起動後、ScaniverseでExportしたplyファイルをプロジェクトに追加しました。
▼以前も利用した、私のハニワのスキャンデータを用いました。
▼以下のように取り込むことができました。
▼以前の記事で取り込んだときと比較すると、全然違います。点群だったからこんな見た目になっていたようですね。
Scaniverseと同じ見た目で取り込むには、点群というよりはGaussian Splattingとして取り込む必要があったようです。
これで視覚的に現実と近づいたので、画像処理ソフトウェアを一緒に使いたいなと思っています。
点群を編集して取り込む
今回はSuperSplatで点群データを編集してみました。Scaniverseで3Dスキャンしたデータの不要な部分を取り除きます。
▼SuperSplatのページはこちら
https://playcanvas.com/supersplat/editor
SuperSplatはScaniverseのデータをそのまま取り込めるのですが、以前の取り込み方だとExportしてもUE5に取り込めなかったので使っていませんでした。今回は取り込めました。
▼Scaniverseと同様の見た目で取り込めていました。
下の欄で選択ツールを選び、点群を囲んでDeleteキーを押すと削除することができました。
▼削除できました。
なお、これだけ小規模なら削除しやすいのですが、Scaniverseでトリミングしていないと球体のような空間のデータが取り込まれることがあります。
▼以下のように取り込まれます。
ある程度の除去は、Scaniverseで行っておくことを強くお勧めします。
ここで注意点なのですが、「名前を付けて保存」した場合はUE5に取り込むことができました。しかし、エクスポートのCompressed PLYだと取り込むことができませんでした。
▼名前を付けて保存を選択し、plyファイルとして保存します。
▼Compressed PLYの場合、プロパティが不適切というエラーが出ていました。
UE5に取り込んでみました。
▼不要な部分が除去されています。
一応色を変更することもできたのですが、部分的には変更できないようでした。
▼全体の色が変わっています。
▼UE5に取り込んでも色が変わっていましたが、部分的には変わっていません。
SuperSplatでの部分的な色の変更については、つい2か月ほど前にissueが立てられていました。近いうちにアップデートで機能が追加されるかもしれません。
▼開発者の方から前向きな回答が返ってきているので、楽しみですね。
https://github.com/playcanvas/supersplat/issues/299
最後に
ファイル形式がplyなのに、実は形式が違っていたりするので読み込みが大変になっているようですね。
Cloud Compareでもエクスポートして試していたのですが、メモ帳で見ている限りplyファイルのヘッダが異なると取り込めないようでした。
取り込みはできたのですが、影が反映されていなかったり、コリジョンが無かったりという問題が残っています。有料のプラグインを購入するのは避けてきたのですが、やはり必要なのでしょうか。
▼太陽の方向を変えても、見え方が変わっていません。
▼ちなみに、UE用のLuma AIのプラグインがありました。Luma AIのアプリでスキャンして取り込めるなら、こちらの方が早いかもしれません。