2009年6月21日日曜日

(LSL)笑顔のHUD公開

装着すると笑顔のアニメーションを再現するHUDってありますよね。

私も昔、手に入れたのをずっと使ってたんですけど、もっとシンプルなのないかと思って探し続けてました。
で、最近LSLにも目覚めてきたことだし(え?@@; このさい自分で作っちゃえということで、なんとかしてみましたw

出来上がって動いている時のSS。こんな感じ。ほら、そこの人、キモイとか言わないww


適当なプリムを作って、その中にこのスクリプトをコピペしてください^^
そのプリムをいったんtakeして、右クリックでHUDとして画面に装着すればできあがりです。ちょー簡単でしょw

プリムの大きさは、画面に貼り付けた時のことを考えると、0.05×0.05×0.05くらいがいいのかなー?
自分で好きなテクスチャ貼り付けるとかわいくできるかもw
プリムを画面に貼り付けたあとは、「右クリック->編集」とすると、いつも見慣れた矢印が画面に出てきて位置の修正ができます^^


//
// Emotion control
// create 2009.06.20 snowlet Magic
// ver.1.01 2009.06.20 snowlet Magic bug fix
//

list Emotion = ["","express_smile", "express_toothsmile"]; // emotion name
float time = 30.0; // emotion timing
vector color_on = <0, 1, 0>; // green
vector color_off = <1, 0, 0>; // red
integer id = 0;
string msg;

default
{
state_entry()
{
llSetColor(color_off, ALL_SIDES);
llSetTimerEvent(0);
}

touch_start(integer total_number)
{
llSetTimerEvent(0);

integer perm = llGetPermissions();
if (! (perm & PERMISSION_TRIGGER_ANIMATION)) {
llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);
}

id++;
if (id < llGetListLength(Emotion)) {
msg = llList2String(Emotion,id);
llOwnerSay(msg+"is Active");
llSetColor(color_on, ALL_SIDES);
llSetTimerEvent(llFloor(llFrand(time))+10);
} else {
// when id value is overflow
id = 0;
llSetTimerEvent(0);
llSetColor(color_off, ALL_SIDES);
llOwnerSay("Emotion is stopped");
}
}
timer()
{
llStartAnimation(msg);
llSetTimerEvent(0); // added ver.1.01
llSetTimerEvent(llFloor(llFrand(time))+10); // added ver.1.01
}
}


すみません><いきなりめっちゃバグってました。最初のソースだと、ランダムに時間が決まるのはHUDをクリックした最初の一回だけでした@@; 早速修正版に差し替えました<(__)>

使い方ですけど、画面に貼り付けたプリム(HUDの正体って、こういう物だったのですねw)をクリックしてください。赤色の時は笑顔が停止してて、緑色の時には10~40秒の間隔(ランダム)で笑顔のアニメーションを再生します。クリックする毎に、笑顔のアニメーションが切り替わります^^

よかったら試してみてください^^/

HUD作成中の私w



今回からカテゴリーに「スクリプト」を追加しました。いつまで続くことやらw

**Fairy Snow**本店
http://slurl.com/secondlife/Osondoson/5/198/21

Fairy Snowショールーム ( Green appl店舗内 )
http://slurl.com/secondlife/Graybar/187/135/28


0 件のコメント:

コメントを投稿