Site search

Google
WWW を検索 backup-beta.blogspot.com を検索

2009年3月31日火曜日

デジタル掛け時計

時間と日付を表示するデジタル掛け時計を作りました。今まで時間表示だけの4プリムのDigital wall clockを売ってたんですが、このクロックはそれの後継機種になります。

オーナーはタッチ長押しでメニューが出ますので、日本時間はタイムゾーンをGMT+9:00に設定してくださいね^^
あと、ボディ形状も2タイプ変えられるようにしてみました。6プリムでボディの部分はスカルプになってます。

お値段はL$100です。Teasers店SL-Shopping.net-Mall店に置いてた旧機種と入れ替えました。いかがでしょうか^^


2009年3月29日日曜日

アイテムキャンプ用ダンスパッド

ダンスすると賞品がもらえるプライズキャンプ(アイテムキャンプ)を作ってみました^^

1プリムでパッドの色はタイマーでランダムに変わります。

マネーキャンプはダンスパッドのものが結構人気かなって感じですけど、プライズキャンプになってるダンスパッドって見たことないんですよ。椅子以外はあまり人気ないんでしょうかね?^^;

お値段はL$50です。Teasers店CSL MALL店(ベンダー)、SL-Shopping.net-Mall店に置いてきました。宜しくお願いします^^


2009年3月28日土曜日

ベータグリッドにアップしてないテクスチャなのに

この前テクスチャを修正したデジタル時計のスクリプトをPCに保存して、ベータグリッドにログインして同じ時計(修正前の状態)のスクリプトを修正版に入れ替えて、試作品を作ろうと思ったんですね。

この時計のテクスチャはスクリプトでUUID指定して表示させてるんですが、ベータグリッドには修正したテクスチャは存在しないはずなのに、スクリプトを入れ替えただけで表示されたんですよ@@;

最近ベータグリッドが更新されたのは2月初め~半ば頃だったと思いますが、時計のテクスチャは2~3日前にメイングリッドにアップロードしたものなんです。。。ってことは、ベータグリッドからはメイングリッドのテクスチャにもアクセスできるってことになりますよね?

3月29日0時10分頃追記: 試しにベータグリッドにアップロードしてるテクスチャのUUIDを調べて、メイングリッドでそのテクスチャをスクリプトでプリムに設定してみても表示できました。。。これって資産UUIDだけでよかったらメイングリッドのアップロード代ケチれるってことですかね?w どうなってるんでしょう?_?
6月6日追記: 今日試してみたらメイングリッドのテクスチャはベータでも表示できましたが、ベータのテクスチャはメインでは表示できませんでした。。。んー、やっぱりそうですよね^^; 3月に試したときはテクスチャのデータベースか何かが偶然調子悪かったのかも知れませんw


2009年3月27日金曜日

ラッキーレター譲渡可能版

Lucky letterのパーミッションがコピー不可、譲渡可のものを5台セットで試験販売はじめました。
ラッキーレター(MT) 5個パック
現在のところメタコマースの通販のみで120マメタ(120円相当?)ですw

この製品の譲渡可能版は単品販売もしてなくて、モール経営者様とかから複数台ご注文頂いたときだけ対応してたんですよ。

4月19日追記: ラッキーレター値上げで140マメタに変更しました。


2009年3月26日木曜日

Digital clock V2.3.2

1プリムのデジタルクロックモジュールなんですが、今まで2枚のテクスチャでデジタルの数字を表示してたんですね。この頃テクスチャは正方形でないといけないのかなって勘違いしてて、512x512を2枚使ってたんですよ^^;;
それからサーバーにtgaで保存されてると思ってたので、重くなるかなってことで1024x1024は使わなかったんです。。。でもその後jpeg2000って形式で保存されてるらしいってことがわかって、結構圧縮されてるらしいので、今回1枚で作り直したテクスチャに変更しました。フルカラーの複雑なテクスチャじゃないのでたぶん容量はあまり大きくないかなって思います。

あと、オーナーメニューを開くにはタッチ長押し約3秒だったんですが、うちの他の時計と同じで0.5~1秒くらいで出るように変更しました。

アップデートご希望の購入者様いらっしゃいますかね。ご連絡くださいましたら対応しますので宜しくお願いします。


2009年3月24日火曜日

売上分配ベンダーのスクリプト

コンテンツ内のスクリプト名を変更しようとしたら、手がすべって削除してしまって、うわああああって発狂しそうになった千尋です。書いたばかりのスクリプトで、まだバックアップしてなかったんですよ。同じミスで削除しちゃったのこれで2回目です;;

今回は売り上げを分配する簡単なベンダーのスクリプトです。お友達と共同で作ったアイテムの売り上げを分配したりとか、売り上げ金の何%か手数料を支払う条件で出品できるフリーマーケットみたいなのにいいんじゃないでしょうかね^^

商品価格はノートカードを1つ入れて、そのノートカード名を L$20 って感じで金額に変更すれば設定できるようにしてみました。ノートの内容は空っぽでオッケーですw
アイテムは複数入れることができ、売れたら全部をフォルダで渡します。フォルダ名はベンダーのオブジェクト名になるようにしました。


分配するアバターのUUIDキーを記入して、お好みの分配率に変えてください。スクリプトを保存すると、そのアバターのプロフィールのリンクをオーナーにチャットしますので、チャット履歴からクリックでアバターを確認できます。そして、タッチで口座引落しを許可して、商品の価格を名前にしたノートカードを忘れないように入れてくださいね。
// 売り上げ分配ベンダー
key av="00000000-0000-0000-0000-000000000000";  // 分配するアバターのキー
float percent=5;  // 分配率(%)
integer price;
list items;

init()
{
    items=[];  // アイテムリスト初期化
    string str;
    integer i;
    integer j=llGetInventoryNumber(INVENTORY_ALL);  // コンテンツ内のアイテム数
    for (i=0; i < j; i++) {  // アイテムをチェック
        str=llGetInventoryName(INVENTORY_ALL,i);  // アイテム名取得
        if (llGetInventoryType(str) == INVENTORY_NOTECARD && llGetSubString(str,0,1) == "L$") {  // 名前がL$○○になってるノートのとき
            price=(integer)llGetSubString(str,2,-1); // ノート名から価格を設定
        }
        else if (str != llGetScriptName()) items+=[str];  // その他は、このスクリプト以外をリストアップ
    }
    if (llGetPermissions() & PERMISSION_DEBIT) llSetPayPrice(PAY_HIDE,[price,PAY_HIDE,PAY_HIDE,PAY_HIDE]);
}

default
{
    state_entry()
    {
        llSetPayPrice(PAY_HIDE,[PAY_HIDE,PAY_HIDE,PAY_HIDE,PAY_HIDE]);  // 支払い不可に設定
        llSetClickAction(CLICK_ACTION_TOUCH);  // クリックでタッチに設定
        init();  // initでコンテンツ内チェック
       
        if (av != "") llOwnerSay("Split money with secondlife:///app/agent/"+(string)av+"/about ?");  // 分配するアバターのプロフ
    }

    on_rez(integer start_param)
    {  // 持ち物から出したときリセット
        llResetScript();
    }

    changed(integer change)
    {  // コンテンツ内が変化したらinitへ
        if (change & CHANGED_INVENTORY) init();
    }

    touch_start(integer total_number)
    {
        if (llDetectedKey(0) == llGetOwner()) {  // オーナーがタッチしたとき口座引落し許可のリクエスト
            llRequestPermissions(llGetOwner(), PERMISSION_DEBIT);
        }
    }

    run_time_permissions(integer perm)
    {
        if (perm & PERMISSION_DEBIT)
        {  // 口座引落し許可されたら
            llSetPayPrice(PAY_HIDE,[price,PAY_HIDE,PAY_HIDE,PAY_HIDE]);  // 支払いダイアログに金額を設定
            llSetClickAction(CLICK_ACTION_PAY);  // クリックで支払いに設定
        }
    }

    money(key id, integer amount)
    {  // 売れたら
        if (amount == price) {  // 金額のチェック
            llGiveInventoryList(id,llGetObjectName(),items);  // リストのアイテムを渡す
            llInstantMessage(id,"Thank you for your purchase.");
            integer i=(integer)(amount*percent/100);  // 分配額を計算
            if (i > 0) llGiveMoney(av,i);  // 分配額が0でなければ送金
        }
        else {  // 金額が一致しないとき
            llGiveMoney(id,amount);  // 返金
            llWhisper(0,"Error - illegal amount.");  // エラー
        }
    }
}

アバター名からアバターのキーはLSLのみで割り出せないと思うので http://search.secondlife.com/ とかで調べてくださいね。


2011年5月14日追記: 支払い金額のチェックが入ってなかったので追加しました。それから http://search.secondlife.com/ からはアバターのキーは調べられなくなっています。

2009年3月23日月曜日

Lucky letter V1.4.2

ラッキーボード、ラッキーチェアなど複数設置したりしてると、結構同じレター(文字)が偏って出てたりとかありますよね? それはそれで面白いかもって気もするんですけど、原因はllFrandの問題じゃないかなって思うんですよ。この関数で発生した乱数ってあまり精密じゃないらしいんですね。

ラッキーレターのレターも普通にllFrandでランダムに決めてたんですが、今回のバージョンでは発生した乱数がもうちょっとバラつき出るような処理を加えてみました。。。どのくらい改善されてるかはわかりませんがw

最新版ご希望の方はTeasers店にタッチでアップデート受け取れる装置を置いてますのでご利用くださいね^^


2009年3月21日土曜日

バグ修正前の不良品を販売してた orz

今日ランダムチャットマネーを少し修正して、各店舗に置いてるこの商品を入れ替えたんですね。そしたら一部の店舗でバグ修正前の古いバージョン1.0.1のまま販売してたことがわかって、すごく焦りましたw

この装置は発売後2台ほど出荷したときに、メモリリークで装置が停止してしまう重大なバグが見つかって慌てて修正したんですよ^^;;
それで、そのとき店舗に置いてる商品は入れ替えてたんですが、自分の持ち物内の商品の箱の中身は入れ替えるの忘れてて、その後に新しく置いた店舗やフリマにはその古い不良品が入ったままの箱を置いてましたw

でも幸い不良品を置いてた店舗のは売れてなかったんですよ。。。ホッとしました^^;


2009年3月19日木曜日

メッセージを数件記録するスクリプト

タッチした後、チャットで打ったメッセージを記録するスクリプトを考えてみました。記録したメッセージの読み出しは誰でもできます。最初はオーナーのみ読み出し可能にしようかなって思ったんですが、それだったら普通にIMでOKなんじゃないかなって感じになってきたので変更したんですよw

タッチしてチャットすると、チャット内容をリストに記録します。内容を表示するときはチャットのときmsgって入力すると表示するようにしました。(制限時間120秒)

リストには [ 時間+アバター名, チャット内容 ] のように2つずつ記録するようにしました。1つにまとめた方がスマートなんですけど、そうするとチャットできる文字数(バイト数?)いっぱいまで表示できなくなるので分割したんですね。


キー型の変数userは、タッチしたアバターのキーを入れて、使用中かどうかを判断するのに使ってます。スクリプトできてから、これブーリアン型で良かったのにって思ったんですけどね^^;
// メッセージを記録
list msglist;  // 記録用リスト
key user=NULL_KEY;  // 使用チェック用
integer time=120;  // 制限時間
integer listen_handle;
integer max=10;  // 最大記録数
string cmd="msg";

string get_time()
{
    integer t=(integer)llGetWallclock();  // 太平洋時間
    integer h=t/3600;  // 時
    integer m=(t%3600)/60;  // 分
    string hh=(string)h;  // 時を文字に変換
    if (h < 10) hh="0"+hh;  // 時が1桁だったら0を付ける
    string mm=(string)m;
    if (m < 10) mm="0"+mm;
    return hh+":"+mm;  // hh:mm でリターン
}

default
{
    touch_start(integer total_number)
    {
        key id=llDetectedKey(0);  // タッチしたアバターのキー
        if (user == NULL_KEY) {  // 使用中でないとき
            user=id;  // userにキーを設定
            llSay(0,"Say '"+cmd+"' to read messages, or say message to save your message. (timeout "+(string)time+" seconds)");
            listen_handle=llListen(0,"",id,"");  // リッスン開始
            llSetTimerEvent(time);  // タイマー始動
        }
    }

    timer()
    {  // 時間切れになったときの処理
        llSetTimerEvent(0);  // タイマー停止
        llListenRemove(listen_handle);  // リッスン中止
        user=NULL_KEY;  // userにヌルキーを設定
        llSay(0,"Timeup! Touch and say again.");  // 時間切れです
    }

    listen(integer channel, string name, key id, string msg)
    {
        llSetTimerEvent(0);  // タイマー停止
        llListenRemove(listen_handle);  // リッスン中止
        user=NULL_KEY;  // userにヌルキー
        if (msg == cmd) {  // 読み出し
            integer i;
            integer j=llGetListLength(msglist);  // リストの長さ
            llSay(0,"--- Max "+(string)max+" saved message(s). ---");
            for (i=0; i < j; i+=2) {
                llSay(0,llList2String(msglist,i));  // 時間、名前
                llSay(0,llList2String(msglist,i+1));  // メッセージ
            }
            llSay(0,"----------------------------------------");
        }
        else {  // 記録
            msglist+=["["+get_time()+"] "+name+": ",msg];  // リストに時間と名前、メッセージを登録
            integer i=llGetListLength(msglist);  // リストの長さ
            if (i > max*2) {  // リストが最大記録数×2を超えたら
                msglist=llDeleteSubList(msglist,0,i-1-max*2);  // 古いほうから消す
            }
            llSay(0,"Saved your message.");
        }
    }
}

リストや時間の部分の処理は訪問者を記録するスクリプト http://backup-beta.blogspot.com/2008/10/blog-post_4583.htmlと同じです^^;

2009年3月17日火曜日

1000m以上の場所へマップテレポート

今まではllMapDestinationで高度1000m以上に設置されたスカイボックスとかの場所に行こうとしても、マップが開くと高度が1000mになってしまって無理だったんですね。

でも、この前ビューワーが1.22にバージョンアップしてからテレポートできるように修正されてるのに気がつきました^^

先月JapanSeychellesLandで開催されたトレハンにMURASAKIっていうHUDを出してたんですが、このHUDのマップテレポート機能は1000m以上の場所を登録すると警告を出すんですよ。でも位置情報は正しく記録されてますので、最新版のビューワーでも問題なくご使用頂けます。

あとは反応が遅いときマップがずれるってのも修正されないでしょうかね。。。^^;
ホントは、ランドマーク表示したときとか、チャット履歴のSLURLクリックしたときみたいなウィンドウをスクリプトで直接出せるようになったらいいのにって思うんですけどねw


2009年3月16日月曜日

1プリム植木鉢とプランター

普通のプリムで、各2プリムでできた植木鉢のセット(3種類入り)をフリーで置いてたんですね。それで、そのセットに入ってるもの2点と似た感じのものなんですが、スカルプで1プリムの鉢とプランターを作ってみました。

どっちもホームセンター行ったら格安で売ってそうな飾り気のない商品ですね^^;;

同じようなスカルプで作られた植木鉢ってよくあると思いますが、この製品は土のところにスカルプの芯が出ないように工夫したんですよ。なので土が中心でしぼったような感じじゃなくて自然な感じに見えます^^

修正可、コピー可、譲渡不可で各L$25で販売中です。でも、2プリムのものでも十分って気もするので余り需要ないかもですねw Teasers店に置いてます。いかがでしょうか^^


2009年3月15日日曜日

大きな桜の木

この前マップ開いたとき気がついたんですが、うちの近所のフィッシング場だったところに何か建造されてるみたいだったんですね。なので見に行ったら、すごく大きな桜の木があったんですよ。。。んー、これって千尋の家より大きいような気がw

周りには普通の桜もたくさん植えられてて、お花見できるようになってました。それから和風建築の舞台みたいな建物があって、何か宴会みたいなイベントも計画されてるようです。看板には3月20日22時って書かれてました。
http://slurl.com/secondlife/JapanSeychellesLand/202/218/23


2009年3月14日土曜日

神戸フェスタ海上フリーマーケット

VJ Eyewearっていう眼鏡屋さんを経営されてるViokuさんがフリマを開催されてて、昨夜うちも出店させてもらいました^^

フリーが1点以上で11プリムまでなんですね。うちは2点フリー置きました。あと、プリム数とは別にラッキーボードOKだったので、景品はこの前お店から撤去したラッキーレターに入れてたものと同じなんですが1台設置しました。

期間限定で開催されるフリマに参加ってホント去年の夏以来でしょうかね。。。すごく久しぶりなんですよ^^

神戸フェスタ海上フリーマーケット
http://slurl.com/secondlife/kobe%20harbor/214/111/24

開催期間は3月1日~4月10日までです。SHOP CHIHIROは北側の少し東寄りくらいの場所に出店させてもらってます。他にもたくさんのショップが出店されてますので皆様是非ご来場くださいね^^

4月5日1時30分頃追記: ラッキーレターに入れてた花瓶(壺?)セットを2段のカラーボックスに変更しました。


2009年3月13日金曜日

1プリム植木用スカルプ

この前アスペクト比を変えて作った木のスカルプのフリー配布を開始しました。2枚構成のものが2種類と3枚構成、4枚構成の4種類がセットになってます。
スカルプは全部作ってもホント1時間も掛からなかったんですけどね。。。英語が苦手なので英文で説明書(かなり雑ですけどw)書くのに結構時間が掛かってしまいました^^;;

昔アスペクト比を変えずに作ってみたものと比べたら、離れたときに多少崩れが出るんですが他のオブジェクトと比べて気にならないくらいかなって思うし、上か下に高さの5%くらい透明部分があるテクスチャだったら、そのまま使えるので結構便利なんですよw

私はお花のテクスチャ作るのちょっと無理そうなので、フリービーや市販の植物のテクスチャを貼り付けて飾ってます^^;

園芸店とかされてる方は、もちろん商品作成にご利用頂いてもOKですし、再販もOKです。
Teasers店に置いて来ました。宜しくお願いします^^

3月14日17時40分頃追記: 昨日記事を書く前にこのアイテムをXstreet SLに登録してたんですが、約1日で190個も出荷されてました@@; んー、こんなに人気あるんだったら10L$くらいで売ってもよかったかもwww

3月27日18時頃追記: 現在のXstreetのトラフィックです。登録したときはとても伸びてるのがわかりますね。。。翌日にはもう半減しちゃってますけどw

2009年3月9日月曜日

アスペクト比を変えたスカルプ

ぱすてるさんのブレンダーで数学的リングアート(アスペクト比変更で再挑戦)とか見て、UVマップのアスペクト比を変えたスカルプが作れたらいいなって思ってたんですが、何か難しそうだし、テンプレート使ってる私には無理かなって思ってたんですね。

でも、Blender CIESでアスペクト比を変えたスカルプト(田中明夫さん)を見てやってみたらできました!!(嬉

崩れにくくしたりとか色々活用できそうですが、とりあえず木用のスカルプを作ってみました。これなら前普通に作ってみた木のスカルプより余白の少ないテクスチャが使えますね。

フリーで入手したテクスチャセットに入ってたバナナの木もそのまま使えました^^


2009年3月8日日曜日

ラキボ限定アイテム♥ハート型ポーズスタンド

SL-Shopping.net-Mallのラッキーレターの景品を入れ替えてもらいました^^

GSさんが忙しくて、いつ景品が入れ替わったのかちょっとわからないんですが、今日寄ったときに見たら変わってるの気がつきました^^;

景品は着替えのときとかに使う普通のポーズスタンドなんですけど、装着するとHUDとして使えるようにしてみたんですよw

設置場所はTP2の近くです。宜しくお願いします^^
http://slurl.com/secondlife/Jiminy/45/38/106

20時10分頃追記: レター切り替わりは3分間隔です。


2009年3月6日金曜日

八角形のテーブル

この前のハート型のテーブルと同じ感じで、スカルプで八角形の机を作りました。

カラフルなテクスチャチェンジも同じです。。。っていうかテクスチャは同じものを使ってますので^^;;

修正可、コピー不可、譲渡可で、お値段L$25にしました。これもTeasers店のみに置いてます。宜しくお願いします^^


2009年3月3日火曜日

♥のテーブル

トレハンのシークレットに出してたハート型のテーブルを少し修正して販売することにしました。

見た感じ全然一緒なんですけど、テーブルの裏側の脚の近くにスカルプのシワがちょっと出てたので、脚の付けねを太めにしてシワが隠れるように直したんですよ。あと、色っていうかテクスチャになりますが、ダイアログで4色(ホワイト、アクア、ピンク、イエロー)変えられるようにしました。ピンク色はトレハンのより濃いめのピンクです。

パーミッションは修正可、コピー不可、譲渡可で、お値段はL$30L$25にしました。現在のところTeasers店のみに置いています。宜しくお願いします^^

3月6日17時10分頃追記: 少し値下げしました。