剛体メッシュなのか1頂点へ影響を与えるフレームの数が1〜4個のスキニングメッシュなのかの情報は
モデル単位ではなくトライアングルリスト単位で決められているのでモデル単位で判別することはできませんが
こちらの関数でトライアングルリスト単位で判別することはできます
// 指定のトライアングルリストの頂点データタイプを取得する( DX_MV1_VERTEX_TYPE_1FRAME 等 )
int MV1GetTriangleListVertexType( int MHandle, int TListIndex ) ;
戻り値の頂点タイプは以下の通りです
// MV1モデルの頂点タイプ
#define DX_MV1_VERTEX_TYPE_1FRAME (0) // 1フレームの影響を受ける頂点
#define DX_MV1_VERTEX_TYPE_4FRAME (1) // 1〜4フレームの影響を受ける頂点
#define DX_MV1_VERTEX_TYPE_8FRAME (2) // 5〜8フレームの影響を受ける頂点
#define DX_MV1_VERTEX_TYPE_FREE_FRAME (3) // 9フレーム以上の影響を受ける頂点
#define DX_MV1_VERTEX_TYPE_NMAP_1FRAME (4) // 法線マップ用の情報が含まれる1フレームの影響を受ける頂点
#define DX_MV1_VERTEX_TYPE_NMAP_4FRAME (5) // 法線マップ用の情報が含まれる1〜4フレームの影響を受ける頂点
#define DX_MV1_VERTEX_TYPE_NMAP_8FRAME (6) // 法線マップ用の情報が含まれる5〜8フレームの影響を受ける頂点
#define DX_MV1_VERTEX_TYPE_NMAP_FREE_FRAME (7) // 法線マップ用の情報が含まれる9フレーム以上の影響を受ける頂点
#define DX_MV1_VERTEX_TYPE_NUM (8) // 頂点タイプの数
1つのメッシュに複数の頂点タイプのトライアングルリストが含まれている場合は判別は
トライアングルリスト毎に行う必要がありますが、もしモデル全体で一つのタイプで統一
されている場合は
switch( MV1GetTriangleListVertexType( ModelHandle, 0 ) )
{
case DX_MV1_VERTEX_TYPE_1FRAME:
// 剛体メッシュの場合の処理
break;
case DX_MV1_VERTEX_TYPE_4FRAME:
// スキニングメッシュの場合の処理
break;
}
↑
このように 0番目のトライアングルリストのタイプだけで分岐させれば良いかと思います
> もしくは切り替えずとも描画可能にする方法はありますでしょうか?
すみません、現状ではその方法はありません