ゲームを製作できる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
形式のファイルを使用する。