(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

1クリックでポリゴンを削減するMesh Simplify【Unity】【アセット】


このエントリーをはてなブックマークに追加

この記事でのバージョン
Unity 2018.2.5f1


はじめに

今回は1クリックで3Dモデルのポリゴンを削減するMesh Simplifyというアセットの紹介です!



イメージとしては以下のような感じ。


f:id:kan_kikuchi:20180828112927g:plain


なお、同じパブリッシャーがリリースしている以下のアセットにも含まれているそうなので、

LODを使う場合はこちらを買った方が良いかもしれません。(未確認)



また、本記事に出てくる3Dモデルは以下のものを使っています。






ポリゴン数を削減

さっそく本題のポリゴン数を削減する方法ですが、

Mesh SimplifyをAddし、Vertexで削減後のポリゴン数を%で指定したら、

Compute meshボタンを押すだけ。


f:id:kan_kikuchi:20180828115328j:plain


これだけでMesh SimplifyをAddした

オブジェクトやその子以下のオブジェクトに付いてるMeshのポリゴンを削減してくれます!

(MeshRendererでもSkinnedMeshRendererでもOK)


f:id:kan_kikuchi:20180828115558p:plain
f:id:kan_kikuchi:20180828122257p:plain


また、どれだけ削減したかもMesh Simplifyで確認出来ます。

(左が削減後、右が削減前)


f:id:kan_kikuchi:20180828120909j:plain


ちなみに元のメッシュが変更されているわけではないので、

Restore Original Meshボタンを押せば削減前のMeshにすぐに戻せますし、


f:id:kan_kikuchi:20180901103050j:plain


Preview Original Meshにチェックを入れる事でオリジナルのMeshを表示出来るので、

削減前後のポリゴンの比較も簡単に行えます。


f:id:kan_kikuchi:20180828121739g:plain


設定と保存

デフォルトでは子以下にあるオブジェクトのMeshも削減しますが、

Mesh SimplifyをAddしたオブジェクトだけを対象にしたい場合はRecurse Into Childrenを無効にします。


f:id:kan_kikuchi:20180828121025j:plain


また、デフォルトでは削減後のメッシュはファイルとして保存していませんが、

Enable Prefab Usageを有効にすると、削減後にメッシュを保存するようになります。

(有効にした時のどこに保存するか聞かれる。)


f:id:kan_kikuchi:20180828121152j:plain


ただし、メッシュの保存には時間がかかるので、

最初は無効にして、どれぐらい削減するか調整し、最後に保存するという感じなると思います。


なお、残りの設定の意味は以下の通りです。

どれもポリゴン削減時に出来るだけ見た目を維持しようというものなので、基本的に有効で大丈夫です。


f:id:kan_kikuchi:20180828121310j:plain

  • Use Edge Length : エッジの長さを考慮に入れる
  • Use Curvature : 三角形の間の角度を考慮入れる
  • Protect Texture : マッピングの整合性を維持しようとする
  • Keep Borders : オブジェクトの境界線を形成する頂点を維持しようとする



ポリゴンをより減らす、または減らさない部分を指定

Mesh Simplifyはポリゴンをより減らす、または減らさない部分を指定する事も可能です。


やり方はVertex Relevance Modifiersを開いた所にあるAdd New SphereでSphereを生成し、

Sphereのサイズや場所、Relevanceを調整するだけ。


f:id:kan_kikuchi:20180828122015j:plain


SphereはScene上で確認でき、青い球が影響範囲で赤い点が影響する頂点です。


f:id:kan_kikuchi:20180828122026j:plain


なお、Relevanceの値が大きいほど影響が大きくなり、

正の値だとポリゴンを減らさないように、負の値だとより減らすようになります。

f:id:kan_kikuchi:20180828122115j:plain


おわりに

そこそこな値段はしますが、簡単で使いやすい良アセットでした!

ポリゴン減らしたくない所、より減らしたい所を直感的に指定出来るの点や、

Unityエディタ上だけで完結する点も最高です……!