-
Notifications
You must be signed in to change notification settings - Fork 435
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BlendShapeの数が多いとファイルサイズが肥大化しがちである #295
Comments
Unity 2018.3 は、FBXのBlendShapeにおける法線・接線データに対応しました。 Unityエディタ上の話ですが、これに伴い、同バージョン以降を利用してGLB/VRM/VCI化を行うと、メッシュアセットのファイルサイズが大きくなるとともに、頻繁に読み込みで止まるようになりました。 Unity 2018.2以前でFBXからエクスポートした場合と同様に、既定でBlendShapeの法線・接線データを無視するようにし、オプションでこれらのデータを利用できるようにしても良いのではないかと思います。 |
BlendShapeの法線・接線データのExportはオプションにするのは良いと思います。Unity 2018.3以降で問題が出ているとのことなので、出来れば次バージョンで対処したいところではあります。 |
UniVRM v0.53以下のバージョンでは、法線の無いブレンドシェイプを読み込むとエラーになる箇所があったため、v0.54ではいったんこのエラー修正を入れ、Export時に法線を取り除くオプションは次回以降のバージョンで再度検討致します。 |
別案ですが、出力時などにブレンドシェイプを含むメッシュと含まないメッシュに分離する機能を実装できないでしょうか。 |
はい、メッシュの統合ではなく分離で、Cats Blender Plugin の Separate by shapes のように、ポリゴン単位で分離したいという意図でした。 変換前
変換後
|
なるほど、分離するUlitityの追加を検討してみます。 |
0.56の作業予定 FBX等に含まれていたBlendShapeすべてを含める必要はない
のオプションを追加して BlendShape の数を減らせるようにします 安全なオプション sparse
メッシュの分割方法によりますが容量削減の効果があります。 わりと安全(UniVRMと別の実装ではロードできない場合があります) BlendShapeの法線・接線データを削除する
UniVRM v0.53以下はロードできない メッシュ分割Unityシーンの構成変更のUtilityとして存在した方がよさそうです。 |
ブレンドシェイプを削るオプションを追加しました、v0.56のバージョンから使用出来る予定です。 |
BlendShapeがたくさんある(かつ頂点数がそこそこある)モデルの最終的なファイルサイズのほとんどをBlendShapeが占めてしまい,ファイルサイズ制限が厳しい外部サービスにVRMモデルを登録する手間が増えてしまいます.
実際に手持ちのモデルをエクスポートし,ファイルサイズの専有割合を比べてみたところ,最終サイズ約47MBに対してBlendShapeが約35MBを占めていました.
なぜこの値になるかというと,次の計算式になります.
18179 (モデルの頂点数) * 2 (usePosition, useNormal) * 84 (BlendShape数) * 12 (float[3]のbyte数) ≒ 35MB
gLTFフォーマットの規定までは追いかけられていませんが,VRMの特性上必ずしも出力されたモデルにFBX等に含まれていたBlendShapeすべてを含める必要はないのかなと思います.
VRMとしてはBlendShapeProxy経由で操作されることが期待されていて,サービス利用側としてもそれ以外のBlendShapeに対応することはオプションであるという認識でいます.
The text was updated successfully, but these errors were encountered: