可変メッシュは、メッシュのデフォーメーションに固有のデータを保持します。これに加えて、可変メッシュは以下のいずれかを含みます。
ブレンドシェイプは、異なる形状にデフォームされたメッシュのバージョンを表します。Unity では、これらの形状間が補間されます。モーフターゲットアニメーションにはブレンドシェイプを使用します。これは、表情のアニメーションでは一般的な技法です。
ブレンドシェイプのデータはブレンドシェイプの頂点として保存されます。ブレンドシェイプのデータは “まばら” です。つまり、すべてのメッシュ頂点に対してブレンドシェイプ頂点があるわけではなく、メッシュ頂点がデフォームした場合にのみ対応するブレンドシェイプ頂点があります。
ブレンドシェイプの頂点には、位置、法線、接線のデルタと、1 つのインデックス値が含まれます。インデックス値の意味は、データがどのようにリクエストされたかによって異なります。
Mesh クラスでは、 Mesh.GetBlendShapeBuffer を使用して、ブレンドシェイプの頂点データにアクセスできます。この関数で、GPU 上のブレンドシェイプ頂点データにアクセスするための GraphicsBuffer が返されます。このメソッドでは、2 つの異なるバッファを選択できます。1 つはブレンドシェイプでデータを並べ替えるバッファ、もう 1 つはメッシュの頂点でデータを並べ替えるバッファです。バッファの選択によって、バッファ内のインデックス値の意味とデータのレイアウトが決まります。バッファレイアウトの詳細は、BlendShapeBufferLayout を参照してください。
ブレンドシェイプの詳細については、ブレンドシェイプの操作方法を参照してください。
このデータは必須ではありません。
スキンメッシュでは、ボーンのバインドポーズは、スケルトンがそのデフォルトの位置 (バインドポーズとも呼ばれる) にあるときのボーンの位置を表します。
Mesh クラスでは、Mesh.bindposes を使用してこのデータを取得および設定できます。各要素には、同じインデックスを持つボーンのデータが含まれています。
このデータは、スキンされたメッシュに必要なデータです。