モデルにBlend Shapeを設定するとUnity上のデータにどんな影響があるのか気になったので検証しました。
頂点を一つだけ動かしたBlend Shapeで検証する
まず、頂点を一つだけ動かしたBlend Shapeを作ります。
Blenderでの設定はこんな感じです。頂点が一つだけ飛び出しています。
これをUnityにインポートします。
そしてImporterのImport BlendShapesの項目をオンにした状態でApplyした後、メッシュだけを複製してFBXから取り出します。
同様にしてImport BlendeShapesの項目をオフにした状態のメッシュも取り出します。
そしてこれらのメッシュをテキストエディタで開いて中身を比べます。
手っ取り早くWinMergeで比較しました。
上図の右がBlend Shape有りのものです。
m_ShapesにBlend Shapeの情報が追加されていることがわかります。
ここで注目したいのが、Blend Shapeなしの状態と比較して変化がある頂点の情報だけが追加されている点です。
このことから、Blend Shapeを使っても動かす頂点が少なければ容量はそこまで増えないことがわかります。
実際にファイルサイズを見てみてもほぼ変わっていませんでした。
多数の頂点を動かしたBlend Shapeで検証する
次に多数の頂点を動かしたBlend Shapeで同様の検証を行います。
これをテキストエディタで開くと、m_Shapesのverticesに大量に情報が追加されています。
ファイルサイズも大幅に(想像以上に)膨れ上がりました。
結論
Blend Shapeを使うと動かす頂点の数に比例してMeshの容量が増えていきます。
さらにBlend Shape一頂点あたりの情報量は結構大きいので、
多数の頂点を動かしたBlend Shapeを使う場合には注意が必要です。