「lilNDMFMeshSimplifier」でポリゴン削減してみよう

lilNDMFMeshSimplifierは開発中なので、破壊的な変更が生じる場合があります。単に利用するだけであれば大きな問題は生じにくいと思いますが予めご了承ください。
また、本ページの内容が古くなる可能性がありますので、使用前にReadme等をご確認ください。(2024年10月14日現在の内容)

NDMF対応のポリゴン削減ツールは「Mantis LOD EditorのNDMF化ツール」が有名かつ精度が非常に高いのですが、似たような事ができるものとして「lilNDMFMeshSimplifier」があります。言い換えると「UnityMeshSimplifierのNDMF化ツール」ですかね(?)

GitHub - lilxyzw/lilNDMFMeshSimplifier: Simplify meshes at build time.
Simplify meshes at build time. Contribute to lilxyzw/lilNDMFMeshSimplifier development by creating an account on GitHub.
GitHub - Whinarn/UnityMeshSimplifier: Mesh simplification for Unity.
Mesh simplification for Unity. Contribute to Whinarn/UnityMeshSimplifier development by creating an account on GitHub.

Unityプロジェクトに導入する

VCC(ALCOM)からインポートする

バージョン0.2.0リリースの際に、VCC(またはALCOM)からインポートできるようになりました。lilToonをお使いであればパッケージ一覧に追加されていますので、インポートを行ってください。

まだVPMリポジトリを追加していない場合

lilToonの公式ページから「VCCに追加」ボタンを押して追加します。

lilToon
アバターを用いたサービス向けに開発した多機能トゥーンシェーダーです。

(※lilNDMFMeshSimplifierのページが別途用意されたらリンク先を修正しておきます)

Git URLで指定して入れる(以前のやり方)

VCCではなくUPMで導入する方法です。

まず、ウィンドウ→パッケージマネージャーを開きます。

左上の+ボタンから「GIT URLからパッケージを加える」を選択します。

次のURLを入れて「Unity Mesh Simplifier」をインポートします。

GitHub - Whinarn/UnityMeshSimplifier: Mesh simplification for Unity.
Mesh simplification for Unity. Contribute to Whinarn/UnityMeshSimplifier development by creating an account on GitHub.

「Unity Mesh Simplifier」がインポートされたことを確認できたら、「lilNDMFMeshSimplifier」も同じようにインポートします。

GitHub - lilxyzw/lilNDMFMeshSimplifier: Simplify meshes at build time.
Simplify meshes at build time. Contribute to lilxyzw/lilNDMFMeshSimplifier development by creating an account on GitHub.

gitがないってエラーが出るんだけど?

「Git for Windows」を入れる必要があります。

Git for Windows
We bring the awesome Git VCS to Windows

「GitHub for Windows」を入れても付いてくるみたいですよ。

https://github.com/apps/desktop

ローカルから入れる場合(以前のやり方)

GitHubの各ページにあるCodeボタンを押すとダウンロードができますので、「lilNDMFMeshSimplifier」と「UnityMeshSimplifier」のデータを丸ごとダウンロードして、ZIPファイルを適当な場所に展開しておきます。

先程とは異なり、左上の+ボタンから「ディスクからパッケージを加える」を選び、それぞれの「package.json」を選べばローカルインストールが行えます。

ダウンロードしてきたZIPファイルを展開する際は、直接Unityのプロジェクトフォルダ内に入れないようにした方が良いです。

ローカルフォルダーからパッケージをインストールする - Unity マニュアル
Package Manager は、パッケージを Unity のプロジェクトフォルダー外に保存していても、コンピューター上のどこからでもパッケージをロードできます (例えば、com.unity.my-local-package という名前の...

早速ポリゴン数削減をしてみよう

断罪セーラーを着せたマヌカちゃんを用意しました。198,572ポリゴンです。(前回の使い回し)

まずは太もも部分の鎖を削減してみます。ポリゴン数多そうですよね。

鎖オブジェクトのインスペクタータブにある「コンポーネントを追加」から「NDMF Mesh Simplifier」を選びます。

デフォルトでは品質に0.5が入力されていますので、ポリゴン数が半分になります。

各パラメーターの解説は以下の通りです。

Mesh Simplifier API
Mesh simplification for Unity. Contribute to Whinarn/UnityMeshSimplifier development by creating an account on GitHub.

とりあえずこのままPlayモードに入ってみましょう。

NDMF Previewに対応しているので、スクリプトを入れた時点でリアルタイムに処理されます。(もちろん、NDMF Preview対応していない他のツールはPlayモードに入るなどしないと数値が反映されませんが)

見た目がガタガタとしていますが、鎖ぐらい細かいオブジェクトの場合は至近距離で見ないと分からないと思います。鎖部分だけの削減で19万から18万ポリゴンに減りました。

もちろん、品質を半分となる0.5ではなく0.75とか0.8などに上げると、ポリゴン数があまり減らない代わりに本来の見た目に近い状態になります。

自動プレビューが動かない場合は

ツール→NDM Frameworkにある「Enable Preview」にチェックが入っているかどうか確認してください。また、プラグイン毎にプレビューするかどうかを「Configure Previews」から個別に選択できます。

調子に乗ってどんどん設定してみる

顔以外に片っ端から設定してみたところ、18万ポリゴンから13万ポリゴンまで削減できました。正確には66,282ポリゴン削減したので、アバター1体分ぐらいは減ったんじゃないでしょうか。

まずはそのまま実行してみて、形が大きく崩れるようなら「境界エッジを保持」や「UVシームのエッジを保持」あたりを有効にしてみたりすると破綻を少なくできる感じがします。靴下やタイツのように素体にフィットしている部分も貫通しやすくなりますので、無理して使わないことも重要です。

軽く試してみた限りでは、平面部分にテクスチャで模様が描いてあるような部分は壊れやすいように思いました。今回の場合は制服の袖の部分とかがそうですね。この辺りはMantis LOD Editorの方が上手くやれます。

2024/10/14:VCC対応版について追記

タイトルとURLをコピーしました