2007年5月29日火曜日

【イベント】Raizeen Monday Night Countdown(毎週月曜)

毎週月曜日22:00から飛鳥SIMのクラブ「雷神」ではLucy Takakuraさんの「Raizeen Monday Night Countdown」が行われています。
【クラブ雷神】(slurl)

Raizeen Monday Night Coundown Raizeen Monday Night Coundown
(写真左:当日のクラブ雷神の模様。写真右:DJのLucyさん)

これはLucyさんが「Podsafe Music Network」の楽曲の中で、世界で多くオンエアーされたTop10や「Plastic Soul Band」の楽曲を紹介したり、電話コーナーなどもあります。
ラジオ番組のセカンドライフ版とでもいうのでしょうか。セカンドライフとリアルのネットラジオのコラボレーションです。う〜ん。うまく紹介できないなぁ。
この様子はLucyさんのホームページにポッドキャストがあがっているので、それを聞いていただいた方がいいかもしれません。
【PSM Hit Makers Podcast】
Lucyさんのブログ【DJ Lucyの「とにかくやってみる!」】

面白いのが「電話コーナー」。セカンドライフのあの人の生声が聞ける(笑)
私も調子に乗って、本日参加してしまいましたf(^-^; いやー、緊張しました。あと、けっこう、いっぱいいっぱい(苦笑)
聞いていた方にはお聞き苦しいところを聞かせてしまい、申し訳なく思ってます・・・。

私は相変わらず、週末にログインできいないので、平日にこういうイベントがあるのは大変ありがたいです。

そんな訳で毎週月曜日はクラブ雷神へGO!

2007年5月26日土曜日

アオザイを作ってみる

テストケースでこんな服を作りました
アオザイ試作2 アオザイ試作1

ベトナムの民族衣装「アオザイ」です。袖の長さは変えられるようにしてあります。
まだ型紙の段階なので色・柄にそんなに手を入れていません。でも何人かに見てもらったら、けっこういい感触だったので、調子に乗って商品化しようと思ってます。そのためには色とか柄とか増やさないとなぁ。

実は青葉(Aoba)SIMに自宅を造ってしまったので、朱雀(SUZAKU)の2階が遊んでいる状態なのです。
もったいないので、ちょこっと改造してお店にしようかなぁと企んでいます。

別荘改め自宅

別荘というよりはすっかり自宅になってしまった私の家。
ようやく内装外装とも完成しました。
ウッドデッキにはパラソルとデッキチェアーを用意。
丸い椅子はこのSIMの管理チームの方からいただきました。
これで3プリムはすごいなぁ。

中は大きい椅子とソファー。観葉植物と仙台箪笥とベッド。ベッドにはそのうちポーズボールを仕込みたいなぁ。
私は青系統の色が好きなのでファブリック類はそれで統一してみました。

そんな新・自宅ですが、私のこれからのセカンドライフ活動の拠点にすべく「Gatespace Office」という看板が掲げられました。ここで作ったものをいろんな所でちょっとずつ売り出そうと画策中です。
(それは後ほど)

さて、私のオフィスのあるSIM名は、ちょっと思うところがあって伏せていたのですが、先日管理チームの方からOKいただいたので紹介します。

AobaAoba(青葉)SIMです!
slurlはこちら
http://slurl.com/secondlife/Aoba/128/128/0/

私の家はこのSIMの南東の端にあります。
このSIMは仙台市青葉区をイメージしていて、アーケードがあったり公園(サンドボックス)があったり、ある特徴的な建物ができる予定です。「まったり」がテーマらしいので街並もきれいです。
まだ建設中の部分もありますが、既にいくつかのお店も営業しています。
皆さん一度足を運んでみてくださいね。

余談ですが。このSIMはリアルで知っている方々が運営しているので、個人的にはすごーく安心していて、かつ落ち着きます。なので最近入り浸りです

2007年5月18日金曜日

【LSL】鍵付きのドア(更衣室)

【プール機能拡張】でちょっと書いた「更衣室のドア」。「内カギ」ではありませんが、更衣室(試着室)のように、閉めるのは誰でもOKだけど、開けられるのは「閉めた人」とオーナーだけにしました。


基本的な動作は【ドアとスライドする窓を作る】Makapu【鍵をかける】と同じです。

出来上がりがこちらの写真。写真左が閉じている状態の時、写真右が開いている状態の時です。開いている時はフローティングテキストで説明を出しています。

以下スクリプト。
// floating text
string ft = "Touch! Close the curtain.";

// close
vector close_scale = <4.8, 6.2, 0.1>;
vector close_pos = <-2.2, 0.0, 0.0>;

// open
vector open_scale;
vector open_pos;

// open timer(minutes)
integer timers = 60;

// lock key
key lock=NULL_KEY;

default {
state_entry() {
open_scale = llGetScale();
open_pos = llGetPos();
llSetText(ft,<1.0,1.0,1.0>, 1.0);
state open;
}
}

state open {
state_entry() {
// unlock
lock = NULL_KEY;
llSetScale(open_scale);
llSetPos(open_pos);
llSetText(ft,<1.0,1.0,1.0>, 1.0);
}

touch_start(integer total_number) {
lock = llDetectedKey(0);
state close;
}

}

state close {
state_entry() {
llSetScale(close_scale);
llSetPos(open_pos+close_pos);
llSetText(ft,<1.0,1.0,1.0>, 0.0);
llSetTimerEvent(timers*60);
}

touch_start(integer detected) {
if (llDetectedKey(0) == llGetOwner()) { // Owner
state open;
} else if (llDetectedKey(0) == lock) { // touch close user
state open;
}
}

timer() {
llSetTimerEvent(0);
state open;
}

}

Touch! Close the curtain.は、開いている時に表示するフローティングテキストです。
vector close_scale = <4.8, 6.2, 0.1>;の右辺は閉じている時のプリムの大きさです。
vector close_pos = <-2.2, 0.0, 0.0>;の右辺は閉じている時と開いている時の座標の差分の値です。
integer timers = 60;は自動でカーテンがあくまでの時間を「分」で入れています。

スクリプトの流れはこんな感じです。

「カーテンが開いているとき」
誰かがタッチしたら、その人のUUIDを変数lockに格納。
 ↓
「カーテンを閉じる」
サイズと位置を変更して、フローティングテキストを消去(厳密には透明にする)。
変数timersで設定した時間後、カーテンを開けるイベントが発生するようにする。
 ↓
「カーテンが閉じているときに誰かがタッチした」
・触った人がオーナー:変数lockを空にしてカーテンを開ける。
・オーナー以外の場合:タッチした人のUUIDと変数lockを比較、同じであればカーテンを閉じる。
 ↓
「カーテンが開く」
最初に置いた時のサイズ・位置に戻して、フローティングテキストを表示して変数lockを空にする。

なんだか長くなりましたが、これ大丈夫だと思います。・・・多分^^
ただ、先の記事にも書きましたが、カメラワーク次第では中をのぞかれてしまいます。まぁ、その辺はセカンドライフの仕様なので、どうしようもありませんが・・・

プール機能拡張

私の別荘には小さいプールがあります。まぁ、セカンドライフではしょうがないのだけど、土足で入れちゃうんですよね^^;
かといって近所に水着を売っているところはないし、水着があっても人前で着替えるのってどうなのよってことで・・・一式作っちゃいました。

まずこれはプール横に設置した看板とフリーの水着です。男女それぞれ用意しました。女性用のは水玉の上下、男性用のは赤いサーフパンツっぽい水着。変更可能にしてあるので、丈などはお好みで調整できます。
水着をゲットしたら、看板をクリックして上空400mに設置した更衣室にGo!

こちら上空400mに設置した更衣室(スカイボックス)です。けっこう広いですよ〜。カーテン付きの更衣室は全部で8つ作りました。
ここから移動するときは奥の看板からどうぞ〜。
実は、この更衣室のカーテンは最初に触って閉めた人と私以外、開けられないようになっています。
まぁ、カメラワーク次第でのぞかれてはしまうのですが、多少のプライバシーは確保できます。
このスクリプトは別記事で紹介します。

2007年5月11日金曜日

【イベント】朱雀 01マーケット&ガレージセール

GW期間限定イベントだったんですが、朱雀SIMで「朱雀 01マーケット&ガレージセール」が期間延長で5/13日曜日まで開催されています。掘り出し物もありますよ〜。
【朱雀 01マーケット&ガレージセール】(slurl)

こちらはフリーアイテム(0L$)および1L$商品のコーナー。
通常は販売されている商品が、0L$ or 1L$で置いてあったります。

倉庫内には通常の商品の他、現物限りの商品(なくなったら終わり!)や現物が(看板ではなく)展示されているコーナーがあります。また2Fはアダルト関連(といってもこの間見たときはスキンとかシェイプでした)が置いてあります。

私も商品・フリーアイテムを置いています。朱雀のギャラリーにないもので、「Tシャツを作ってそれを売ろう」で書いたTシャツ(0L$)と「1プリムカーテン」(10L$)を置いています。
買ってくれ!(笑)

2007年5月10日木曜日

【LSL】テクスチャー利用の1プリムカーテン

今度はテクスチャーで1プリムのカーテンを作りました。
前回のスライドする窓やカーテンと異なり、今回は小窓につけるだけなので、プリム節約もかねテクスチャーの変更でカーテンが開いたり、閉まったりしているように見せています。


基本的な考え方は前回紹介したスクリプトと同じですが、今度は「大きさ」「座標」を変更するのではなく、テクスチャーを変更するようにしてあります。

あらかじめ「開いている状態」「閉じている状態」2つのテクスチャーを用意し、Contentsの中に入れておきます。

さてスクリプトは前回に加え
【Makapu】ベンダーを作ろう(初級スクリプト第十回)
のテクスチャーの配列の部分と
【Makapu】看板を作ろう(初級スクリプト第九回)
のプリムの面の数値を参考にさせていただきました。
list commodity = [
"aoba_curtain_close",
"aoba_curtain_open"
];

default
{
state_entry()
{
llSetTexture(llList2String(commodity, 0), 1);
llSetTexture(llList2String(commodity, 0), 3);

state close;
}
}

state open {
state_entry()
{
llSetTexture(llList2String(commodity, 1), 1);
llSetTexture(llList2String(commodity, 1), 3);

}

touch_start(integer total_number)
{
state close;
}
}

state close {
state_entry()
{
llSetTexture(llList2String(commodity, 0), 1);
llSetTexture(llList2String(commodity, 0), 3);

}

touch_start(integer total_number)
{
state open;
}
}


list commodityに続く "aoba_curtain_close", "aoba_curtain_open" の部分はContentsに入れたテクスチャーの名前を入れています。
llSetTextureではテクスチャーを変更する面を指定しています。
私の場合は部屋の中側の面と窓の外から見える面の2カ所のテクスチャーを変更したかったので、2行続けて記述しています。
すべての面を変更する場合は
閉じている時
llSetTexture(llList2String(commodity, 0), ALL_SIDES);
空いている時
llSetTexture(llList2String(commodity, 1), ALL_SIDES);

でオッケーです。

ま、今回も動けばいいやぁ〜って感じですが^^;

【LSL】ドアとスライドする窓

某所に作った私の別荘。いろいろスクリプトを仕込みましたので、何回かに分けて紹介します。
今回は建物の作った「クリックすると開くドア」と庭に出るための「スライドする大きな窓」です。


【クリックすると開くドア】
スクリプト(lsl)についてはこちらのブログを参考に作りました。
【Makapu】ドアを作ろう(初級スクリプト第五回)
こちらのブログはlslを丁寧に紹介されています。
今回のドアのスクリプトに関して言えば、「ドアの状態」「回転の処理」「タイマーの設定」と、順序よく解説されているので、応用も考えやすいです。

・・・なんだかブログの紹介になってしまいました。

【スライドする大きな窓】
上のドアの応用で作ったのがこのスライドする窓(掃出し窓っていうんだっけ?)です。
上のスクリプトからタイマー系の部分を削除して、回転ではなく大きさを変えることで、窓がスライドしているように見せているだけです。
スクリプトはこんな感じ
vector scale;
vector pos;

default
{
state_entry()
{
scale = llGetScale();
pos = llGetPos();
state close;
}
}

state open {
state_entry()
{
llSetScale(scale+<-4.4, 0.0, 0.0>);
llSetPos(pos+<-2.2, 0.0, 0.0>);
}

touch_start(integer total_number)
{
state close;
}
}

state close {
state_entry()
{
llSetScale(scale);
llSetPos(pos);
}

touch_start(integer total_number)
{
state open;
}
}

llSetScale(scale+<-4.4, 0.0, 0.0>);<-4.4, 0.0, 0.0>
llSetPos(pos+<-2.2, 0.0, 0.0>);<-2.2, 0.0, 0.0>
自分の作ったプリムのサイズに合わせて適宜変更すれば大丈夫です。
(動けばいいという感じで作ったので、面倒と言えば面倒ですが)

数値の出し方はざっとこんな感じで(適当だなぁ)
まぁ、小さくしたときの大きさと座標を控えておいて、引き算するのが一番手っ取り早いです。

テクスチャーや大きさを変えればカーテンにも応用できますね。

2007年5月3日木曜日

別荘完成!(外側だけだけど)

週末にログインできなくなったため、平日の昼休みと夜にコツコツ作っていた別荘が完成しました。
3回ぐらい作っては壊し〜を繰り返したので、時間がかかってしまいました。

憧れの庭付き一戸建て(笑)平屋の建物ですが、ウッドデッキやプールも作りました。
庭も写真の左側の木はBuildで作れる木ですが、右側の大きな木は買ったものです。
お店はこちら
【The Heart Garden Centre】(slurl)

ちなみにこの木以外は全部自分で作りました〜!!
だってその方がプリムやお金を節約できるんだもん。

入り口はこんな感じで。ドアはクリックすると開きます。

まだ家具がありません(苦笑)
カーテンは大小どちらもクリックすることで、空いたりしまったりします。これで、着替えをしても大丈夫(笑)
また、奥のガラス戸はクリックするとスライドするので、外に出ることができます。
この辺のスクリプトとかは後日紹介しようかな。

庭先のプール・・・というかちょっと大きめのジャクジーですね。
ポーズボールを置いてあるので、Sitでプールの縁にすわれます。16個用意してありますが、全部座りポーズで泳げません。
この辺はアニメーションがあればなんとかなるのかなぁ・・・

こんな感じで座れます。

あとは家具を置きたいし、音楽も流したい。ウッドデッキにもチェアーとパラソル(カフェとかに置いてあるようなもの)も置きたいなぁ。