ソラマメブログ
アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。 解除は→こちら
現在の読者数 1人
プロフィール
rinsui Hax
rinsui Hax
大阪生まれ大阪市在住。 幼稚園時の「将来なりたいのは?」・・・忍者。 2000年の思わぬ運命激変により仕事人生からセミリタイヤしマンガ・小説・映画・ギターに浸かる隠遁生活へ。 長年、映画の個人制作願望を燻ぶらしていたが、SL(セカンドライフ)へ参入しマシニマ(SLでの映画製作)を知って実現可能性を見取り、やおら創作生活がうごめく模様。

未収録記事と記事データのダウンロードはMaglog版ブログからどうぞ

rinsui SL+ Making Blog

SL内ショップはこちらから

Animation Free Space Shop 「COCO/100/176/15」

Salerio Runa&Rin Shop 「Salerio/234/22/27」

QRコード
QRCODE
Information
メタコマースおすすめ商品




オーナーへメッセージ

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);
}
}







この記事へのトラックバックURL