0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Effekseer】DXLibでエフェクト描画座標が切り替わらないバグと対処法

Posted at

ゲームを製作できる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を実行でエディタを開きます。
スクリーンショット (67).png

エディタが開けたら、上部GUIからファイル->開くで、開きたいファイルを開いてください

エディタが対応する拡張子は.efkefc.efkprojとなります。

スクリーンショット (68).png

位置への影響設定を変更

ノードツリーウィンドウ(1.70eではデフォルトで右下)から、Root直下の親っぽいノードを選択(画像ではFireBall)
スクリーンショット (69).png
共通ウィンドウ(1.70eでは右上ウィンドウの星マークをクリックで出てくる)を開く。
スクリーンショット (70).png
位置への影響など、プログラム中で変更する内容のステータスを常時へ変更
スクリーンショット (71).png
このステータスを常時にすることで、UpdateなどでSetPosPlayingEffekseer3DEffect関数を呼んだ際に、正常に処理が行われるようになります。
スクリーンショット (72).png
ファイル->名前をつけて保存などで保存を行ってください。

名前をつけて保存だと.efkefc形式で保存、エクスポートとすると.efk形式で書きだされます。
どちらもDXLibで使用できますが、.efkは若干軽く、.efkefcはエディタで開くことも可能というメリットがあります。

.efkproj形式ですとDXLibで使用できないので、プログラムでは必ず.efk.efkefc形式のどちらかを使用してください。

総括

  • 旧バージョンではウィンドウがバラバラになるなどの問題を確認したので、バージョン1.70eを使うのがおすすめ。
  • 位置への影響などが常時になっていない場合、描画座標などが正常に動作しない場合がある。
  • DXLibでエフェクトを読み込む場合、.efk.efkefc形式のファイルを使用する。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?