組み込み

概要

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を呼んでください。