ホロラボの長坂です。
今回、ポリゴン数の多い3Dモデルの軽量化を手軽に行えるBlender用アドオン、 Moderate Weight Reduction Toolsを公開いたしました。
Moderate Weight Reduction Toolsは以下のリポジトリよりダウンロードが可能です。
Moderate Weight Reduction Tools
このアドオンの主な用途はテクスチャ付き3Dスキャンモデルの軽量化です。 特徴としては、データサイズが大きくなりがちな3Dスキャンモデルを、3DCGの専門的な知識を必要としなくても手軽にデータサイズの削減をする事が可能となっています。
アドオンの解説
アドオンのダウンロードからインストール方法、使用方法を解説します。 動画でも公開していますのでご覧ください。
アドオンのダウンロード
アドオンをGitHubのリポジトリからダウンロードします。 上記のGitHubのURLを開き[<>Code]をクリックし一番下の[Download ZIP]からダウンロードする事が出来ます。
ダウンロードしたZipファイルを展開すると以下の内容のものが入っています(GitHubの一覧と同じものです)。 この中にある [moderate_weight_reduction_tools.py] がBlender用のアドオンです。
Blenderバージョン
このアドオンは以下のBlenderバージョンにて動作確認を行っております。
- 3.6LTS
- 4.0
- 4.1
- 4.2LTS
インストール
Blenderを起動し、メニューバーの[Edit] > [Preferences] を選択。 ※解説画像はBlender4.2LTSの画面を使用しています。
左メニューの[Add-ons]を選択し、右上の下向き矢印から[Install from Disk]を選択。 Zipファイル展開した場所を選択し、[moderate_weight_reduction_tools.py]を選択。
任意の場所に展開したアドオンファイルを選択し、[Install from Disk]を押します。 インストールされるアドオン一覧に表示されます。 チェックボックスにチェックが入っていると、アドオンが有効化されています。 チェックが入っていない場合にはチェックして有効化してください(Blender3.6LTS, 4.0, 4.1ではチェックが必要になります)。
アドオンの場所
ビューポート右側にある小さい矢印を左に引っ張るようにドラッグするとタブが現れます。
タブの中にHoloLabタブがあるのでクリックするとModerate Weight Reduction Toolsのインターフェースが現れます。
インターフェイス
設定項目はポリゴンメッシュの設定とテクスチャ設定に分かれています。 それぞれ、ポリゴン数をどれくらいまで減らすか、テクスチャサイズをどれくらい縮小するか、と言う項目になっています。
- Mesh Setting:ポリゴンメッシュの設定項目
- Mesh Integration:大規模なポリゴン数の3Dモデル(400万ポリゴン以上が目安)や、スマホアプリで生成したスキャンモデルを処理する場合にこのチェックを入れます。
- Rate of Polygon Left:現在のポリゴン数からどれくらいにするかの割合です。0.1なら1/10のポリゴン数になります。
- Texture Setting:テクスチャの設定項目
- Name:生成後のテクスチャ名の指定します。指定しない場合はデフォルトの"texture"になります。
- Resolution:テクスチャサイズの指定。256px~4096pxの間で選択します。テクスチャ枚数が複数ある場合は1枚にまとめられます。
- Start:設定が完了したらボタンを押して実行します。
- Export - Texture:生成したテクスチャを書き出すボタンです。Blenderファイルとして保存、FBXとして書き出す場合には事前にこのボタンでテクスチャを書き出す必要があります。
- Delete - Original Model:オリジナルのモデルを削除するボタンです。
使い方
3Dモデルをインポート
軽量化する3DモデルをBlenderにインポートします。 [File] > [Import] からインポートする3Dモデルの形式を選択します。 今回のアドオンはBlnderにインポートできるポリゴンメッシュであれば使用可能です。
3Dモデルをインポートしました。 ここではスマホアプリでスキャンした3Dモデルを使用します。
アドオンの設定
- スマホアプリで生成した3DモデルなのでMesh Integrationにチェックを入れる
- ポリゴン削減後の割合(Rate of Polygon Left) を0.03(97%削減)
- テクスチャ名を任意の名前にする
- テクスチャ解像度(Resolution)を1024x1024にする
アドオンの実行
設定が終わったら3Dモデルを選択します。 3Dモデルに黄色いアウトラインが付いていれば選択された状態です。 この状態で [Start] ボタンを押します。
軽量化完了と3Dモデルのエクスポート
処理が終わると軽量化されたモデルが生成されます。 元の3Dモデルが[Original]、軽量化後の3Dモデルが[Result]と言う名前になっています。 処理直後は2つの3Dモデルが重なった状態になっていますが、わかりやすいように並べてみるとこの様になります。 左が元の3Dモデル、右が軽量化後の3Dモデルです。
このままBlenderのプロジェクトファイルとして保存、またはFBXファイルとして書き出す場合には事前にテクスチャを書き出す必要があるので、[Texture] ボタンを押してテクスチャファイルの保存を行ってください。 また元の3Dモデルが不要になった場合は [Original Model] ボタンを押して削除する事ができます。
全ての工程が終わったら、[File] > [Export]から任意の3Dモデル形式でエクスポートを行ってください。 汎用的な3Dモデル形式はFBXファイルやOBJファイル、Android向けAR用3Dモデル形式はGLBファイル、Apple向けAR用3DモデルはUSDZファイルとして書き出すことができます。
注意点
複雑な形状や曲線が多い3Dモデルを軽量化する際、極度にポリゴン数を削減すると元の形状から大幅に崩れたりテクスチャが汚くなってしまう事があります。
例として以下の葡萄の様な曲面が多く入り組んだ構造の3Dモデルの場合、元のモデル40万ポリゴンから1/100の4000ポリゴンまで削減した場合、画像の様にカクカクとした形でテクスチャに汚れが出てしまっています。
ポリゴン数を削減しても基本的には元の形状を維持した状態でないとテクスチャが汚れてしまう事があります。 [Rate of Polygon Left]の値を極端に少なくしないようにすることで形状とテクスチャが崩れずに軽量化をすることができます。 元モデルの形状、ポリゴン数によって最適な値は変わりますが、元の形状から変形しすぎない程度の削減をすれば問題ないと思います。
ぜひ使ってみてください!