実行

概要

ここでは、どのようにしてエフェクトを表示するかを説明します。

DirectX9のサンプル(VisualC++2010)「RuntimeSample/DirectX9.sln」

初期化処理

描画管理クラスとエフェクト管理クラスのインスタンスの生成・初期化します。
DirectX、もしくはOpenGLの初期化を行った後に行う必要があります。

DirectX9の場合


// 描画管理インスタンスの生成
::EffekseerRenderer::Renderer* renderer = ::EffekseerRendererDX9::Renderer::Create( LPDIRECT3DDEVICE9, 最大表示スプライト数 );
// サウンド管理インスタンスの生成
::EffekseerSound::Sound* sound = ::EffekseerSound::Sound::Create( IXAudio2*, モノラル再生用ボイス数, ステレオ再生用ボイス数 );
// エフェクト管理用インスタンスの生成
::Effekseer::Manager* manager = ::Effekseer::Manager::Create( 最大表示スプライト数 );

OpenGLの場合


// 描画管理インスタンスの生成
::EffekseerRenderer::Renderer* renderer = ::EffekseerRendererGL::Renderer::Create( 最大表示スプライト数 );
// エフェクト管理用インスタンスの生成
::Effekseer::Manager* manager = ::Effekseer::Manager::Create( 最大表示スプライト数 );

※OpenAL,OpenSL ES等は現在未対応です。

設定

初期化の後、描画方法、データ読込方法、座標系等を設定します。


// 描画方法の指定、独自に拡張しない限り定形文です。
manager->SetSpriteRenderer( renderer->CreateSpriteRenderer() );
manager->SetRibbonRenderer( renderer->CreateRibbonRenderer() );
manager->SetRingRenderer( renderer->CreateRingRenderer() );
// テクスチャ画像の読込方法の指定(パッケージ等から読み込む場合拡張する必要があります。)
manager->SetTextureLoader( renderer->CreateTextureLoader() );
// サウンド再生用インスタンスの指定
manager->SetSoundPlayer( sound->CreateSoundPlayer() );
// サウンドデータの読込方法の指定(圧縮フォーマット、パッケージ等から読み込む場合拡張する必要があります。)
manager->SetSoundLoader( sound->CreateSoundLoader() );
// 座標系の指定(RHで右手系、LHで左手系)
manager->SetCoordinateSystem( Effekseer::CoordinateSystem::RH );

エフェクトの読込と再生

エフェクトをファイルから読み込みます。パッケージ等からファイルを読み込みたい場合、データ読込方法の指定にて読込方法を拡張する必要があります。

なお、読み込み時の文字コードはUTF16となっております。Windowsの場合はwchar_t、他OSの場合は、「::Effekseer::ConvertUtf8ToUtf16」を使用してUTF8からUTF16に変更して読みこむようお願いします。


// エフェクトの読込
Effekseer::Effect* effect = Effekseer::Effect::Create( manager, 読込先パス );
// エフェクトの再生
Effekseer::Handle handle = manager->Play( effect, 初期位置 );

更新処理

再生中のエフェクトのパラメーターを変更しつつ、更新を行います。


// 投影行列の更新
renderer->SetProjectionMatrix( ::Effekseer::Matrix44 );
// カメラ行列の更新
renderer->SetCameraMatrix( ::Effekseer::Matrix44 );
// 3Dサウンド用リスナー設定の更新
sound->SetListener( リスナー位置, 注目点, 上方向ベクトル );
// 再生中のエフェクトの移動等(::Effekseer::Manager経由で様々なパラメーターが設定できます。)
manager->AddLocation( handle, ::Effekseer::Vector3D );
// 全てのエフェクトの更新
manager->Update();

描画処理

描画を行います。DirectX9の場合、BeginSceneとEndSceneの間で実行してください。


renderer->BeginRendering();
manager->Draw();
renderer->EndRendering();

解放処理

解放処理を行います。DirextX、OpenGL自体を解放する前に行う必要があります。


// エフェクトを解放します。再生中の場合は、再生が終了した後、自動的に解放されます。
ES_SAFE_RELEASE( effect );
// エフェクト管理用インスタンスを破棄
manager->Destroy();
// サウンド用インスタンスを破棄
sound->Destroy();
// 描画用インスタンスを破棄
renderer->Destory();