2008年01月20日
タッチでオリジナル胡坐アニメーション座りスクリプトじゃよ!
Salerio Runa&Rinショップのカンバン内住居の座布団でくつろぐ拙者
Runa & Rin Selarioショップカンバン内に住居を用意致したはよいが中はガランドウで誠に殺風景。
まずは来客殿に失礼なきよう座布団をば!と制作致し申した。
写真は試しに座っておる様子じゃが、座布団クリック時の動作は「座る」に設定致しおり、クリックにて座れるはご存知の通り。
ここで一工夫致し、立ちから胡坐へと座るアニメーションをば制作致しスクリプトを組んだのでござる。
よって、タッチ致せばよいこらしょっと胡坐を組むのじゃよ。
スクリプト下の通り。
編集メニューにて「誰に対してもコピーを許可」をチェック致しおるゆえ、右クリック~パイメニュー~コピーでインベントリに座布団が収納されるはずじゃよ。
ショップ看板下フロアーの登りボールをタッチ致してせっせと縄をよじ登り住居に入り、座布団をタッチ致して胡坐を組んで下され。
お土産は縄で編みしせんべい座布団しか御座らんで愛想もないがご勘弁下され。
//住居に座布団を置いたが、座るときにオリジナルアニメで座り開始。
//ビルトインの「地面に座り」アニメをポーザーで編集してアップ。
//アニメ後は最終フレームの胡坐ポーズを維持。(アニメーションアップ画面で設定)
key av;//座布団に座るアバター
string animation_name="zabuton_sit";
vector sit_pos = <0.0, 0.01, 0.7>; // 座り位置設定
vector sit_rot = <0.0, 0.01, 0.0>; // 座る角度設定
integer sit_on;//座り・立ち確認フラグ
default {
state_entry(){
llSetText("Touch & Sit!\nYou can get this cusion\nby copying from Pie_menu!!", <0,1,0>, 1.0);
llSitTarget(sit_pos, llEuler2Rot(sit_rot * DEG_TO_RAD));//座り位置設定
av =NULL_KEY;//アバターのUUID初期化
sit_on=0;
}
on_rez(integer i){//レズ時、state_entry()を実行してリセット
llResetScript();
}
changed(integer change){//誰か座るか立つかしたら
if (change & CHANGED_LINK){//sitはリンク扱い。リンク変更はアバターの座り・立ち
sit_on= !sit_on;//座りか立ちが発生する毎にフラグチェンジ
if(sit_on==1){//誰かが座った
av = llAvatarOnSitTarget();//アバターのUUID取得
llRequestPermissions(av, PERMISSION_TRIGGER_ANIMATION);//アニメパーミッション発動。
}else{//座っていたアバターが立った
llStopAnimation(animation_name);
llSetText("Touch & Sit!\nYou can get this cusion\nby copying from Pie_menu!!", <0,1,0>, 1.0);
av=NULL_KEY;
}
}
}
run_time_permissions(integer perm) {
llStartAnimation(animation_name);
llSetText("", <0,1,0>, 1.0);
}
}


