2011年05月01日
アニメの連続再生スクリプト
(* ´艸`)コンバン… (∩´∀`)∩ワァ♪
先ほど、Tomgirlさんのチャリティイベント(でいいのかな・・・)にお邪魔してきました❤
とっても素敵な声と音楽でした~(*´ェ`*)
ありがとうございました^^
関連とゆう訳でもないのですが、MMD(Miku Miku Dance)のモーションをSLで
個人的に楽しませて頂いています^^
やり方は、既にすごく丁寧に解説して下さっているブログ様がありますので、
そちらをご参照ください^^
私が参考にさせて頂いてるのは、
Kagami kohimeの休憩室様 です^^
さて、今夜はSLへアニメーションを複数アップロードして
それを連続で再生させるスクリプト(自作)を大公開っ (*゚▽゚ノノ゙☆パチパチ
せっかくアップロードしたのに、再生が手動・・・・
どうしたらいいんだ~!! とゆうビギナーの方に、ビギナーの私がお伝え致しますっ
えと・・・ですね、
以下のスクリプトをコピペでww
なんちゃってスクリプトなんで、動作の保障はできません・・・w
そして
効率とか負荷とか全く考えてませんので・・・ご了承を・・・w
(そんな重くないと、個人的には思ってるw)
詳しいひとが見たら、笑っちゃうような書き方だと思いますので・・・
あー・・・なんか使ってない変数ありそうだwwwww
あくまでも、とりあえず、的な感じで・・・m(_ _;)m
コンテンツに入れるアニメーションのファイル名は
連続してる必要があります
file1
file2
file3
....
って感じです
以上でーすw
(人-ω-)。o.゚。*・★Good Night★・*。゚o。(-ω-人)
key agent = NULL_KEY;
integer ch = 0;
float ANIM_SLEEPTIME = 29.96;//アニメとアニメのつなぎ目が気になる方は、ここの数値をいじってみてください
integer i = 1;
integer handle;
integer ANIME_KAZU = 11; // 再生するアニメの数
string ANIME_FILE_NAME = "anime-filename"; //コンテンツのアニメファイルの名前
string ANIME_TRIGER_NAME = "start"; //スタートさせるときのチャットコマンド お好みで
integer sw = 0;
integer dance = 0;
string Say_name = "";
default {
state_entry()
{
handle = llListen(ch,"","","");
Say_name = llKey2Name(llGetOwner());
}
listen(integer ch,string name,key id,string mess)
{
if(mess == ANIME_TRIGER_NAME)
{
if (agent == NULL_KEY)
{
dance = 1;
agent = llGetOwner();
llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION);
}
}
if((mess == "Stop" || mess == "stop") && dance == 1)
{
integer t;
for(t=i-1;t<=ANIME_KAZU;t=t+1)
{
llStopAnimation(ANIME_FILE_NAME+(string)t);
}
llListenRemove(handle);
llResetScript();
}
if((mess == "Reset" || mess == "reset")&& name == Say_name)
{
integer t;
llOwnerSay("DANCE RESETED.");
if(dance == 1)
{
for(t=i-1;t<=ANIME_KAZU;t=t+1)
{
llStopAnimation(ANIME_FILE_NAME+(string)t);
}
}
llResetScript();
}
}
run_time_permissions(integer perm) {
sw = 1;
llStartAnimation(ANIME_FILE_NAME+(string)i);
i = i + 1;
llSetTimerEvent(ANIM_SLEEPTIME);
}
timer()
{
if(i <= ANIME_KAZU )
{
llStartAnimation(ANIME_FILE_NAME+(string)i);
llStopAnimation(ANIME_FILE_NAME+(string)(i - 1));
i = i + 1;
}
else
if(i == ANIME_KAZU + 1)
{
llResetScript();
}
agent = NULL_KEY;
}
}
Posted by リア at 01:44│Comments(1)
│モノ作り
この記事へのコメント
コピーして、使わせてもらいます。
Posted by hyakuji at 2012年05月07日 09:13