トップページ > ブログ > create > DXライブラリでProminence3Dのエフェクトを!
ポイントは33行目。
『GetUseDirect3DDevice9()』という関数でDirect3Dデバイスオブジェクトが取得できるようなので、上の例のように書いてください。
そして、この関数を使うためには22行目の『SetUseDirect3D9Ex(FALSE)』が必要になります。これはDxLib_Init()よりも上に書く必要があるようです。
最後にProminence3Dのエフェクトを表示した後に、設定を戻すためにRefreshDxLibDirect3DSetting(50行目)が必要になります。(2017/1/22追記)
以上の点だけ気をつければ、あとはDirectX9で使用する時と何も変わりません。
詳しくはこちらの説明をご覧ください。
↓↓↓
Prominence3Dランタイムライブラリ(for DirectX9)
2017年01月16日
DXライブラリでProminence3Dのエフェクトを!
Prominence3Dランタイムライブラリ(for DirectX9)を使えば
DXライブラリでもProminence3Dで作ったエフェクトを表示することができます。
やり方は、DirectX9の場合とほぼ同じですが、
Direct3Dデバイスオブジェクトの渡し方だけ注意してください。
#include "DxLib.h" //Prominence3Dライブラリ #if _DEBUG #pragma comment(lib, "P3DEngineD.lib") #else #pragma comment(lib, "P3DEngine.lib") #endif #include "P3DEngine.h" //グローバル変数 P3DEngine* pP3D; //Priminence3Dライブラリの本体 //ゲームスタート int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { //DXライブラリの準備 ChangeWindowMode(TRUE); //ウィンドウモード SetUseDirect3D9Ex(FALSE); //デバイスオブジェクトを調べるために必要 DxLib_Init(); //DXライブラリ初期化 //カメラの設定 SetCameraPositionAndTarget_UpVecY(VGet(0, 10, -20), VGet(0.0f, 0.0f, 0.0f)); //視点と注視点 SetCameraNearFar(0.1f, 100.0f); //描画範囲 //Prominence3Dライブラリの準備 P3DInitData data; //専用の構造体を用意して data.pDevice = (IDirect3DDevice9 *)GetUseDirect3DDevice9(); //デバイスオブジェクトを取得 data.effectFilePath = "Assets"; //エフェクトファイルの場所(省略可) pP3D = new P3DEngine(data); //Prominence3Dライブラリ初期化 //エフェクトデータの読み込み pP3D->Load("MagicCircle.p3b"); //エフェクトを再生する pP3D->Play("MagicCircle.p3b", D3DXVECTOR3(0, 0, 0), FALSE); //ゲームループ while (!ScreenFlip() && !ProcessMessage() && !ClearDrawScreen()) { //再生中の全エフェクトを描画 pP3D->Draw(); RefreshDxLibDirect3DSetting(); } //Prominence3Dライブラリ開放 delete(pP3D); //DXライブラリ開放 DxLib_End(); return 0; }
ポイントは33行目。
『GetUseDirect3DDevice9()』という関数でDirect3Dデバイスオブジェクトが取得できるようなので、上の例のように書いてください。
そして、この関数を使うためには22行目の『SetUseDirect3D9Ex(FALSE)』が必要になります。これはDxLib_Init()よりも上に書く必要があるようです。
最後にProminence3Dのエフェクトを表示した後に、設定を戻すためにRefreshDxLibDirect3DSetting(50行目)が必要になります。(2017/1/22追記)
以上の点だけ気をつければ、あとはDirectX9で使用する時と何も変わりません。
詳しくはこちらの説明をご覧ください。
↓↓↓
Prominence3Dランタイムライブラリ(for DirectX9)