Site search

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

2008年6月29日日曜日

カラフルなパーティクルのスクリプト

今までにランプの光、香炉の煙、車の排気ガス、車が飛ぶときのタイヤ部分のエナジー、爆発の煙などを作りましたが、パーティクルって何度やってもイマイチよくわかりませんw
llParticleSystemを見てパラメータをいろいろ調整しながらテキトーにやってますが、説明がハァ?って感じです^^;;

なので苦手なんですが、今回はタイマーと合わせてランダムに色が変わるパーティクルを作ってみました。動きは全方向に飛び散るだけで芸がないですw



あまりよくわかってないので、llParticleSystemのパラメータは変なところがあるかも知れません^^;
// colorful particle
float time=0.1;  // タイマーの時間
float t;

psys(float f)
{  // 引数が0ならタイマーとパーティクルを停止
    llSetTimerEvent(f);
    if (f == 0) llParticleSystem([]);
}

default
{
    state_entry()
    {
        psys(time);
    }

    touch_start(integer total_number)
    {  // タッチでオン、オフを切り替え
        if (t != 0) t=0;
        else t=time;
        psys(t);
    }

    timer()
    {
        vector color;  // 色用にベクトル型変数を定義
        color.x=llFrand(1);  // 0〜1までの乱数を
        color.y=llFrand(1);  // 変数のR、G、Bに
        color.z=llFrand(1);  // 入れる
        llParticleSystem([
            PSYS_PART_FLAGS,
            PSYS_PART_INTERP_SCALE_MASK|
            PSYS_PART_EMISSIVE_MASK,
            PSYS_SRC_PATTERN,
            PSYS_SRC_PATTERN_EXPLODE,
            PSYS_SRC_BURST_RATE, time,
            PSYS_SRC_BURST_PART_COUNT, 1,
            PSYS_PART_START_SCALE, <0.1,0.1,0>,
            PSYS_PART_END_SCALE, <2.0,2.0,0>,
            PSYS_PART_START_COLOR, color,
            PSYS_PART_START_ALPHA, 1.0,
            PSYS_PART_END_ALPHA, 0.0]);
    }
}

0 件のコメント:

コメントを投稿