>>138
ボーン行列にワールド変換行列を乗算した行列の配列になってる
float4x4 g_Mat[ 512 ]; //←こんな感じで定義

モデルA(ボーン無し)、モデルB(ボーン3つ)があって、
A→B→B→Aの順に生成した場合、下記の様に計算した行列を格納して
g_Mat[ 0 ] → 一つ目のAのワールド変換行列
g_Mat[ 1 ] → ボーン1×ワールド変換行列
g_Mat[ 2 ] → ボーン2×ボーン1×ワールド変換行列
g_Mat[ 3 ] → ボーン3×ボーン2×ボーン1×ワールド変換行列
g_Mat[ 4〜6 ] →同上
g_Mat[ 7 ] → 二つ目のAのワールド変換行列

Aをまとめて描画 ( 添え字0,7のバッファを作成し、入力レジスタに渡す)
Bをまとめて描画 ( 添え字1,4のバッファを作成し、入力レジスタに渡す)
みたいに実装してる 

HLSL側はこんな感じ
for ( int i = 0; i < 3; i++ )
{
//モデルBの場合、In.indexにはボーン番号0〜2のいずれかが入る
t_CombSkinMat += g_Mat[ In.offset.x + In.index[ i ] ] * w[ i ];
}
t_CombSkinMat += g_Mat[ In.offset.x + In.index[ 3 ] ] * ( 1.0f - w[ 0 ] - w[ 1 ] - w[ 2 ] );
Out.pos = mul( float4(In.pos, 1.0f), t_CombSkinMat );