Site search

Google
WWW を検索 backup-beta.blogspot.com を検索

2008年11月8日土曜日

雪を降らせるスクリプト

そろそろ雪だるまやクリスマスツリー、サンタさんの衣装とかクリスマス向けの商品がいろいろ出始めてますね^^

なので、今回は雪を降らせるスクリプトです。スクリプトって言ってもほとんどllParticleSystemだけなんですけどねw

雪はパーティクルそのままなんですが、雪の結晶のテクスチャを作ってPSYS_SRC_TEXTUREで設定したら、もっといい感じになるんじゃないかなって思います^^


PSYS_SRC_PATTERN_EXPLODEで全方向にパーティクル出してるので、高めの位置に設置してくださいね。

パーティクルシステムの数値はテキトーに調整したら雪っぽくなったので、細かい説明はできないですけど^^; 落下速度はPSYS_SRC_ACCELのZのマイナスの値を少なくしたらゆっくりになります。
// 雪を降らせる
integer sw=FALSE;  // スイッチ用

snow()
{
    llParticleSystem([
        PSYS_PART_FLAGS,
        PSYS_PART_WIND_MASK|
        PSYS_PART_INTERP_COLOR_MASK|
        PSYS_PART_INTERP_SCALE_MASK|
        PSYS_PART_EMISSIVE_MASK,
        PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE,
        PSYS_SRC_BURST_PART_COUNT, 50,
        PSYS_SRC_BURST_SPEED_MIN, 3.0,
        PSYS_SRC_BURST_SPEED_MAX, 8.0,
        PSYS_SRC_ACCEL, <0,0,-1>,
        PSYS_SRC_MAX_AGE, 0.0,
        PSYS_PART_MAX_AGE, 30.0,
        PSYS_PART_START_ALPHA, 0.0,
        PSYS_PART_END_ALPHA, 0.8,
        PSYS_PART_START_SCALE, <0.04,0.04,0>,
        PSYS_PART_END_SCALE, <1,1,0>,
        PSYS_SRC_TEXTURE, ""]);  // テクスチャ使うときは""内にUUID設定
}

default
{
    touch_start(integer total_number)
    {
        if (llDetectedKey(0) == llGetOwner()) {  // オーナーがタッチすると
            if (!sw) snow();  // スイッチがオフならsnow実行
            else llParticleSystem([]);  // そうでないときはパーティクル停止
            sw=!sw;  // スイッチ反転
        }
    }
}

0 件のコメント:

コメントを投稿