2010年3月5日金曜日

(ダンス)ダンサーの為のパーティクル考

おはよーございます^^

久しぶりにダンスネタなんぞをw
ダンスのステージにパーティクルは欠かせませんが、ここでいつも困ることは、パーティクルってたいてい手動で操作しなくちゃいけないってこと。そうでなくても忙しいのに、さらにパーティクルの操作もしなきゃいけないってことで、ダンサーさんはかなり大変なんです^^;

と、いうことでできるだけパーティクルの操作については自動化したいな・・・と常々考えているわけです。
で、とりあえず今の時点で考えつく最良の案とは、やっぱりダンサーさんならたいていみんな使ってるEZのマクロにパーティクルの操作まで取り込んじゃうことだと思うんですよね。。。

だ~が、しかし、EZのマクロは、オブジェクトのREZはできてもtakeはできない^^;

で、パーティクルを自動的に止める技が必要になってくるわけです。

で、ここで登場、当店にて配布させていただいております、Psyche Lunaseaさんが和訳しましたEZADの日本語ガイドから抜粋w

>    -   もしその命令がEZADに入っているオブジェクトの名前と一致すれば、あ
>  なたの2メートル前にそれをREZします。

つまり、パーティクルのオブジェクトをEZADに入れておいて、マクロでその名前を書いておけば自動的にREZはしてくれる・・・というわけですね。。。はい。REZだけですけどw

これ、止める方法がないんですー^^;
で、どうするか。もうね、no modのパーティクルだとどうしようもない訳ですが、mod可なパーティクルのオブジェクトだったら、いくつかやりようがあります。
たとえば、タッチでパーティクルが止まるような仕組みを組み込んじゃうとかw
たとえば、こんなスクリプト^^

// タッチでパーティクルを止めるスクリプト
// 2010.03.05 Create snowlet Magic
default {
    touch_start(integer total_number) {
        llDie();
    }
}

見た通りですねw
タッチしたら、オブジェクトが消えるスクリプトです。
EZのマクロでREZしたら、あとは適当なタイミングを見計らって自分でタッチしてオブジェクトを消す・・・と^^

あと、マクロ組んでるってことはパーティクルを出している時間は事前にわかってるでしょうから、もう一つこういう手段もあります。


// 時間でパーティクルを止めるスクリプト
// 2010.03.05 Create snowlet Magic
integer time = 10 ; // パーティクルを出しつづける秒数を指定する。
default
{
    on_rez(integer start_param)
    {
        llSetTimerEvent(time);
    }
    timer()
    {
        llDie();
    }
}


>integer time = 10 ; // パーティクルを出しつづける秒数を指定する。
この部分の数字が、パーティクルを出し続ける秒数になります。これを自分で必要な時間に書き換えればよい訳です。
まぁ、基本的にオブジェクトが修正可能なパーティクルでしか対応できない方法ではありますが、もし、使おうと思ってるパーティクルがmod可であったとすれば試してみる価値はあるかと思います。^^

0 件のコメント:

コメントを投稿