3Dモデルの移動
Posted: 2012年7月01日(日) 23:04
3dのキャラクタモデル(.pmd)に
サンプルプログラムの SetModelFramePosition を使い
void SetModelFramePosition( int ModelHandle, char *FrameName, int SetModelHandle )
{
MATRIX FrameMatrix ;
int FrameIndex ;
// フレーム名からフレーム番号を取得する
FrameIndex = MV1SearchFrame( ModelHandle, FrameName ) ;
// フレームの現在のワールドでの状態を示す行列を取得する
FrameMatrix = MV1GetFrameLocalWorldMatrix( ModelHandle, FrameIndex ) ;
// セットするモデルの状態を示す行列をフレームの状態を示す行列と同じにする
MV1SetMatrix( SetModelHandle, FrameMatrix ) ;
}
.mqo形式のアクセサリーモデルを3dのキャラクタモデルのフレームに追従させることはできました。
しかし、ボタン入力を受け、フラグがたつと、追従ではなく、モデルの座標の少し前に表示させたいのですが
うまくいきません。
ボタンを切り替えた時にいた、モデル座標にアクセサリーモデルが残ってしまい、ついてきません。
確認したところ、アクセサリーのモデルは常にモデルの少し前を示しています。
MV1SetPositionの場所も色々変えてみましたがダメでした。
SetModelFramePositionを使った後は何か処理行わないといけないのでしょうか?
サンプルプログラムの SetModelFramePosition を使い
void SetModelFramePosition( int ModelHandle, char *FrameName, int SetModelHandle )
{
MATRIX FrameMatrix ;
int FrameIndex ;
// フレーム名からフレーム番号を取得する
FrameIndex = MV1SearchFrame( ModelHandle, FrameName ) ;
// フレームの現在のワールドでの状態を示す行列を取得する
FrameMatrix = MV1GetFrameLocalWorldMatrix( ModelHandle, FrameIndex ) ;
// セットするモデルの状態を示す行列をフレームの状態を示す行列と同じにする
MV1SetMatrix( SetModelHandle, FrameMatrix ) ;
}
.mqo形式のアクセサリーモデルを3dのキャラクタモデルのフレームに追従させることはできました。
しかし、ボタン入力を受け、フラグがたつと、追従ではなく、モデルの座標の少し前に表示させたいのですが
うまくいきません。
ボタンを切り替えた時にいた、モデル座標にアクセサリーモデルが残ってしまい、ついてきません。
確認したところ、アクセサリーのモデルは常にモデルの少し前を示しています。
MV1SetPositionの場所も色々変えてみましたがダメでした。
SetModelFramePositionを使った後は何か処理行わないといけないのでしょうか?