【Unity】FBX ImporterのMesh Compressionについて

f:id:halya_11:20180327135559p:plain

FBX Importerの設定項目であるMesh Compressionについて調べてみました。

Mesh Compressionとは?

こちらのアプリ容量削減のためのマニュアルには次のような記述があります。

Mesh and Animation compression uses quantization, which means it takes less space, but the compression can introduce some inaccuracies.

Quantizationによって圧縮されるとのことです。
Quantizationとは量子化のこと。量子化による圧縮って何だろう?

ネットワークの話なのでちょっと違いますが、下記のサイトがわかりやすかったです。
https://blogs.msdn.microsoft.com/ito/2008/01/31/1323/

Unityのフォーラムにも質問が載っていました。
https://forum.unity.com/threads/mesh-compression-what-does-it-actually-do.33073/

要するに、小数点の精度を下げる代わりに容量を減らすということみたいですね。
すなわち、メモリとかディスクに優しくなります。

どの程度圧縮されるのか?

実際どの程度圧縮されるのでしょうか。
下記のサイトのケースだと、LOWにするだけでOFFの状態よりもかなり圧縮されていることがわかります。

unitygeek.hatenablog.com

また、下記の論文の3.1に量子化による圧縮の記述があります。
http://www.nakl.t.u-tokyo.ac.jp/~masuda/papers/seimitsu03.pdf

これによると座標・法線・色によって小数点の精度を変えているようです。
そう考えると、メッシュが持っている情報によっても圧縮率は変わってきそうです。

使い方

効果がなかなか大きそうなので、見た目的に許容できる範囲で圧縮設定はやっておいたほうがよさそうです。

ただ、各圧縮設定ごとに見た目にどれだけ変化を及ぼすかはケースバイケースで、
どこまで許容するかもケースバイケースなので、実際に設定してビルドしてみるのが良さそうです。

マニュアルにもこう書いてあります。

Experiment with what level of compression is acceptable for your models.

参考サイト

docs.unity3d.com

docs.unity3d.com

unitygeek.hatenablog.com