SnowPlus: 雪プラグイン改良版 概要: SnowPlusは、吉里吉里/KAG上で雪を降らせるためのプラグインである。 標準でついてくるsnow.ksと機能的には同じだが、標準のがイマイチ 自然でないので、それを改良したい、と常々思ってた。ので自分なりに 改良してみたのがコレ。 具体的には、以下の点を追加した。 1) パラメータを外から変更できるようにした 2) 降雪中にもパラメータを変更できるようにした 3) 雪粒の大きさの種類を増やした(8段階) 4) 画面に雪粒が存在する状態から開始できるようにした 5) 吹雪が吹雪っぽくみえるように、雪粒出現位置と密度を工夫 使用例: ; firs.ksの先頭で登録 [call storage="SnowPlus.ks"] ; 初期化 [snow_init] ; 雪を降らせる(唐突に降り始める) [snow_start] ; 雪を止ませる(唐突に降り止む) [snow_stop] ; フェードインする [backlay] [snow_start forevisible=false backvisible=true] [trans method=crossfade time=2000][wt] ; 降雪量変化。どっさりに。 [snow_opts dencity=150] ; 横風 [snow_opts xspeed=10] ; フェードアウトする [backlay] [snow_opts forevisible=true backvisible=false] [trans method=crossfade time=2000][wt] [snow_stop] Changelog: 2009/10/04 0.1->0.2 snow_optsで高速にdencityを変更すると、雪粒を増やした時に画面上で 増えないことがあったのを修正 タグリファレンス:------------------------------------------------------------ パラメータを指定しなかった場合、(def)またはdefaultと書いてあるものが デフォルト値として採用される。 [snow_init] 説明: 初期化。降雪中であれば停止し、オプションを初期値に戻す。 引数: なし。 [snow_start type=0or1 (snow_optsのオプション全て)] 説明: 降雪開始。snow_optionsのオプションを全て指定可能。 引数: type= 降雪を今正に開始するかどうか。 0=上から降らす、1=降ってる状態から開始(def)。 [snow_stop] 説明: 降雪停止。すぐに停止する。降ってるのを上から停止するには、 [snow_opts dencity=0] を使う。 引数: なし。 [snow_opts priority= dencity= xspeed= xaccelq= xspeedmax= yspeed= yspeedq= yrand= q= forevisible= backvisible=] 説明: 降雪オプションを指定する。降雪中に指定すると、以降の雪の降り方が リアルタイムに変わる。即ち、徐々に激しくしたり、徐々に緩やかにしたり できる。 引数: priority= 雪粒の表示優先順位。def=20000000-1。 mingrain= 雪粒の最小サイズ。def=0。 maxgrain= 雪粒の最大サイズ。def=7。 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=6.0 雪粒を下から上へ降らすには、マイナスの値を指定すること。 yrandq= 最背面の雪粒のY方向へのスピード初期値ランダム係数。0.2 q= 雪粒の大きさによる速度・加速度・表示数変化係数。 def=1.5。例えば xspeed は雪粒サイズが大きくなるごとに q倍され、dencityは雪粒サイズが大きくなるごとに 1/q^2(面積に反比例)されていく。 forevisible= 前面の表示フラグ。def=true backvisible= 背面の表示フラグ。def=true [snow_pause] 説明: 雪を一時停止する。画面上で降雪がストップモーションのように止まります。 引数: なし [snow_resume] 説明: 雪の一時停止を解除する。 引数: なし