表示するとこまではいきました
ただ原点(0,0,0)においても王レイヤーについてきたりとおかしなことになります
また再生が終わるとステージのテスクチャのUVがずれるのもわけがわかりません
再生描画までいっているので読み込みはできていると思います
Effekseer::Matrix44 TranslateMatrix44(const Matrix& mat){
Effekseer::Matrix44 ret;
for (int i = 0; i < 4; i++){
for (int j = 0; j < 4; j++){
ret.Values[i][j] = mat.m[i][j];
}
}
return ret;
}
Effekseer::Matrix43 TranslateMatrix43(const Matrix& mat){
Effekseer::Matrix43 ret;
for (int i = 0; i < 4; i++){
for (int j = 0; j < 3; j++){
ret.Value[i][j] = mat.m[i][j];
}
}
return ret;
}
EffekseerTest::EffekseerTest()
{
g_manager = NULL;
g_renderer = NULL;
g_handle = 0;
g_effect = NULL;
}
EffekseerTest::~EffekseerTest()
{
// エフェクトの破棄
SAFE_RELEASE(g_effect);
g_manager->Destroy(); // エフェクト管理用インスタンスを破棄
g_renderer->Destory(); // 描画用インスタンスを破棄
}
void EffekseerTest::Init(const Vector3& cpos, const Vector3& ctarget)
{
// 描画用インスタンスの生成
g_renderer = ::EffekseerRendererDX9::Renderer::Create(iexSystem::GetDevice(), EFFECT_MAX);
// エフェクト管理用インスタンスの生成
g_manager = ::Effekseer::Manager::Create(EFFECT_MAX);
// 描画用インスタンスから描画機能を設定
g_manager->SetSpriteRenderer(g_renderer->CreateSpriteRenderer());
g_manager->SetRibbonRenderer(g_renderer->CreateRibbonRenderer());
g_manager->SetRingRenderer(g_renderer->CreateRingRenderer());
g_manager->SetModelRenderer(g_renderer->CreateModelRenderer());
// 描画用インスタンスからテクスチャの読込機能を設定
//独自拡張可能、現在はファイルから読み込んでいる。
g_manager->SetTextureLoader(g_renderer->CreateTextureLoader());
g_manager->SetModelLoader(g_renderer->CreateModelLoader());
g_manager->SetCoordinateSystem(::Effekseer::COORDINATE_SYSTEM_LH);
// エフェクトの読込
g_effect = Effekseer::Effect::Create(g_manager, (const EFK_CHAR*)L"DATA\\test.efk");
// 投影行列を設定
g_renderer->SetProjectionMatrix(
::Effekseer::Matrix44().PerspectiveFovRH(90.0f / 180.0f * 3.14f,(float)iexSystem::ScreenWidth / (float)iexSystem::ScreenHeight, 1.0f, 500.0f));
g_handle = g_manager->Play(g_effect, 0.0f, 0.0f, 0.0f);
// エフェクトの調整
g_manager->SetLocation(g_handle, 0.0f, 0.0f, 0.0f);//位置
g_manager->SetRotation(g_handle, Effekseer::Vector3D(0.0f, 0.0f, 0.0f), 0.0f);//回転
g_manager->SetScale(g_handle, 1, 1, 1);//倍率
}
void EffekseerTest::Regist(int BulletID, int BEID)
{
g_manager->StopEffect(g_handle);
}
void EffekseerTest::Update(const Vector3& cpos, const Vector3& ctarget)
{
// カメラ行列を設定
g_renderer->SetCameraMatrix(
::Effekseer::Matrix44().LookAtRH(::Effekseer::Vector3D(cpos.x, cpos.y, cpos.z), ::Effekseer::Vector3D(ctarget.x, ctarget.y, ctarget.z), ::Effekseer::Vector3D(0.0f, 1.0f, 0.0f)));
//更新
g_manager->Update(); // 更新処理
}
void EffekseerTest::Render()
{
g_renderer->BeginRendering(); // 描画開始処理
g_manager->DrawHandle(g_handle); // 描画
g_renderer->EndRendering(); // 描画終了
}
自分の勉強不足もあるんですが
// 投影行列を設定
g_renderer->SetProjectionMatrix(
::Effekseer::Matrix44().PerspectiveFovRH(90.0f / 180.0f * 3.14f,(float)iexSystem::ScreenWidth / (float)iexSystem::ScreenHeight, 1.0f, 500.0f));
の引数がいまいち何をやっているのかわかりません
おそらくはカメラの設定などがうまくいってないと思うんですが
わかる方いましたらお願いしたします