Particle Light(StarDust)


強力なAS3のパーティクル発生ライブラリ「Stardust」を試してみました。
stardustでパーティクルを発生させて、BitmapDataで光彩のエフェクトをかけています。
僕の環境(MacPro 2.8GHz QuadCore×2, Safari5.0, FlashPlayer10.1)ではFPSが45〜48程度しか出ないのがちょっと残念です。
とはいえ、このような表現でFPS40以上出せるStardustはやっぱりスゴいライブラリだと思います。

Particle Light(StarDust) – wonderfl build flash online

このデモでは色がどんどん変化していくのですが、色の変化はBitmapData.colorTransformで行っています。
ただ今回の場合変化させる色の値をfrocessing.color.colorHSVで生成していますので、このままだと単一の色の値にしかならず、ColorTransformの値としてはまだ使えません。
そこでfrocessing.color.colorHSV.valueをビット演算でRGB各色に分け、さらに分けたRGBの値をColorTransformの各色のMultiplierに割り当てるよう計算を行っています。
その部分のコードは以下ですので、ColorTransformで色を変化させる時の参考になればと思います。

frocessing.color.colorHSVを初期化

_hsv = new ColorHSV(0, .8, .95); 

frocessing.color.colorHSVのh(色相)を毎フレームごとに1づつ足し込んで変化させ、ColorTransformのredMultiplier,greenMultiplier,blueMultiplierにfrocessing.color.colorHSVの値を変換して割り当てる

_hsv.h++;
_ctf.redMultiplier = (_hsv.value >> 16 & 0xff) / 255;
_ctf.greenMultiplier = (_hsv.value >> 8 & 0xff) / 255;
_ctf.blueMultiplier = (_hsv.value & 0xff) / 255;
_bmd.colorTransform(_bmd.rect, _ctf);