LoginSignup
2
1

Matterportの巨大MatterPakデータを軽くする

Last updated at Posted at 2023-12-17

はじめに

この記事はKDDIテクノロジー Advent Calendar 2023の17日目です。

Matterportとは空間の3Dモデルを収録してデジタルコンテンツを制作し、Webで簡単に公開できるプラットフォームです。
弊社KDDIテクノロジーでは自社でMatterport Pro3カメラを導入しており、コンテンツ制作などに活用しています。
image.png
Matterportの魅力的な機能のひとつに、MatterPakというデータ書き出しオプションがあります。この機能はユーザーがアップロードしたデータをもとに生成した点群・3Dモデル・平面図などが入手できる有償サービスで、とくにマテリアル付きのOBJファイルはUnityやUnrealEngineなどでも活用がしやすく重宝します。
しかし、大規模な収録をした際のMatterPakのOBJファイルはマテリアルが1000枚を超えてしまうこともあり、そういったファイルをUnityなどにそのままインポートしようとすると失敗する場合が多々あります。また、なんとかインポートを乗り切っても表示負荷が高く、PC上のコンテンツでは大丈夫でもスマホ上の表示は難しい、といった場合があります。
この記事では、比較的簡単な手順でこのMatterPakのマテリアルを統合して負荷を軽くし、ゲームエンジン上などでの取り扱いを改善させる手法をご紹介します。

用意するもの

MatterPak

今回は権利上問題がなさそうな公式のサンプルとしてMatterport Pro3で収録したCannery Park 2を使っています。
image.png
ダウンロードはこちらからできます。
https://support.matterport.com/s/article/Download-the-MatterPak-Bundle?language=ja
Pro3のサンプルは2つありますが、下の方のCanneryPark_matterpak_nrGu9t4t52U.zipです。
image.png

画像縮小ツール

一括縮小機能があれば様々なソフトが使えますが、今回は吉田製作所の縮小革命を用います。
https://netank.net/down

Blender

今回は3DCGツールとしてBlenderを用います。バージョンは3.6.5を対象としています。
https://www.blender.org/

Material Combiner

マテリアルの統合のためにBlenderのAddonであるMaterial Combinerを導入します。
https://github.com/Grim-es/material-combiner-addon
日本語での導入資料はこちらのページなどが参考になります。
tomo_shi_vi様 blenderでマテリアルやテクスチャを統合する

画像を縮小する

MatterPakのファイルを展開すると大量の画像ファイルがあります。
image.png
今回は640×640のサイズで縮小しましょう。
image.png
image.png
縮小処理が終わったら、元からあったjpgファイルをバックアップし、縮小したファイルと入れ替えます。

Blenderで読み込む

BlenderでMatterPakのOBJファイルを読み込みましょう。
メニューのFile⇒Import⇒Wavefront(.obj)でインポート可能です。
image.png
image.png

マテリアルを統合する

無事インポートを確認したら、画面の端の「<」をクリックしてメニューを出し、MatCombinerのタブを選択してください。
image.png
インストールが無事終了していれば以下のような表示になります。
image.png
最初に、Main MenuのMaterials to CombineにあるGenerate Material Listボタンをクリックし、使われているマテリアルの一覧をリスト化します。
image.png
image.png
次に、PropertiesのAtlas SizeをCustomに変更し、Max witdhとMax heightを変更します。4096×4096や8192×8192など、利用シーンに合わせて変更しましょう。
終わったらSave Atlas to..をクリックして保存します。
今回はOBJファイルと同じディレクトリを指定しました。
image.png
すると、あれだけあったマテリアルが一つに統合されました。
image.png
今回のマテリアルの結合を反映させたOBJファイルを保存したい場合は、メニューのFile⇒Export⇒Wavefront(.obj)でエクスポート可能です。
image.png

動作確認

読み込みはだいぶスムーズになりました。
image.png

注意点

今回は749枚のマテリアル画像があり、640×640で縮小して8Kのマテリアルを生成しましたが、もっと枚数が増えてくるとMaterial Combinerの制限により中間生成する結合マテリアルの許容サイズをオーバーしてしまうため、エラーが出るようになります。この場合は縮小時に480×480などのさらに小さいサイズを指定する必要があります。

最後に

KDDIテクノロジーでは、メタバースやデジタルツインなどの文脈で様々なコンテンツの開発に関わっており、収録機材も自社で運用しています。ご興味のある方は公式Webページよりお問い合わせください。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1