2010年4月26日月曜日

Viewer2にZHAO-II

AOは普段あまり使わないんですが、気が向いたときすぐ使えるようにいつもZHAO-IIをオフの状態で装着はしてるんですね。

位置は右上に装着してるんですが、ビューワー2だったらサイドバーのトグルボタンの下になってしまいます^^;

重ならないように位置を移動させても、ログインし直したりすると元の位置に戻ってしまうので、スクリプトで位置設定してるのかなって思って調べてみたらZHAO-II-interface 7/21.1っていうスクリプトに記述部分がありました。
// For the on/off (root) prim
list rootPrimOffsets = [
    <0.0,  0.025, -0.05>,    // Top right
    <0.0,  0.00, -0.05>,    // Top middle
    <0.0, -0.025, -0.05>,    // Top left
    <0.0,  0.025,  0.10>,    // Bottom right
    <0.0,  0.00,  0.10>,    // Bottom middle
    <0.0, -0.025,  0.10>    // Bottom left
];
それでTop rightの位置を <0.0,  0.025, -0.55>, に変えたらサイドバーのボタンのちょっと下でいいくらいの位置ずらすことができました。。。装着位置右上なのに下にきてるじゃん!って感じですがw

2010年4月25日日曜日

ナインベンダー&シックスティーンベンダー

1prim 9items vendor1prim 16items vendorなんですが、製品名がちょっと長すぎるかなって思ってたので、今回のバージョンアップで思い切って名前を変更しました。9アイテムがNine vendor、16アイテムはSixteen vendorになります。

お値段は9アイテムのほうをちょっとだけ値上げしました^^;
Nine vendor V1.5.0 - L$110
Sixteen vendor V1.2.0 - 48マメタ(メタコマース限定販売

「1プリム」だけ取って、9アイテムベンダーって名前にしてもいいかなって思ったんですが、9パネルベンダーと間違えそうなのでやめたんですよ(実際混同してしまった外人さんいましたw)

バージョンアップで改良した点は、この2機種もセールスリストとIM通知で0L$の商品を除いて表示する機能をつけたのと、あと隠し機能的なものなんですが「selector」っていう名前のオブジェクトを作ってベンダー本体に子プリムとしてリンクさせると、選んだ商品の枠になって動作するようにしました。。。まあ2プリムになっちゃいますけどねw この隠し機能は1プリム9アイテムV1.4.8もテスト的に実装してます。

旧1プリム9アイテム、1プリム16アイテムベンダー購入者様は、それぞれ機種名変わりましたが、ご希望でしたら最新版をお渡しできますのでお問い合わせくださいね^^

スマートベンダー新発売♪

ボディをスカルプテッドプリムで作った2プリムのSmart vendorを発売しました。機能は1プリムベンダーとあまり変わらないので1プリムベンダーの上位機種になりますw

主な機能は下記の通りです。
ノート編集不要の簡単セットアップ
一括割引セール、グループ限定キャッシュバック、グループ限定販売機能

セールスリスト30件記憶、IM通知可
前と次の商品テクスチャのキャッシング機能
オートアップデート

テクスチャのキャッシングとオートアップデートは1プリムベンダーには付いてません。また、セールスリストとIM通知はフリーアイテム(0L$のもの)を除いて表示することもできるようにしました。この0L$除外する機能は1プリムベンダーV2.3.3とマルチパネルパネルベンダー(V1.4.3~)にも取り付けてます。

操作ボタンはボディのテクスチャに描いてるんですが、このベンダーもボタンを押したとき「ボタンが押し下げられた感じ」に見えるようにしました。あと特にメリットはないですけど、何となくボディのパネルの部分凹ませてはめ込んであるんですよ(意味不w

お値段はL$160にしました。それでついでに1プリムベンダーもL$120に値上げしましたw
スマートベンダーは各店舗(一部置いてない店舗あり)で販売中です。また、現在FS Shopping Mall店SL-Shopping.net-Mall店KONEKO店では実物を稼動中なのでご覧くださいね。宜しくお願いします^^

4月28日追記: 一部の機種でスクリプトの変更ミスがあって0L$を除いたセールスが記録されてなかったので修正しました。スマートベンダーはV1.0.1、マルチパネルベンダー4機種はV1.4.6になります。オートアップデートをご利用くださいますようお願いします m(_ _)m

2010年4月22日木曜日

サーバー1.38がちょっと残念な件

現在セカンドライフサーバー1.38に更新されてる最中だと思いますが、私のお家があるSIMもいつの間にか1.38になってたので、新しく追加されたLSL関数をテストしてみたんですね。

新たに追加された関数でllGetLinkPrimitiveParamsllSetLinkPrimitiveParamsFastなんですが、これらは多分たくさんのリサイズスクリプトとかでスクリプトの負荷が上がるのを防ぐのが狙いだと思います。

でも実際テストしてみると何かちょっと中途半端って気がしました。スクリプトを子プリムに入れなくても結構高速でリサイズできるようにはなったんですが、ここまでできるんだったら何でllLinkTextureとかもノーウェイトのものを作ってくれなかったの?って感じしますよね。llSetLinkPrimitiveParamsFastだと何番まであるかわからない面ごとのリピートやオフセットはそのままでテクスチャだけを変更ってできないし、リンク先の面の数も取得する関数がないので、結局テクスチャチェンジの場合テクスチャ変更を適用しない子プリムにはスクリプトを入れるとかしないと高速動作させるのは難しいみたいです;;

6月12日追記: サーバー1.40でリンク先プリムの面の数を取得するllGetLinkNumberOfSidesが追加されるみたいですね。

2010年4月19日月曜日

Profile picks gift giver V1.2.0

サーバーのバージョン1.36から土地のUUIDキーをllGetParcelDetailsで取得可能になってるってことに気がついたので、それに合わせてプロフィールピックギフトギバーを改良しました。

今までは自分のピックに土地を登録して、それをもとに手動でUUIDを入力しなきゃいけなかったんですが、本バージョンからはそのような面倒なセットアップ作業は全く不要で、ギフトを入れて置くだけで動作するようになりました^^

ちょっとややこしいセットアップだったので結構お問い合わせがあったんですよ。でもこれでもうその心配もないですねw

この装置はオートアップデートを付けてるので、旧バージョンをお持ちの方は持ち物から出して頂いたらアップデート品を自動でお受け取りできます。宜しくお願いします^^

2010年4月17日土曜日

Lucky letter one updater bug

テストしてて何となく気がついたんですが、ラッキーレターone(1プリムのほう)のオートアップデートが作動しなくなる事があるみたいなんですね。オーナーが替わったときにスクリプトをリセットするようにしてあるので、たぶんスクリプト同士のタイミングでそうなることがあるんじゃないかなって思うんですけど、ラッキーレターや他の装置のオートアップデートは今のところ同じ不具合は確認してないんですよ。でも起きる可能性はあると思うので、一応オートアップデートを採用してる機種全部修正しました^^;

オートアップデートが動作しない状態になってしまったら、何度持ち物から出してもだめみたいです。なのでこれは購入して持ち物に入った時点で運命が決まってしまうんだと思います。ただちょっとしたキッカケで正常に動くようになるので、新バージョンが出てるのに何度rezしてもアップデートが届かなかった方は、次のような簡単な手順で直ると思いますので、お手数ですが宜しくお願いしますm(_ _)m

持ち物から出して1分ほどしてからテイクしてください。これで直ってるはずなので、テイクしたラッキーレターoneを持ち物から出したら今度はアップデートを受け取れると思います。


オートアップデートを修正したラッキーレターoneはV1.0.8になります。

Sometimes, an updater of Lucky letter one (1 prim Lucky letter board) has not worked. If your board can not receive a latest version, try this,
Rez your "Lucky letter one" and wait for 1 minute... and take that. And rerez that to will get an updated version.


Updater fixed Lucky letter one is V1.0.8.

4月21日追記: ついでにリセットかけたときスキンがデフォルトに戻らなかったのも直してたんですが、稼動状態でリセットしたらレターや時間表示に不具合が出てたのでまた修正しました。。。orz

5月4日追記: アップデートに不具合が出たものはサーバーにバージョン情報が届いてなかったんですが、バージョンが確認できなくてもアップデート品を送るようサーバーを修正しました。これでアップデートに不具合の出てしまったものでも最新版をお受け取りできるようになったと思います^^
Our update server fixed. Maybe, all version updater of Lucky letter one has no problem now.

2010年4月15日木曜日

商品設置のときに使うスクリプト

Zindraに出してた店舗はやっぱりモールが無くなってしまったので、今度はもうちょっと活気ありそうなモールを探そうかなって思ってる千尋です。

出店したとき、建物やブースの規模とかに合わせて商品の箱を並べるのって、結構面倒だったりしますよね? なので私は箱の大きさを変更する簡単なスクリプトを使ってますw

こんな感じでサイズ違いのものを何種類か作って持ち物のフォルダにまとめといて、お店に設置するとき商品の箱にスクリプトを直接ドロップしたらオッケーです^^
// size 1.8x0.01x1.8

float f=1.8;  // 縦横のサイズ

default
{
    state_entry()
    {  // スクリプト開始
        llSetScale(<f,0.01,f>);  // オブジェクトの大きさを設定
        llRemoveInventory(llGetScriptName());  // このスクリプトを削除
    }
}

このサンプルは、XとZの大きさが1.8、Yが0.01のボード状になります。また、サイズを変更した後スクリプトは自動的にオブジェクト内から消滅します。

設置する壁の向きが違うときは、更にZ方向の角度だけ変えるスクリプトを商品にドロップして向き変えてます。角度のほうは90度と0度のものを用意したら十分だと思います^^
// angle z 90

float z=90;  // 角度

default
{
    state_entry()
    {
        llSetRot(llEuler2Rot(<0,0,z>*DEG_TO_RAD));  // オブジェクトの角度を設定
        llRemoveInventory(llGetScriptName());  // このスクリプトを削除
    }
}

自分名義の土地とか建物で使うときは取り扱いに注意してくださいね。手がすべって建物にドロップしちゃうとお店が悲しいことになると思うのでwww

20時頃追記: このスクリプトはオブジェクトのコンテンツ内で作成して保存すると消えてしまうので、持ち物の適当なフォルダの中で作ってくださいね。

2010年4月8日木曜日

プロフ写真を展示するスクリプト

昨年12月くらいにアバタープロフィールのウェブページが仕様変更されたんですが、そのときの変更に対応したプロフィール写真を表示するスクリプトを書いてみました。

変更当時は古いスクリプトだとプロフによってはデータが取得できない不具合が出てたんですが、その後、古いスクリプトも問題出ないよう修正されたので、一昨年書いたプロフ写真を表示するスクリプトとかでも取得は可能なんですけどね^^;

仕組みは http://world.secondlife.com/resident/アバターキー にアクセスして、ページのヘッダ部分にある <meta name="imageid" content="テクスチャUUID" /> の部分からテクスチャのキーを取得します。

今回は少し長くなりますが、タッチでダイアログを出して許可もらったときだけ表示するようにしてみました。本人に無断で表示しちゃうのは良くないと思うのでw
// プロフ写真展示

integer face=0;  // 表示する面の番号
integer ch;
key http_req;

default
{
    state_entry()
    {
        llSetTexture(TEXTURE_BLANK,face);  // テクスチャをブランク
        ch=llCeil(llFrand(2147483646));  // チャットチャンネル用乱数発生
        llListen(ch,"",NULL_KEY,"");  // リッスン開始
    }

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

    touch_start(integer total_number)
    {
        key id=llDetectedKey(0);  // タッチしたアバターのキー
        if (id) {
            llDialog(id,"May I display your photo?",["No problem","No thanks"],ch);  // ダイアログで質問する
        }
    }

    listen(integer channel, string name, key id, string msg)
    {
        if (channel == ch) {
            if (msg == "No problem") {  // いい返事もらったら
                http_req=llHTTPRequest("http://world.secondlife.com/resident/"+(string)id,[],"");  // プロフのウェブページをHTTPリクエスト
            }
        }
    }

    http_response(key request_id, integer status, list metadata, string body)
    {
        if (request_id == http_req)
        {
            if (status == 200) {  // プロフが取得できたら
                string str="<meta name=\"imageid\" content=\"";  // この文字列を探す
                integer i=llStringLength(str);
                integer j=llSubStringIndex(body,str);
                if (~j) {  // 見つけたらUUIDをstrに代入
                    str=llGetSubString(body,j+i,-1);
                    j=llSubStringIndex(str,"\"");
                    str=llGetSubString(str,0,j-1);
                    if ((key)str) {  // UUIDキーがOKだったら
                        llSetTexture(str,face);  // 写真表示
                        string name=llGetSubString(body,llSubStringIndex(body,"<title>")+7,llSubStringIndex(body,"</title>")-1);  // アバター名取得
                        if (name) llWhisper(0,"Displayed "+name+"'s photo.");  // ○○の写真を表示しますた^^
                    }
                    else llWhisper(0,"No image.");  // 写真が見つからない><
                }
                else llWhisper(0,"Error, hidden profile in search?");  // 検索で非表示になってる><
            }
            else {
                llWhisper(0,"Error, status "+(string)status+". Can't get data.");  // ウェブページ取得エラー
            }
        }
    }
}

写真を貼ってないプロフはテクスチャのUUIDキーにヌルキーが入ります。また検索にチェック入れてないプロフは <meta name="imageid" content="テクスチャUUID" /> のタグがありません。

ウェブからデータ取得するのはグループ記章も同じ要領でできますね。グループのURLは http://world.secondlife.com/group/グループキー になります^^

4月22日追記: タッチってあまりしてもらえないと思うので、レーダーみたいにセンサーイベントを組み込んだり、ウェルカムマットとかと通信させて連動するようにしたほうがいいかもですね。

7月9日追記: また仕様変更があって、もう古い方法は使えなくなったみたいです。

2010年4月5日月曜日

GIMPもシェイプアップ

LinuxのGnome環境にgeditっていうエディタがあって、それが結構使いやすいんですね。それでそのエディタにはWindows版もあったのでWindowsにもインストールしてみたんですが、インストールされたフォルダの容量が63.8MBもあったんですよ><

インストーラーも16.9MBもあるんですねw まあ必要なGTKとかも含まれてるから大きいんだと思いますが、geditは何となく軽そうなイメージがあったのでちょっとショックでした^^;

それで、テキストエディタに60MB余りもハードディスク消費してしまうのって何かもったいないような気がするので、試しにC:\Program Files\gedit\share\localeのいらない言語ファイルを消してみたんですね。そしたら28.8MBになったんですよ。。。こんなに削減できるって思ってなかったのですごいびっくりwww

同じようにWindows版GIMPも不要な言語ファイルを削除したら94.6MBあったのが47.7MBに減りましたw GIMPはC:\Program Files\GIMP-2.0\share\locale以下にいっぱい各国語の言語ファイルが入ってるので、ja(日本語)のフォルダだけ残して他を全部消します。元々使われないファイルを消すのでソフト自体は軽くならないんですけどね^^;

4月14日追記: geditのwindows版はやっぱり起動が重くてイライラするので結局アンインストールしましたw

6月15日追記: エディタはその後EmEditor Freeにしたんですが、これすごく軽くて機能も良くて使いやすいですね^^

2010年4月3日土曜日

Linux版Viewer 2にガッカリ

Viewer 2.0.0の正式版がこんなに早く出ると思ってなかったので、早く慣れなきゃって感じで焦ってる千尋です^^;

それでリナックス(Fedora 12)のビューワーも2に入れ替えたんですが、なぜかShared Mediaが全然動かなくなってました@@;

ビューワー2のベータ版(Linux版は正式版もベータ扱いかも?)が出たとき、リナックスで試したらバッチリ動いてて、YouTube動画のページもフラッシュが問題なく動作して動画再生もできたはずなのに、現在はどこのウェブページも表示できません。。。これってたぶん内蔵ブラウザ(Webkit)が全然動かなくなったんじゃないかなって思います。それで検索機能も内蔵ブラウザが利用されてるらしくて全く使えないんですよ;;

正式版でこんなバグが入ったとはちょっと考えにくいので、最近のFedoraのオートアップデートで何かのバージョンが合わなくなって動作しなくなった可能性もありますが、さっぱりわかりません。。。んー、どーすればいいんでしょう?><

15時頃追記: ログイン画面の画像とか表示される部分も真っ暗なままで何も表示されないんですね。Snowglobe 2.0のですけど、http://jira.secondlife.com/browse/SNOW-548と似た症状かも知れません。

4月23日追記: 原因がわかりました。PulseAudioが重いのでexport LL_BAD_OPENAL_DRIVER=xの行を有効にしてたんですが、無効にするとシェアードメディアが動くようになりました^^; それで、重くなるのでPulseAudioは削除するしかないかなって思ったんですが、ビューワー2ではPulseAudioはそんなにCPU負荷高くなってなかったです^^

7月21日追記: Linux版のシェアードメディアは2.0.1とフラッシュ10.1.53.64の組み合わせでまた動かなくなったり、2.1.0ベータで動いたり。。。やっぱり不安定過ぎてダメダメですね;