なんだか雲行きの怪しい雑記帖

ぐだぐだ日記とメモと,あと不定期更新

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【HSP】【DXLib】【Effekseer】HSPからエフェクト再生ランタイム「Effekseer」を使えるプラグインを作った話

もうなんかタイトルが邪悪.

前置き

表題の通りですが,なぜそれをやったのか(やってしまったのか)という話,モチベーションについて.

代替品がない

そういえばHSPってゲームでもエフェクトだそうとすると,パーティクル一つ一つの計算処理を全部手でコード書かないといけなくなるのですが,元々多くの変数を効率よく扱うための仕組みがないので凄い辛いんですよね.
ではその部分を分担してくれるライブラリがあるのかと言うと,現状フラッグシップなものが無い.(※個人の感想です)

近いものとして挙げられるのが「ParticleTestTool」,これは本当に近い,でも現状E3Dの状況を鑑みるととても惜しい.(今でもE3Dは従来通りのライセンスのまま使えますが,公式に同梱されなくなったことと,メンテされていなこと,更にはhgimg4がリリースされたという背景があるため,なんとも言えないところですね)

その他に挙げられるものが「SpriteStudio」だけど,これはHSPでもとりあえずアニメーション情報読み取って表示できる機能で,大量のスプライトを扱おうとするとHSPの処理コストからリアルタイムは結構きつそう.

「d3module」は素晴らしいけど,一つ一つのエフェクトを作るのに必要な職人芸的なパーティクルの挙動調整へ費やす時間が大変.
また,一個一個エフェクトを調整し終えることができたとして,そもそも大量のエフェクトを一括で管理するコードを”HSP上で”実装するのは現実的に難しいでしょう.

元々HSPはある程度粒度が大きいライブラリを揃えないと使いづらい

HSPは言語的(主に文法的)に,HSP側で多くの機能単位を内包しておくことが難しい,と思ってます.

結構具体的に説明するのが難しいんですが,誤解を恐れずにざっくばらんに言うなら「hgimg3よりE3Dの方が地形との当たり判定まで面倒見てくれるから3Dゲーム作るのは楽」とかそういう話です.

根本的にHSPは抽象化ができないので,汎用化されたデータであってもアルゴリズムが適用できないあたりが原因だと思ってますが,よく分からない話に突っ込みそうなので置いておきます.
ひとまずここでの主張は,「エフェクトを一個再生したい」という実装者の要求に対して,「自分でパーティクル一つ一つの挙動をコードとして実装する」のではなく「予め別のツールで作っておいて,データとして保存したものを”再生する”と命令するだけで画面に表示されれば楽ですよね」と,そんな感じです.
 (あるいは,もしOBAQに描画する機能が存在せず,自分でOBAQ内のオブジェクト全部をイテレートして自前で描画するしかできなかったら辛いよね,とか.)

エフェクトって映える

聞いた時ちょっと至言だなって思った.

ちなみに今回のEffekseer組み込みを行うと,次のようなエフェクトは「エフェクトファイル読み込み」→「再生」命令でサックリだせる.
effekt_Intro2.pngeffekt_Intro1.png
(Effekseer本体付属のサンプルを本プラグインを使って表示したところ)

その他どういうエフェクトがあるかはEffekseer公式の紹介ページを参照とのこと.

上記画像見てテンションが上がらない場合,あまりこのライブラリを使うメリットがないような気がする,そういう方には申し訳ない…. 続きを読む
スポンサーサイト

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。