ゲームを製作できるC++ライブラリのDXLibにはEffekseerというエフェクト作成ツールで作成したエフェクトを描画する機能がありますが、Effekseerで作成した設定によっては、描画座標が切り替わらないバグが発生します。(しました。)
ドツボにハマると厄介なので、今回はその対処法を共有します。
更新は行っているのだが…
DXLibの関数を使用して、Updateでエフェクトの座標を設定しますが、画面上の位置が変わらない状況があります
↓下記の関数
/**
@brief 再生中の3D表示のエフェクトの位置を設定する。
@param playingEffectHandle 再生中のエフェクトのハンドル
@param x X座標
@param y Y座標
@param z Z座標
@return 0:成功、-1:失敗
@note
※エフェクトが既に再生終了していても成功を返す。
*/
int SetPosPlayingEffekseer3DEffect(int playingEffectHandle, float x, float y, float z);
何が原因なのか
結論から言うと、Effekseerのエディタ側で、位置への影響の設定を変えてやる必要がある場合があります。
v16.2eなどの旧バージョンでは、ウィンドウがバラバラになることがあります(私の環境ではなりました。)
最新版のv1.70eを使用することをおすすめします。
Effekseer170eWin->Tool->Effekseer.exeを実行でエディタを開きます。

エディタが開けたら、上部GUIからファイル->開くで、開きたいファイルを開いてください
エディタが対応する拡張子は.efkefcか.efkprojとなります。
位置への影響設定を変更
ノードツリーウィンドウ(1.70eではデフォルトで右下)から、Root直下の親っぽいノードを選択(画像ではFireBall)

共通ウィンドウ(1.70eでは右上ウィンドウの星マークをクリックで出てくる)を開く。

位置への影響など、プログラム中で変更する内容のステータスを常時へ変更

このステータスを常時にすることで、UpdateなどでSetPosPlayingEffekseer3DEffect関数を呼んだ際に、正常に処理が行われるようになります。

ファイル->名前をつけて保存などで保存を行ってください。
名前をつけて保存だと.efkefc形式で保存、エクスポートとすると.efk形式で書きだされます。
どちらもDXLibで使用できますが、.efkは若干軽く、.efkefcはエディタで開くことも可能というメリットがあります。
.efkproj形式ですとDXLibで使用できないので、プログラムでは必ず.efkか.efkefc形式のどちらかを使用してください。
総括
- 旧バージョンではウィンドウがバラバラになるなどの問題を確認したので、バージョン
1.70eを使うのがおすすめ。 - 位置への影響などが
常時になっていない場合、描画座標などが正常に動作しない場合がある。 -
DXLibでエフェクトを読み込む場合、.efkか.efkefc形式のファイルを使用する。
