組み込み
概要
Effekseerのランタイムを別のプログラムに組み込む方法を説明します。Windows
公式サイトにて、マルチスレッド設定のコンパイル済ランタイムを公開しています。それ以外の方は自分でコンパイルする必要があります。コンパイラはVisualStudio2010以降のみ対応しております。
DirectX9の場合
「Runtime/EffekseerRendererDX9.sln」を組み込み先の設定(マルチスレッドDLL等)に合わせて設定しなおしてコンパイルしてください。現在、DirectX SDKが必須となっており、また、プロジェクトはVisualC++2013のみが存在しています。コンパイルが成功すると、「Runtime/include」にインクルードファイルが、「Runtime/lib」にライブラリファイルが生成されます。
DirectX11の場合
「Runtime/EffekseerRendererDX11.sln」を組み込み先の設定(マルチスレッドDLL等)に合わせて設定しなおしてコンパイルしてください。現在、DirectX SDKが必須となっており、また、プロジェクトはVisualC++2013のみが存在しています。コンパイルが成功すると、「Runtime/include」にインクルードファイルが、「Runtime/lib」にライブラリファイルが生成されます。
OpenGLの場合(Windows)
「Runtime/EffekseerRendererGL.sln」を組み込み先の設定(マルチスレッドDLL等)に合わせて設定しなおしてコンパイルしてください。プロジェクトはVisualC++2013のみが存在しています。コンパイルが成功すると、「Runtime/include」にインクルードファイルが、「Runtime/lib」にライブラリファイルが生成されます。
他
「Runtime/Effekseer」「Runtime/EffekseerRendererCommon」に共通コード、「EffekseerRendererGL」にOpenGLのコードが存在していますので、各自の環境に合わせて、ご自身で設定を用意しコンパイルするようお願いします。
マクロ
__EFFEKSEER_RENDERER_GL_GLEW__ | glewのDLL版を使用(Windows以外) |
__EFFEKSEER_RENDERER_GL_GLEW_S__ | glewのstatic版を使用(Windows以外) |
__EFFEKSEER_RENDERER_GLES2__ | OpenGL ES2.0を使用 |
__EFFEKSEER_RENDERER_INTERNAL_LOADER__ | 内部で定義済みのローダーを使用する。 |
プロジェクト設定
VisualC++の場合
「Effekseer.h」「EffekseerRendererDX9.h」「EffekseerRendererGL.h」等が存在するディレクトリを追加のインクルードディレクトリに指定します。そして、DirectX9環境の場合、「Effekseer.h」「EffekseerRendererDX9.h」をインクルード、OpenGL環境の場合、「Effekseer.h」「EffekseerRendererGL.h」をインクルードします。また、ライブラリを参照に追加します。他
各自の環境に合わせて、ご自身で設定を用意するようお願いします。サンプル
FAQ
左手系で使用したい。
本ヘルプの「組み込み->実行」を参照願います。
エフェクトの再生速度をエフェクトごとに変えたい。
「Effekseer::Manager::SetSpeed」を使用してください。
テクスチャ読込方法の拡張ってどうやるの?
本ヘルプの「組み込み->独自ローダーの設定」を参照願います。
エフェクトを任意の順番に個別に描画したい。
Effekseer::Manager::DrawHandleをEffekseer::Manager::Drawの代わりに使用します。 途中に他のライブラリの描画を挟む場合は、その描画が行われた後にDrawHandleを実行する前に、EffekseerRenderer::Renderer::ResetRenderState()を実行します。
Zバッファが正しく働かない。
カメラ行列設定、射影変換行列設定が間違っているケースが多いようです。
リボン、軌跡の表示がおかしくなる。
初期化時の最大インスタンス数が小さすぎるケースが多いようです。
OpenGL版でテクスチャが設定されているインスタンスが描画されない。
OpenGL版では、テクスチャはミップマップを持っている必要があります。「glGenerateMipmap」を使用して生成するようお願いします。
DXライブラリの3D表示がおかしくなる。
Effekseerでエフェクトを描画した後、RefreshDxLibDirect3DSettingを呼んでください。