2007年12月15日
Shape&Skin完成!と19表情HUDスクリプト公開!!
実に長い道程でござったが、拙者入魂のスキンがルナ殿入魂シャイプと合体し菊枝殿となって完成致し申した。
画像をご覧あれ、豊満な胸の光沢が実に艶かしく魅入ってしまうのじゃ。
スキンとシェイプの相性よろしく絵に描いたるが如き和風美人、ルナ殿に名前を如何致すかと問えば即座に「菊枝」とインスピレーションでの命名でござった。
美しさに更なる磨きをかけるべくFace & Body Lightを所望され、制作並びにライトの調整を致し付属致し申した。
先に完成致しおったRuna & Rinブランドロゴをあしらった販売ポスターを各店に設置致せば高級感ありと見え、ブランド出発の感慨もひとしお。
さて、次はなにを制作致そうか?
唐突なついでじゃが、19表情チェンジHUDスクリプトを掲載するでござるよ。
前回記事でのつもりが容量オーバーでアップできなんだのじゃ。(笑)
//オーナーの0チャンネルをリッスンして、最後に入力された00~18の数字によりインデクス判断して表情アニメ
//19Expression_change_HUD
list hyoujou=[
"express_afraid_emote",
"express_anger_emote",
"express_bored_emote",
"express_cry_emote",
"express_disdain",
"express_embarrassed_emote",
"express_frown",
"express_kiss",
"express_laugh_emote",
"express_open_mouth",
"express_repulsed_emote",
"express_sad_emote",
"express_shrug_emote",
"express_smile",
"express_surprise_emote",
"express_tongue_out",
"express_toothsmile",
"express_wink_emote",
"express_worry_emote"
];
key agent;
integer hyoujou_index;
integer handle;
string hyoujou_name;
string index_msg;//リッスンイベントにてオーナーチャット発言最後2文字の表情インデクス文字代入
string urlenco;
integer url_num;
integer english_or_not;//英語と日本語分岐判定フラグ
string urlenco_1;//チャット最後2文字URLエンコード結果1文字目
default {
state_entry()
{
hyoujou_name="express_toothsmile";
agent=llGetOwner();
handle = llListen(0, "",agent , "");//オーナーのオープンチャンネルでのチャットリッスンON
}
on_rez(integer i){
llResetScript();
}
run_time_permissions(integer perm) {
if ((perm & PERMISSION_TRIGGER_ANIMATION)&&(english_or_not==0)){
//llOwnerSay("Japanese & HUD");//check
if(urlenco=="%EF%BC%90%EF%BC%91"){
llMessageLinked(LINK_ALL_CHILDREN,0,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=0;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%90%EF%BC%92"){
llMessageLinked(LINK_ALL_CHILDREN,1,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=1;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%90%EF%BC%93"){
llMessageLinked(LINK_ALL_CHILDREN,2,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=2;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%90%EF%BC%94"){
llMessageLinked(LINK_ALL_CHILDREN,3,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=3;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%90%EF%BC%95"){
llMessageLinked(LINK_ALL_CHILDREN,4,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=4;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%90%EF%BC%96"){
llMessageLinked(LINK_ALL_CHILDREN,5,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=5;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%90%EF%BC%97"){
llMessageLinked(LINK_ALL_CHILDREN,6,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=6;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%90%EF%BC%98"){
llMessageLinked(LINK_ALL_CHILDREN,7,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=7;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%90%EF%BC%99"){
llMessageLinked(LINK_ALL_CHILDREN,8,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=8;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%91%EF%BC%90"){
llMessageLinked(LINK_ALL_CHILDREN,9,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=9;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%91%EF%BC%91"){
llMessageLinked(LINK_ALL_CHILDREN,10,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=10;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%91%EF%BC%92"){
llMessageLinked(LINK_ALL_CHILDREN,11,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=11;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%91%EF%BC%93"){
llMessageLinked(LINK_ALL_CHILDREN,12,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=12;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%91%EF%BC%94"){
llMessageLinked(LINK_ALL_CHILDREN,13,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=13;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%91%EF%BC%95"){
llMessageLinked(LINK_ALL_CHILDREN,14,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=14;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%91%EF%BC%96"){
llMessageLinked(LINK_ALL_CHILDREN,15,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=15;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%91%EF%BC%97"){
llMessageLinked(LINK_ALL_CHILDREN,16,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=16;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%91%EF%BC%98"){
llMessageLinked(LINK_ALL_CHILDREN,17,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=17;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%91%EF%BC%99"){
llMessageLinked(LINK_ALL_CHILDREN,18,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=18;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(urlenco=="%EF%BC%92%EF%BC%90"){//URLエンコード20時HUDボタン時処理
llStartAnimation(hyoujou_name);
}else{
return;//その他インデクス指定なし一般チャット時
}//else
}else if((perm & PERMISSION_TRIGGER_ANIMATION)&&(english_or_not==1)){//英語チャット時
llOwnerSay("English");//check
if(index_msg=="01"){//0はパーミッション時に除いているので0分岐削除して1から
llMessageLinked(LINK_ALL_CHILDREN,0,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=0;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="02"){
llMessageLinked(LINK_ALL_CHILDREN,1,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=1;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="03"){
llMessageLinked(LINK_ALL_CHILDREN,2,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=2;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="04"){
llMessageLinked(LINK_ALL_CHILDREN,3,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=3;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="05"){
llMessageLinked(LINK_ALL_CHILDREN,4,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=4;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="06"){
llMessageLinked(LINK_ALL_CHILDREN,5,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=5;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="07"){
llMessageLinked(LINK_ALL_CHILDREN,6,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=6;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="08"){
llMessageLinked(LINK_ALL_CHILDREN,7,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=7;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="09"){
llMessageLinked(LINK_ALL_CHILDREN,8,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=8;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="10"){
llMessageLinked(LINK_ALL_CHILDREN,9,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=9;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="11"){
llMessageLinked(LINK_ALL_CHILDREN,10,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=10;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="12"){
llMessageLinked(LINK_ALL_CHILDREN,11,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=11;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="13"){
llMessageLinked(LINK_ALL_CHILDREN,12,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=12;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="14"){
llMessageLinked(LINK_ALL_CHILDREN,13,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=13;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="15"){
llMessageLinked(LINK_ALL_CHILDREN,14,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=14;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="16"){
llMessageLinked(LINK_ALL_CHILDREN,15,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=15;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="17"){
llMessageLinked(LINK_ALL_CHILDREN,16,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=16;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="18"){
llMessageLinked(LINK_ALL_CHILDREN,17,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=17;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else if(index_msg=="19"){
llMessageLinked(LINK_ALL_CHILDREN,18,"", NULL_KEY);//チャット分岐時ルート~全ボタン(子プリム)に送信
hyoujou_index=18;
hyoujou_name=llList2String(hyoujou, hyoujou_index);//選択表情アニメ名セット
//llOwnerSay(hyoujou_name);//check
llStartAnimation(hyoujou_name);
}else{
return;
}//else
}//上位else if
}//run_time_permissions
link_message(integer sender_num, integer num, string str, key id){//表情ボタン受信処理、else処理ではこのままで変更なしOK
hyoujou_index=num;//plus
english_or_not=0;//HUDボタンは日本語URLエンコード20での扱い
urlenco="%EF%BC%92%EF%BC%90";//HUDボタンはURLエンコード20扱い
llStopAnimation(hyoujou_name);//現在表情アニメをまずストップ
hyoujou_name=llList2String(hyoujou, num);//選択表情アニメ名セット
llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION);//アニメパーミッション発動
}
listen(integer channel, string name, key id, string message){
index_msg=llGetSubString(message,-2,-1);//受信したmessageの最後2文字目を取得、-1は最後の文字
//llOwnerSay(index_msg);//check_OK
urlenco=llEscapeURL(index_msg);//日本語入力されたチャットのインデクスをURLエンコードして扱えるように
//llOwnerSay(urlenco);//check
urlenco_1=llGetSubString(urlenco,0,0);//URLエンコード結果1文字目を取得
if(urlenco_1!="%"){
english_or_not=1;//英語フラグ設定
//url_num=(integer)urlenco;//英語時はintegerキャストせずindex_msgのまま分岐処理
llStopAnimation(hyoujou_name);//現在表情アニメをまずストップ
llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION);//アニメパーミッション発動
}else if(urlenco_1=="%"){
english_or_not=0;//日本語フラグ設定
llStopAnimation(hyoujou_name);//現在表情アニメをまずストップ
llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION);//アニメパーミッション発動してイベント内で分岐
}
}
}
//各表情ボタン、 ルートへは名前と表情アニメインデクス送信~後は全てルートにて処理
string self_name="bored";//各表情ボタン名
integer index_num=2;//各表情ボタンアニメインデクス=表情リストに対応
default {
state_entry(){
llSetColor(<1.0,1.0,1.0>,ALL_SIDES);//デフォルトは白
llSetText(self_name,<0,1, 1>, 1 );//デフォルトは水色
llSetAlpha(0.3,ALL_SIDES);
}
touch_start(integer detected){
llSetColor(<0.0,1.0,0.0>,ALL_SIDES);//オンは緑
llSetText(self_name,<1, 0,0>, 1 );//オンは赤
}
touch_end(integer detected){
llMessageLinked(LINK_ALL_OTHERS,index_num, (string)self_name, NULL_KEY);//自分以外に送信,ルートにも送信
}
link_message(integer sender_num, integer num, string str, key id){//他プリム=ボタンより受信
//llOwnerSay("root message!!");//ここまではルートからチャット分岐時メッセージ、他ボタンクリック時もここに来てる
if(str==""){//rootからチャット受信~分岐処理時メーセージ,hyoujouリストインデクス情報受信~判定
if(num==index_num){
llSetColor(<0.0,1.0,0.0>,ALL_SIDES);//オンは緑
llSetText(self_name,<1, 0,0>, 1 );//オンは赤
}else{
llSetColor(<1.0,1.0,1.0>,ALL_SIDES);//消灯にてデフォルト=白
llSetText(self_name,<0, 1, 1>, 1 );//デフォルトは水色
}
}else if(str !=""){//他ボタンからのメッセージ
llSetColor(<1.0,1.0,1.0>,ALL_SIDES);//消灯にてデフォルト=白
llSetText(self_name,<0, 1, 1>, 1 );//デフォルトは水色
}
}//link_message
}
口パク頭巾&忍者セット販売と新店の知らせ
Runa & Rin ロゴ決定にてテレポート&回転ロゴ設置
Mac Miniが音源・映像サーバーで復活!!
遂に完成!忍法雲隠れビデオをご覧あれ!!
Live6欲しい熱が発症してござる!!