最新バージョンを含めたバージョン3.11d以降でMV1SetAttachAnimBlendRate関数を用いたアニメーションのブレンドにて不具合がありましたので報告いたします。
あるモデルに対して2つのアニメーション(体を前に向けたものと横に向けたもの)をブレンドしたところ、3.11d以降ではモデルが細くなってしまうという現象が起こりました。
以下がその時の画像です。
ttp://or2.mobi/index.php?mode=image&file=73338.png
上段が3.11dよりも前のバージョンの結果、
下段が3.11d以降のバージョンの結果です。
また、以下が実験時のコードです。
------------------------------------------
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
int ModelHandle, AttachIndex1, AttachIndex2;
float Rate ;
// DXライブラリの初期化
ChangeWindowMode(TRUE);
if( DxLib_Init() < 0 )
{
// エラーが発生したら直ちに終了
return -1 ;
}
// 画面が切り替わるのをちょっと待つ
WaitTimer( 1000 ) ;
// 3Dモデルの読み込み
ModelHandle = MV1LoadModel( "Rin/md.mv1" ) ;
// 画面に映る位置に3Dモデルを移動
MV1SetPosition( ModelHandle, VGet( 320.0f, -300.0f, 600.0f ) ) ;
MV1SetScale(ModelHandle, VGet(20.0f, 20.0f, 20.0f));
AttachIndex1 = MV1AttachAnim( ModelHandle, 0, -1, FALSE ) ;
AttachIndex2 = MV1AttachAnim( ModelHandle, 1, -1, FALSE ) ;
// 描画先を裏画面に変更
SetDrawScreen( DX_SCREEN_BACK ) ;
for( Rate = 0.0f ; Rate <= 1.0f ; Rate += 0.2f )
{
ClearDrawScreen() ;
MV1SetAttachAnimBlendRate( ModelHandle, AttachIndex1, 1.0f - Rate ) ;
MV1SetAttachAnimBlendRate( ModelHandle, AttachIndex2, Rate ) ;
MV1DrawModel( ModelHandle ) ;
ScreenFlip() ;
WaitKey();
}
// DXライブラリの後始末
DxLib_End();
// ソフトの終了
return 0;
}
------------------------------------------
こちらがそのとき使用したモデルはこちらです。(ダウンロードパスワードは「rin」です)
ttp://(w3つ).dotup.org/uploda/(w3つ).dotup.org5068142.zip.html
ご多忙のこととは存じますが、よろしくお願いいたします。