2017/12/07(木) [n年前の日記]
#1 [love2d] love2dのParticleSystemについて調べてたり
love2dのwikiを眺めていたら、ParticleSystem(パーティクルシステム)なる機能があることに気がついて。爆発エフェクトを作る際に便利かもしれないと思えてきたので、使い方について調べていたり。
_love.graphics.newParticleSystem (日本語) - LOVE
_ParticleSystem (日本語) - LOVE
紹介されてるサンプルを動かしてみたら、「もわ〜ん」な感じのパーティクルが出てきて、「これじゃ爆発には使えないのでは…」と思ったけれど。他のメソッドを呼んで色々設定してたら、もうちょっと勢いのある動きもつけられそうだと分かってきた。
とりあえず現時点で分かったことは…。
_love.graphics.newParticleSystem (日本語) - LOVE
_ParticleSystem (日本語) - LOVE
紹介されてるサンプルを動かしてみたら、「もわ〜ん」な感じのパーティクルが出てきて、「これじゃ爆発には使えないのでは…」と思ったけれど。他のメソッドを呼んで色々設定してたら、もうちょっと勢いのある動きもつけられそうだと分かってきた。
とりあえず現時点で分かったことは…。
- setRotation()、setSpread() 等の、角度を指定するメソッドにはラジアン値を渡す。Luaの場合、math.rad(角度)で、度からラジアンへの変換ができる。
- setSpeed(最小速度、最大速度) で、パーティクル発生時点の速度を指定できる。
- setLinearDamping(減衰最小値、減衰最大値) で、速度が徐々に減っていくような指定ができる。ただ、与える値の単位が分からない…。
- setSpread(ラジアン値)で、パーティクルが発生する方向の範囲を指定できる。例えば math.rad(180)を与えれば右半分に向かって発生するし、math.rad(360)を与えれば全方向に発生する。setSpeed() と見間違えやすいので注意。
◎ パーティクルエディタがあるらしい。 :
おそらくは love2d で実装されたパーティクルエディタがいつかあるらしい。パラメータを変えて動きを確認できる。
_Super Particle Editting and Rendering Machine - LOVE
_Super Particle Editting and Rendering Machine - Page 2 - LOVE
love2d 0.10.xで動く版は2ページ目の最後のあたりで公開されてる。ただ、setLinearDamping() (= 速度を減衰させる指定)はサポートしてない模様。
_emitor - Particle system editor - LOVE
love2d 0.10.2 でも動いたが、setSpread() (= 飛んでいく範囲を角度で指定)が無いので、全方向に飛んでいくようなパーティクルの動きは作りづらい。まあ、初速度が0の状態から加速していく動きなら作れるけど…。
_APE (Another Particle Editor) for LOVE2D - LOVE
_Monthly Update: April | Aeon of Sands
ape_v3.love が、love2d 0.10.2 でも動作した。setSpread()、setLinearDamping() もサポートしてる模様。爆発エフェクトに使えそうな動きも指定できた。
_Super Particle Editting and Rendering Machine - LOVE
_Super Particle Editting and Rendering Machine - Page 2 - LOVE
love2d 0.10.xで動く版は2ページ目の最後のあたりで公開されてる。ただ、setLinearDamping() (= 速度を減衰させる指定)はサポートしてない模様。
_emitor - Particle system editor - LOVE
love2d 0.10.2 でも動いたが、setSpread() (= 飛んでいく範囲を角度で指定)が無いので、全方向に飛んでいくようなパーティクルの動きは作りづらい。まあ、初速度が0の状態から加速していく動きなら作れるけど…。
_APE (Another Particle Editor) for LOVE2D - LOVE
_Monthly Update: April | Aeon of Sands
ape_v3.love が、love2d 0.10.2 でも動作した。setSpread()、setLinearDamping() もサポートしてる模様。爆発エフェクトに使えそうな動きも指定できた。
[ ツッコむ ]
以上です。