Sakura: 桜吹雪プラグイン 概要: Sakuraは、吉里吉里/KAG上で桜吹雪を実現するプラグインである。 SnowPlusプラグインをちょっとだけ変更して作った。とにかくメモリ食い (+25MB、トータル50MB)なので、使うとき以外は[sakura_uninit]してメモリを 開放することをオススメする。 色々作ったが、SakuraSampleRotate(Z軸回転を layer.affineCopy() で実現する) を正式採用。花びら数が多くなると飛躍的にCPUを食うので注意。Core2Duo (1.8GHz)でdencity=50の時にCPU使用率20〜25%ってどうか。 使用例: ; firs.ksの先頭で登録 [call storage="sakura.ks"] ; 初期化。パターン画像用のメモリの確保も含む [sakura_init] ; 桜を散らせる(唐突に散り始める) [sakura_start] ; 桜を散り止ませる(唐突に散り止む) [sakura_stop] ; フェードインする [backlay] [sakura_start forevisible=false backvisible=true] [trans method=crossfade time=2000][wt] ; 降桜量変化。どっさりに。スゴい重い。 [sakura_opts dencity=150] ; 横風 [sakura_opts xspeed=10] ; フェードアウトする [backlay] [sakura_opts forevisible=true backvisible=false] [trans method=crossfade time=2000][wt] [sakura_stop] ; メモリを開放する。 [sakura_uninit] タグリファレンス:------------------------------------------------------------ パラメータを指定しなかった場合、(def)またはdefaultと書いてあるものが デフォルト値として採用される。 [sakura_init] 説明: 初期化。桜散中であれば停止し、オプションを初期値に戻す。 パターン画像を読み込み、メモリを確保する。25MBくらい増える。 引数: なし。 [sakura_uninit] 説明: メモリを開放する。以降[sakura_init]しないと[sakura_start]はできない。 とにかくメモリ食いなので、使わない時はuninitしてメモリを開放して おくこと。…といっても、実際にはなかなかメモリ開放してもらえない んだけど。 引数: なし。 [sakura_start type=0or1 (sakura_optsのオプション全て)] 説明: 桜散開始。sakura_optionsのオプションを全て指定可能。 引数: type= 桜散を今正に開始するかどうか。 0=上から降らす、1=降ってる状態から開始(def)。 [sakura_stop] 説明: 桜散停止。すぐに停止する。散っているのを上から停止するには、 [sakura_stop]のかわりに[sakura_opts dencity=0] を使う。 引数: なし。 [sakura_opts priority= dencity= xspeed= xaccelq= xspeedmax= yspeed= yspeedq= yrand= q= forevisible= backvisible=] 説明: 桜散オプションを指定する。桜散中に指定すると、以降の桜の散り方が リアルタイムに変わる。即ち、徐々に激しくしたり、徐々に緩やかにしたり できる。 引数: priority= 花びらの表示優先順位。def=2000000-1-5。実際には、 priority + 花びらの大きさ(0-5、min/maxgrain)になる。 mingrain= 花びらの最小サイズ。def=0。 maxgrain= 花びらの最大サイズ。def=5。 dencity= 花びら密度。最背面(花びらサイズ=0)の画面への表示個数を 指定する。def=30。 xspeed= 最背面の花びらのX方向への移動スピードを指定。横風が 吹くなどを表現。def=0 xaccelq= 最背面の花びらのX方向への加速度ランダム係数(絶対値)。 はらはらと落ちるさまを表現するのに使う。def=0.05 xaccelmax= 最背面の花びらのX方向への加速度最大値(絶対値)。def=0.5 xspeedmax= 最背面の花びらのX方向へのスピード最大値(絶対値)。 はらはらと落ちるのが不自然にならないように使う。def=0.7 yspeed= 最背面の花びらのY方向へのスピード初期値。def=2.2 yrandq= 最背面の花びらのY方向へのスピード初期値ランダム係数,0.4 q= 花びらの大きさによる速度・加速度・表示数変化係数。 def=1.3。例えば xspeed は花びらサイズが大きくなるごとに q倍され、dencityは花びらサイズが大きくなるごとに 1/q^2(面積に反比例)されていく。 forevisible= 前面の表示フラグ。def=true backvisible= 背面の表示フラグ。def=true [sakura_pause] 説明: 散り中の桜の花びらを、ストップモーションのように一時停止します。 引数: なし [sakura_resume] 説明: [sakura_pause]をやめて散花を再開します。 引数: なし