セカCHU☆

SecondLifeのこと

だっこくま☆

2008年05月14日 15時08分38秒 | セカンドライフのすくりぷと
こういうのって、子供アバターのほうが似合うよね



ちょっと前にお遊びで作ったくまちゃんを抱っこできるようにしてみたよ。
見た目は全然改良してないけれど、バルーンみたいな感じになってるから、悪ノリで栓でもつけてみようかなー

追加したのはちょっとした事で、タッチすると「抱っこ」と「手繋ぎ」を切り替えるだけだよ。
最初はくまちゃんの手を動かして。。。って思ってたけれど、それよりもっと簡単な方法があったので、そっちにしちゃった
それは、あらかじめ両方のポーズのプリムを作っておいて、表示したくないほうは透明にして隠しちゃう方法
スクリプトでしてあげてることは、アニメのON,OFF、プリムの色、場所と角度をタッチの度に変えてあげてるだけなの。

こんなふうになってるよぉ
子供だとこんなふうに
やっぱり子供のほうがにあうよねー
くまちゃんもうちょっとちっこいほうがいいかな?とか思ってたけれど、子供アバターになってみると、このくらい顔を埋めてたほうがカワイイかも!って感じたから、このままにしとこっと



ルートプリムに入れてるスクリプトだよ

integer TOUCH = 1; // 0 = 手繋ぎ , 1 = だっこ
key KEY_ID = NULL_KEY;

   
katatemochi() {
    llOwnerSay("Don't drag me!");
    llMessageLinked(LINK_SET, TOUCH, "", NULL_KEY); //右手に色消し指令
    llSetTexture("5748decc-f629-461c-9a36-a35a221fe21f", ALL_SIDES); //上げた右手に色付け
    llStopAnimation("teddyhug"); // だっこアニメをストップ!
    llSetPos(<0.0, 0.13, 0.0>);
    llSetRot(llEuler2Rot(<330.00, 0.00, 270.00> * DEG_TO_RAD)); // くま 位置あわせ
    TOUCH = 1;  //次はだっこ
}
   
dakko() {
    llOwnerSay("carry me!");
    llMessageLinked(LINK_SET, TOUCH, "", NULL_KEY); //右手に色付け指令
    llSetTexture("f54a0c32-3cd1-d49a-5b4f-7b792bebc204", ALL_SIDES); //上げた右手を色消し
    llSetPos(<-0.00, 0.15, -0.15>);
    llSetRot(llEuler2Rot(<75.90, 356.75, 335.95> * DEG_TO_RAD)); // くま 位置あわせ
    llStartAnimation("teddyhug"); // だっこアニメ開始!
    TOUCH = 0; //次は手繋ぎ
}


default
{
    state_entry()
    {

    }
   
    attach(key id)  ///// 装着した時はだっこからスタート
    {
        if (id != NULL_KEY) //外す時はなにもしないよ
        {
            TOUCH = 1;   // 最初はだっこ
            KEY_ID = id; // アニメさせる人は、くまちゃん装着した人
            llRequestPermissions(id,PERMISSION_TRIGGER_ANIMATION);
            dakko();     // だっこ 発動!
        }
    }

    touch_start(integer total_number)  // タッチで 手繋ぎ⇔だっこ
    {
        if (TOUCH == 0)
        {  ///////////// くま 手繋ぎ
            katatemochi();
        } else {  ////// くま だっこ
            dakko();
        }
    }
}

下ろしてる右手に入れてるスクリプトだよ

default
{
    state_entry()
    {

    }

    link_message(integer sender_number, integer num, string str, key id)
    {
        if (num == 0) {  //受信したTOUCHの値が0なら手繋ぎなので、primを透明にするよ
            llSetTexture("f54a0c32-3cd1-d49a-5b4f-7b792bebc204", ALL_SIDES);
        } else {  //受信したTOUCHの値が0以外ならだっこなので、primに色をつけるよ
            llSetTexture("5748decc-f629-461c-9a36-a35a221fe21f", ALL_SIDES);
        }
    }
}

ここまでー

このふにゃふにゃな見た目をどうしよう。。。 単なるらくがきだもんねー


最新の画像もっと見る