Microsoft DirectX 8.0 (C++)

ID3DXSkinMesh

アプリケーションは、ID3DXSkinMesh インターフェイスのメソッドを使用してスキン メッシュ オブジェクトを操作する。

ID3DXSkinMesh インターフェイスは、次に示す関数のいずれかを呼び出して取得する。

Microsoft® DirectX® (.x) ファイル データ オブジェクトからスキン メッシュをロードするには、D3DXLoadSkinMeshFromXof 関数を使用する。

スキニングは、メッシュの異なる複数の頂点を複数のトランスフォーム行列によりトランスフォームするテクニックであり、個々の行列で頂点をトランスフォームした結果をブレンドし、最終的なトランスフォームされた頂点を取得する。

このプロセスは一般にスキニングと呼ばれ、ボーンのスケルトンのアニメーションに基づいて、キャラクタのスキンを定義するメッシュを変形させるために使用される。厳密なアニメーションの最も単純なケースでは、キャラクタ メッシュの異なる複数のパーツをスケルトンの一意な 1 個のボーンに関連付け、そのボーンのトランスフォームを使用して頂点をトランスフォームする。

スキニングを説明するうえで役に立つ用語の意味を次に示す。

スキニングされたキャラクタは、メッシュのセットと、メッシュの頂点に影響を与えるボーンのセットによって定義される。ボーンはトランスフォーム階層として表現される。メッシュごとに、そのメッシュに影響を与えるすべてのボーンに適用する行列があり、その行列によってメッシュがボーンのローカル座標空間にトランスフォームされる。この行列は、メッシュのボーンのボーン空間トランスフォームである。この行列は、オーサリング プロセスでスケルトンをメッシュに関連付けるときに定義される。

ID3DXSkinMesh インターフェイスのメソッドは、以下のグループにまとめることができる。

バッファ GetIndexBuffer
  GetVertexBuffer
変換 ConvertToBlendedMesh
  ConvertToIndexedBlendedMesh
情報 GetBoneInfluence
  GetDevice
GetMaxFaceInfluences
GetMaxVertexInfluences
GetNumBoneInfluences
GetNumBones
GetOptions
GetNumFaces
ロック LockAttributeBuffer
  LockIndexBuffer
LockVertexBuffer
UnlockAttributeBuffer
UnlockIndexBuffer
UnlockVertexBuffer
その他 GenerateSkinnedMesh
  GetOriginalMesh
SetBoneInfluence
UpdateSkinnedMesh
頂点 GetDeclaration
  GetFVF
GetNumVertices

ID3DXSkinMesh インターフェイスは、すべての COM インターフェイスと同じように、IUnknown インターフェイスのメソッドを継承している。IUnknown インターフェイスでは、次の 3 つのメソッドがサポートされている。

IUnknown AddRef
  QueryInterface
Release

LPD3DXSKINMESH 型は、ID3DXSkinMesh インターフェイスへのポインタとして定義されている。

typedef struct ID3DXSkinMesh* LPD3DXSKINMESH;

動作環境

  ヘッダー : D3dx8mesh.h で宣言。
  インポート ライブラリ : D3dx8.lib を使用。