こちらの書籍のモデルおよびモーションファイルを使用させていただいています。
ttp://dxlib.o.oo7.jp/SwordBout/
DXライブラリの3Dモーション管理は良くわかっておらず、2回同じものをロードして行うといった意味です。
下記クラスでインスタンスを生成して
class MV1AnimeSet
{
public:
int model,neutral,run;
int rootflm;
// デフォルト状態を保持 TODO
MV1AnimeSet()
{}
MV1AnimeSet(char* modelfile,char* neutralfile,char* runfile)
{
LOADMV1( model,modelfile);
// デフォルト状態を保持
LOADMV1( neutral,neutralfile );
LOADMV1( run,runfile );
rootflm = MV1SearchFrame(model, "root"); // 基礎"root"になるフレームを取得
MV1SetFrameUserLocalMatrix(model, rootflm, MGetIdent()); // モデルアニメーションの素材の座標移動を0にする(勝手に動かなくする)
}
};
下記コンストラクタでインスタンス生成
MV1AnimeSet syujinkou("Player/PC.MV1","Player/Anim_Neutral.mv1","Player/Anim_Run.mv1");
MV1AnimeSet syujinkou2("Player/PC.MV1","Player/Anim_Neutral.mv1","Player/Anim_Run.mv1"); // 全く同じ
上記のように2つ同じものを生成して、生成した数だけ表示はうまくいきます。
しかし、同一の syujinkou を使用したら、モデルに紐付けされた内部データを互いにいじってしまいうまくいきません。
これらをうまくする方法がわからずに悩んでいます。
しかし、MV1DuplicateModel( を使用する発想は思いつつ来ませんでした。
早速試してみます。ありがとうございます。