Unity上でテクスチャを塗ってメッシュを削除できる「MeshDeleterWithTexture」をつくりました
マスク画像を使って削除することもできます pic.twitter.com/5lykccWq8s— がとーしょこら (@gatosyocora) August 11, 2019
前提として、ある部分だけ見えなくしたいという場合はその部分の①メッシュを削除するか、②テクスチャを透明にしてMtoonシェーダーを使うことで解決できます。②の方法はGIMPなどの編集ソフトで消し消しするだけなのでかんたん。ただ見えてない部分のメッシュは残っていてモデルの容量は変わりません。①の方法は容量が軽くなりますが、基本的なBlenderの知識がないと難しいです。
だったのですが、今日「MeshDeleterWithTexture beta」というテクスチャの箇所を指定することで メッシュの対応した箇所を削除できるEditor拡張を発見しました!これでBlenderが使えないわたしでもメッシュを削除することが可能になりました。
動画だけでも使い方がわかるくらいかんたんにできます。自分の備忘録の意味も込めて、その方法を解説します。
今回は例としてセシル変身でつくったキャラのお団子を削除してみます
0UniVRMをダウンロード
セシル変身アバターはVRMモデルなので、Unityで扱える状態にします。v〇〇の数字が一番でかいAssetsの中に入っている。「UniVRM~.unitypacage」をダブルクリックでダウンロードできます。
1先にダウンロードして解凍
2Unityを開く
動作保証環境はUnity 2017.4.28f1らしいのですが、2019.1.9fでも動きました。3Dにチェックを入れて適当な名前をつけます。
3.パッケージをぶっこむ
解凍したMeshDeleterWithTextureファイルの中に入ってるUnityパッケージをダブルクリック>Unity上になんか出るので、インポートをクリックします。
VRMキャラを使う方は同じ要領でUniVRMもインポートします。
上にこの2つが追加されてたら成功です。
4モデルをぶっこむ
5モデルをHierarchy上にぶっこむ
ドラッグアンドドロップでヒエラルキー上にもっていきます。
6MeshDeleterWithTexture を開いて削除したいメッシュを選択
上のGatoTool>MeshDeleterWithTexture をクリックします
右側の丸いアイコンをクリックして、削除したいメッシュを選択します。わたしの場合は髪の毛の飾り部分を削除したいので、KamiMatomeKuroという場所にありそうだったためクリックしてみました。
あたり!頭の飾り部分はここっぽい。
7削除したい部分を塗りつぶす
これとてもかんたん。
やりやすいように全画面拡大して、
DrawTypeをpenにして黄色のやつを長押ししながら、削除したいテクスチャ部分を塗りつぶします。(ペンの太さはpen/eraser sizeのスライダーで変更できる)
テクスチャを透明(消しゴムで消す)要領で塗りつぶします。削除したい部分が真っ黒になったらDeleteMeshをクリック。
完了したら自動でMeshDeleterWithTextureが閉じられます。
消えた!!
さいごに:データ容量比較
0.6MB削減できました!すくない笑
今回はアクセサリ部分の削除だったので、あまり効果を感じられませんでしたが、衣装を消して素体にする、というのならかなり容量を減らせるはずです。Quest用アバターをつくるときにはいいかも。
かんたんにメッシュを削除したいときは是非つかってみてください!
コメント