この作業例では、約50万ポリゴンの全身3Dスキャンモデルを軽量化しました。
扱える規模は端末や用途で異なります。
VRChatなどへの適合はポリゴン数だけでは決まらないため、利用先の現行要件も確認してください。
リダクションでは約2万三角ポリゴンを目標にしました。
以下は過去の作業記録で、現行版での再現試験は行っていません。
手作業で全面的に作り直す時間を抑えるため、自動処理を中心に進めます。
処理時間はモデルとPC性能に左右されます。
元モデルとテクスチャは別に保管して作業してください。
今回は「リダクションによる削減」と「リトポロジーによる削減」の2通りのアプローチを試しました。
既存のUVを使いながら面数を減らす方法から試すならリダクション、面の配置を組み直すならリトポロジーを選びます。
軽量化後にアニメーションさせる場合は、どちらの方法でも関節や顔の変形を別途確認します。
リダクションでポリゴン数を削減する方法
MayaのReduceを単純に適用すると顔の造形が崩れて粗さが目立ったため、ZBrushのプラグイン「Decimation Master」を活用します。
Decimation Master(ZBrush)
- Editモードで対象のモデルを配置します。
- ZpluginからDecimation Masterを開きます。
- 「Keep UVs」(UVを保持)にチェックを入れ、「Pre-process Current」をクリックして事前計算を実行します。
- 「k Polys」は千ポリゴン単位の目標値です。1は約1,000、100は約10万に相当します。残したい形状に合わせて指定し、「Decimate Current」を実行して実際の出力数と見た目を確認します。

- 削減処理の完了後、モデルをエクスポートします。
顔などの細部を優先したい場合は、削減前のモデルでその領域をマスクしてからPre-process Currentを実行する方法があります。
前処理後にマスクやモデルを変更しても、その変更は既存の前処理結果に反映されないため、変更を含めるには前処理をやり直します。
削減済みのモデルで新たに前処理すると、その削減済み形状が次の基準になるため、元形状から比較したいときは保存した元モデルへ戻ります。
複数のSubToolは異なる名前にし、Currentが選択中のSubTool、Allが表示中のSubTool全体を対象にする点を確認してください。
Reduce(Maya)
- Mayaへ削減後のモデルをインポートし、三角ポリゴン数を確認します。旧作業記録の中間モデルは約10万三角ポリゴンでしたが、k Polys=1の指定からその数になるという意味ではありません。
- Mesh > Reduceのオプションを開き、目標のポリゴン数を指定します。

以上の手順で、目標の約2万三角ポリゴンまでモデルを軽量化できました。

リダクションのまとめ
- 削減後のメッシュでは、追加編集や関節の変形に適した面の配置を保てない場合があります。特に顔周辺の形状を保持したい場合は注意が必要です。
- Keep UVsで既存UVを保持する設定を使えます。ただし削減後のUVやテクスチャの見え方を確認し、継ぎ目や顔の細部が崩れていないかを比較してください。
リダクション参考
Pixologic :: ZBrush :: OakCorp WEB
リトポロジーでポリゴン数を削減する方法
ここからは、元モデルの色をポリペイントへ変換し、作り直したメッシュへ色を転写する手順です。
色の転写だけでは失われた凹凸や輪郭は復元されないため、ZRemesherの直後に顔・耳・指先などの形状を元モデルと比較してください。
テクスチャ準備
- まず元のテクスチャを保管し、読み込み後に上下の向きを確認します。逆になっている場合だけ上下反転します。外部ソフトとZBrushの両方で反転して元に戻さないようにしてください。
転写元モデルの準備
- ZBrushを起動し、MaterialをFlat Colorに変更します。
- Textureパレットで画像をImportし、Tool > Texture Mapのテクスチャ選択欄から割り当てます。New Txtrは新しいテクスチャを作る機能で、既存画像を読み込む操作ではありません。
- Editモードでモデルを配置し、テクスチャが正常にマッピングされているか確認します。
- 十分な頂点密度とUVがある状態でTool > Polypaint > Polypaint From Textureを実行します。Colorizeを有効にし、テクスチャ表示を外した状態でも色が残っているか確認します。

転写先モデルの作成と設定
- Tool > SubTool > Duplicateをクリックして、SubToolを複製します。
- SubTool一覧から複製したモデルを選択し、Tool > Geometry > ZRemesherを開きます。
- Target Polygons Countは千ポリゴン単位の目標です。2は約2,000を目指す設定で、約1.4万を指定する値ではありません。モデル形状やAdaptive Densityなどにより結果が変わるため、実行後の面数を確認して調整します。

- リトポロジーによってUV情報が失われているため、Zplugin > UV Master > Unwrapを実行して新たにUV展開を行います。

- Tool > Geometry > Divideで段階的に細分化し、転写したい色の細かさに必要な頂点密度を確保します。一律に7千万ポリゴンまで増やす必要はありません。メモリ使用量と応答を確認し、保存しながら進めてください。
- 使用するブラシをZProjectブラシに切り替えます。

- 転写先(複製側)を選び、ブラシアイコン(Colorize)をONにします。色だけを転写するためRGBをON、ZAddとZSubの両方をOFFにします。

- Transp(半透明表示)をONにし、GhostはOFFに設定します。

- Tool > UV Mapで出力テクスチャのサイズを設定します。4096はこの例の値です。大きく設定するだけで、元画像やポリペイントにない細部が復元されるわけではありません。
- 転写元と転写先のモデルが重なった状態で表面をなぞるようにペイントし、転写元のポリペイントカラーを複製モデルへ転写します。
- 上下左右から視点を切り替えながら全体にペイントします。適宜オリジナルのSubTool表示を非表示にして、塗り残しがないか確認します。
テクスチャとモデルの出力
- 転写が完了したら、転写先のUVとポリペイントを確認し、Tool > Geometry > SDivを作成済みの最高レベルにしてからTool > Texture Map > New From Polypaintを実行します。
- Clone TxtrをクリックしてTextureパレットへ送り、テクスチャを書き出します。
- Tool > GeometryのSDivスライダーを1に戻し、最下位の分割レベルにします。
- Toolパレットからローポリゴンモデルをエクスポートします。
Mayaでの確認
- Mayaへ出力したモデルとテクスチャを読み込みます。旧記録の出力は約1.4万ポリゴンですが、同じ設定で同数になる保証はありません。四角面の数と三角形換算の数を区別して確認します。


書き出した低ポリゴンモデルに新しいテクスチャを割り当て、元の高密度モデルを非表示にして結果を確認します。
顔の輪郭・耳・指先、脇や脚の間、UVの継ぎ目を見て、形状の欠けと色の塗り残しを分けて確認します。
色がぼやける場合は、元画像、転写元と転写先の頂点密度、出力テクスチャの解像度の順に確認します。
モデルと画像を別の場所へコピーした状態でも読み込めるか確認し、元モデルと重なって表示されていないことを確かめて保存してください。
リトポロジーのまとめ
- 四角ポリゴン主体に組み直せますが、自動処理だけでアニメーションに適した関節や顔のエッジ配置になるとは限りません。変形テストに応じて手作業で修正します。
- UVを展開し直した後は、継ぎ目、重なり、伸び、各部位に割り当てられた解像度を確認します。自動展開の結果をそのまま完成とは判断しないでください。
- ポリペイントを経由して投影転写を行うため、元画像に比べるとテクスチャ解像度がややぼやける傾向があります。
リトポ参考
外部リンク:http://www.perkup.jp/?p=9115
リトポロジーとリダクションの併用
上記2つのアプローチを組み合わせた検証も行いました。
このモデルでは、高密度を維持したままリトポロジーを行い、その後にリダクションを適用してみましたが、最初から目標値でリトポロジーした場合と造形の差はほとんど見られませんでした。
この作業例では、リダクションを挟むと面の規則性が崩れたため、リトポロジーのみの結果を扱いやすいと判断しました。
まとめ
リダクションとリトポロジーを、形状の保持、UV、変形の必要性で選びます。参考:Maxon:Decimation Master、ZRemesher、Texture Maps、Polypaint。


よくある質問:ZBrushで3Dスキャンのモデルのポリゴン数を減らすときのチェックリスト
3Dスキャンしたモデルは、なぜポリゴン数を減らすのですか?
表示や処理の負荷を抑えるためです。
この記事では約50万ポリゴンのモデルを軽量化しましたが、必要な面数や処理時間は用途・モデル・PC性能で変わります。
特定の面数だけでVRChatなどへの適合を保証するものではありません。
リダクションとリトポロジーは、どう違いますか?
リダクションは既存メッシュを間引く処理、リトポロジーは面の配置を組み直す処理です。
ZRemesherでは四角面主体にできますが、関節や顔の変形に適した配置かは別途確認し、必要に応じて修正します。
UV展開も継ぎ目や伸びを確認してください。
MayaのReduceだけでは、だめですか?
記事の例では、MayaのReduceを単純に適用すると、顔の造形が崩れて粗さが目立ったため、ZBrushのプラグイン「Decimation Master」を活用しました。
ZBrushで削減したあと(約10万三角ポリゴン)、Mayaの「Mesh」→「Reduce」で、目標のポリゴン数を指定して、約2万三角ポリゴンまで軽量化しています。
Decimation Masterは、どう使いますか?
モデルを複製・保存し、必要ならKeep UVsを有効にしてPre-process Currentを実行します。
k Polysは千ポリゴン単位なので、1は約1,000を目標とする指定です。
形状を保てる値からDecimate Currentを試し、出力数とテクスチャ表示を確認してください。
リトポロジーは、どう進めますか?
モデルを複製し、ZRemesherで目標面数を設定します。
Target Polygons Countの2は約2,000が目標で、約1.4万という結果を保証しません。
UVを展開し直してから必要な範囲で細分化し、色を転写します。
7千万ポリゴンへの細分化は必須ではありません。
リトポロジーで、気をつけることは?
ポリペイントを経由して投影転写を行うため、元画像に比べると、テクスチャ解像度がややぼやける傾向があります。
また、鋭利なエッジや細部の凹凸は、やや丸みを帯びます。
転写後は、上下左右から視点を切り替えて、塗り残しがないか確認してください。
リトポロジーのあとに、テクスチャを書き出すには?
UVとポリペイントを確認し、SDivを作成済みの最高レベルにしてNew From Polypaintでテクスチャを生成し、Clone Txtrから書き出します。
SDivを1へ戻してローポリゴンモデルを出力し、読み込み先で上下の向き・継ぎ目・三角形換算の面数を確認します。
リダクションとリトポロジーを、両方使ってもよいですか?
記事の検証では、高密度を維持したままリトポロジーを行い、その後にリダクションを適用しても、最初から目標値でリトポロジーした場合と、造形の差はほとんど見られませんでした。
このモデルでは、面の規則性を保つためにリトポロジーのみの結果を選びました。
メニュー名や仕様は、バージョンで変わることがあるため、最新はZBrushとMayaの公式ヘルプで確認してください。
