見出し画像

VRoidStudioマテリアル圧縮時のUV圧縮を極力最適化したい

VRoidStudioではVRMエクスポート時にマテリアルを圧縮できる。
要は軽量化できるというわけだが、圧縮ロジックが融通が利かないようで無駄に圧縮してしまう様子である。
特に、body側がひどい。衣装をいくらでも重ね着できる都合上仕方ないかもしれないが…

なお、今回検証しているVRoidStudioのバージョンは1.14.0である。アップデートによって更新されている可能性があることを考慮して読んでいただくとありがたい。
また、文章内でも度々言及するがマテリアル数を8または2まで圧縮したときのものを記述しており、12の場合のものは取り扱っていない。留意されたし。

今回は2つ、検証してきたので共有したい。

比較フェイズA

自作アバターを引用しよう。

これは普段私が使用しているアバターである。
元々のマテリアルは16。
bodyにかかるマテリアルは皮膚1 ボディスーツ1 ロングコート2(同一テクスチャ使用) ペンシルスカート1 ロングブーツ1 髪2 である。

下に示すとおりになった(無料配布していないテクスチャなのでモノクロであること了承願いたい)。

ややきれいに収まっている

皮膚・ボディスーツ・トップスで75%を占有している(同一テクスチャ・同一トップスの場合パラメータ違いでも纏められるようだ)。
ボトムスはトップスの25%の解像度に収まっている。
髪のテクスチャが数枚並んでいるのはオフセットと幅の関係だろう…、なるべく一枚に纏まるようにしたい所である。

比較フェイズBではなぜきれいに収まっていないのか、別のアバターを交えて解説する。

比較フェイズB

また自作アバターを引用する。

マテリアル数は17。
bodyにかかるマテリアルは皮膚0(テクスチャ完全消去) ボディスーツ2 ロングコート1 ロングブーツ1 髪3 紐リボン2(同一テクスチャ)である。

下に示すとおりになる(無料配布していないテクスチャなのでモノクロであること了承願いたい)。

最適化されていない

テクスチャの半分以上が使われていない。それどころか、トップスの解像度が比較フェイズAの25%まで縮小されている。当然ながらUVの切れ目はガタガタになること必至だ。どうしてこうなってしまうのか?

仮説フェイズ・説明フェイズ

お分かりの通りだと思うが、一応記述する。

仮説しよう。
最初の圧縮率をONEと仮称する。
ONEは以下の条件を持つ。テクスチャ枠が100%を超える場合、次の圧縮率TWOに移行する。
圧縮率TWOは圧縮率ONEより4倍圧縮する。

皮膚は有っても無くてもテクスチャ枠を消費する。
テクスチャが重複する同じパーツが存在する場合、枠の消費は一つになる。
トップス枠(皮膚・ボディスーツ・衣装上衣類)は25%の枠を一つずつ使用する。
ボトムス枠(ペンシルスカート等正方形のテクスチャを持つもの)は12.5%の枠を一つずつ使用する。
髪・ロングブーツ等512*1024テクスチャは8.75%の枠を一つずつ使用する。但し髪はオフセットや幅によってテクスチャの左右端をまたぐ場合、もうひとつ8.75%の枠を使用する。
他の靴やネクタイ・眼鏡などは元テクスチャサイズに準じてもっと圧縮されることが予想される。

よって、トップス枠・ボトムス枠・髪枠・装飾品枠はそれぞれ3枚ずつになるよう調整するとマテリアル圧縮(8or2)の効率が高まり、圧縮率ONEに収まるようにできるのではと仮定される。


比較フェイズBではトップスのテクスチャを都合13-14枚格納できるよう圧縮される。
テクスチャサイズが2048*2048になるようにした場合、トップス一つ当たりの解像度は512*512になる。
「マテリアル圧縮後のテクスチャは4096*4096で出力したらいいのでは?」と思う諸兄のいるかもしれない。
それは間違っていないのだが…、4096*4096サイズのテクスチャはとにかく重い。
特に、出力時にunityで中身を見ると分かるがLit Color用テクスチャとShade Color用テクスチャ(ちょっと暗い)が別に生成されるためアバターの容量が滅茶苦茶大きくなる。

マテリアル圧縮をしただけだとアバター容量は大きくなり、ものにもよるがVRoidStudioでは50MB程度で出力されがちである(オリジナル→8or2)。
プラットフォームにもよるが、4096サイズのテクスチャはアバター制限に引っ掛かりやすいのも有る。
昨今はアバター解像度をプラットフォーム側で調整してくれるので心配する必要はないかもしれないが注意するようにしたい。

あとがき

この記事の執筆中にVRoidStudioのv.1.15.0アップデートのお知らせが来た。

https://vroid.pixiv.help/hc/ja/articles/11881666595225--v1-15-0-CLCT-for-ROMANCE%E3%81%AA%E3%81%A9-2022%E5%B9%B410%E6%9C%8827%E6%97%A5-

圧縮周りの更新はない様子。

宣伝

11/5 11:00-11/6 18:00、NEOKET3 G島27にて出展することになっている。
アバター中心の展開になる予定だ。
開催に向けて順次設営作業を進めている。
アプリケーションは既にインストールできるので、開催まで待って欲しい。


この記事が気に入ったらサポートをしてみませんか?