2011年6月20日月曜日

[LSL] これはうれしいかも ~ llRegionSayTo ~

とある関数の説明を再確認しようと wiki.secondlife.com の LSL Portal みてたら、いくつか新しい関数が追加されていました。

llTextBox とか存在は知っていたのですがはじめて公式になりましたね。あと、Display Name 系もあったりしてます。

その中で「ああ、これが欲しかった~」というのが llRegionSayTo です。

llRegionSayTo

スクリプトからアバタ―に対して何等かのメッセージを送る手段は

llSay
llWhisper
llRegionSay
llOwerSay
llInstantMessage

なのですが、llSay, llWhisper, llRegionSay は他の人にも見えちゃうので、関係のない人に見られたくない場合は、必然的に相手先がオーナーであれば llOwnerSay, 他の人は llInstantMessage を使うことになります。

ですが、llInstantMessage は、私みたいにダイアログ使って処理をすることが多い場合は「鬼門」なのです。この llInstantMessage は [Delay] の属性を持っていて、wiki にあるように 2.0 Delay なのです。これの意味するところは、llInstantMessage を使うと 2.0 秒「スリープ」するんです。

なので、ダイアログを扱っているスクリプトから直接この関数を使うと次のダイアログ表示の処理まで「2秒とまる」ことになります。パフォーマンスが出ない、ダイアログの表示が遅い、という場合は llInstantMessage によって「止まっている」可能性が高いのです。

これを回避するために、スクリプトを分けて、ダイアログ処理スクリプトから llMessageLinked を使って、送信先の id とメッセージを llInstantMessage 送信用のスクリプトに渡す、、、などの方法があります。

でも、llRegionSayTo を使えば、もう、そんな手間なことをしなくてもよいわけ。
Delay もないですし、0チャンネルでも指定したアバタ―だけにメッセージが表示されます。
その他、llMessageLinked との違いは「同じSIMにいなければならない」ことです。まぁ、別SIMにいる人にメッセージを渡すようなことがなければ、llRegionSayTo が一番使いやすいかもしれません。0番のオープンチャンネルだけじゃなくて、指定したチャンネル番号を使えば「装着しているオブジェクト」がメッセージを拾うことができる、というのもおもしろそうですね。

あと、ちょっと面白いのは llSay と llWhisper と llRegionSay は声の届く距離だけが違うわけではないんですよ。
llSay/llWhisper は隣接する SIM にも聞こえます。でも、llRegionSay は隣接する SIM には一切聞こえません。この違いをうまく使って SIM 間のリレーチャットなんかもできます。
エレクトログラム Siva の複数SIM で同期ダンス!のときにこの仕組みをつかってみました。

2011年6月11日土曜日

むか~し、むかし

市原悦子風で。。。
てか、何むかし話してるのよwww
LINちゃんのブログ

といってもね、実はLINちゃんも知らないんだけど、私は桃源郷にあったころの ASUKA にいってたんだよ。LINちゃんには一度もあったことがないんだけど、そのときは Sae ちゃんが相手してくれてた。。。英語でwwww(私は外人だと思われていた風味w)

でもねー、やっぱ朱雀→ASUKAにいったころの雷神ではいろいろ学んだし、今のベースを作らせてもらったことには変わりないね~。

シンクロダンスマシンなんか、、、作ったことないのに「作るよ~」って言って、、、でもそのおかげで今でも楽しくやってますの。

まさに記念すべき、わたしの初めての ASUKA での動画は、、、レースじゃなくて、コレ! はずかしくなる編集ですけどね!

いまでも仲良し、お友達の子と踊ってます(^^

でも、LINちゃんも書いてるけど私にとって大きな影響を与えてくれたのが、やっぱり Yaz さん。自慢なんですが、その後、いろいろな人から私のこの動画を見て Yaz Rockett にはまった、、、っていう人が多いんですよw

で、、、今があるわけ。multi motion MLDU5 もそうだけど、やっぱり、それを作りたい~って思った原動力は MikuMikuDance のモーションを踊りたかった、、、んです。

と、、、いうことでw
よろしく~(^^:

2011年5月29日日曜日

[multi motion MLDU5] MaHal 35 でデビュー

multi motion MLDU5 のベータをとことん使い倒して、たくさんのフィードバックをいただいたハルちゃんのショー本番で MLDU5 初お目見えとなります。(といっても、、、MLDU5 そのものが ドーンッ ってあるわけじゃないけど)

MaHal 35
日時:5月29日(日)今日! 23:00~
場所:Pianissimo

すでのショーケースという意味ではカイさんがベータ版の MLDU5 でダンスを披露されております。2011年の5月15日に行われた team Ä ・ S・ H のオープニングイベントでした。
こちらにそのときの模様がビデオでも紹介されています。

blue... [KAIさんのブログ]

通常のダンスから、格闘系モーションとか、そういう、まさにマルチな扱いされてます~。
さて、、で、multi motion MLDU5 はいつ公開されるの?っていうわけですが、今、せっせと marketplace での公開準備をしております公開しました!!!。ちなみに POP はこちら。。。

PopBaseMLDU5-6-JP

今回のパッケージから「譲渡不可」にしました。譲渡したい場合は marketplace から「贈る」が使えるし、そのかわりといってはなんですが、たまに「HUD紛失~」なんてことがあるので、予備用としてもう1個いれます。なので、MLDU5 が2つ入っています。(お試し版は1つだけで変わらずです)バックアップ用として持つも良し、2つとも使うのも良し、お好きにお使いくださいませ、なので、譲渡不可にしました、という感じです。

今現在の予定は

お試し版(3人用、5ダンスセット利用可能):1L$
6人用(6人用、26ダンスセット利用可能):600L$
9人用(9人用、26ダンスセット利用可能):900L$
12人用(12人用、26ダンスセット利用可能):1200L$

となります。近日公開予定です。(いつ~?笑)


あと、注意事項というか、製品の位置づけですが、


multi motion MLDU5 は MLDU4 を置き換えるものではありません。

通常のクラブ フロアでの利用は MLDU4 がよろしいと思います。multi motion MLDU5 は現時点では残メモリーがひっ迫しているため、12人を超えるものは、お願いされても提供できません。ショーケースなどで組みダンスを行いたい!カップルダンスを自分の HUD で楽しみたい! MikuMikuDance の複数人用モーションを楽しみたい!という方を対象にしています。
なので、marketplace では MLDU4 と multi motion MLDU5 の併売をしばらく続けます。
ご理解のほどよろしくお願いいたします。
゚・:,。★ MLDU ★。,:・゚ (https://marketplace.secondlife.com)
https://marketplace.secondlife.com/stores/70251

2011年5月1日日曜日

[LSL] 変更されたノートカードを探す

この数年、、、できないと思い込んでいたことが、今日できることに気がつきました!
オブジェクトのインベントリの中の「ノートカード」。これ、もう最初から「タイムスタンプとかないし、どれ修正したかわからない」と思い込んでいたんです。
で、スクリプトが扱うノートカードの制限ってあるにかしら?と思い wiki を見ていたら、、、「ノートカードは不変」の項目を見つけ、、、。
できるじゃん!!!!私、これ4~5年は無理だとあきらめてたのにっ!
wiki のノートカードの説明
つまり、、、修正した時点で実は新しいオブジェクトとなり、Key が変わる!ってことなんです。それだと修正されたノートカードがどれかわかりますね!
で、書いてみた~。
list noteKey = [];
list noteList = [];
integer noteNum;
init(){
    noteKey = noteList = [];
    noteNum = llGetInventoryNumber(INVENTORY_NOTECARD);
    if(noteNum>0){
        integer i = 0;
        for(;i<noteNum;++i){
            string tName = llGetInventoryName(INVENTORY_NOTECARD,i);
            noteList += tName;
            noteKey += llGetInventoryKey(tName);
        }
        llWhisper(0,(string)llGetListLength(noteList)+"個のノートカードをインベントリでチェック可能です。");
    }else{
        llWhisper(0,"ノートカードはインベントリにありませんでした。");
    }
}
default{
    state_entry(){
        init();
    }
    touch_start(integer total_number){
        llSay(0, "Touched.");
    }
   
    changed(integer change){
        if(change & CHANGED_INVENTORY){
            integer tNum = llGetInventoryNumber(INVENTORY_NOTECARD);
            llWhisper(0,(string)tNum+","+(string)noteNum);
            //追加
            if(tNum>noteNum){
                llWhisper(0,"ノートカードが追加されました。");
                init();
            }else if(tNum<noteNum){
                llWhisper(0,"ノートカードが削除されました。");
                init();
            }else if(tNum==noteNum){
                llWhisper(0,"ノートカードが変更されました。");
                integer i = 0;
                for(;i<noteNum;++i){
                    string tName = llGetInventoryName(INVENTORY_NOTECARD,i);
                    if(llListFindList(noteKey,[llGetInventoryKey(tName)])==-1){
                        llWhisper(0,tName+"が変更されました。");
                        i=noteNum;
                    }
                }
                init();
            }
        }
    }
}

先入観って怖いわ。。。

2011年4月4日月曜日

[multi motion MLDU5] 追加の機能を動画で・・・

あげたら、YouTube から警告が・・・
著作権
使った楽曲はラヴェルのボレロ。音源は Public Domain classic からだったんですけど、この動画をブロックしたのはドイツ。。。

Public Domain classic は「日本国内においての著作権保護期間が終了した(50年)」データを公開しているので、国によってはだめなところもあるよね、と頭では理解していましたが、いざ、このようなメッセージがでるとびっくり。はじめてでましたから。。。

で、ドイツって何年なんだろうと思い調べたら、あら、70年・・・(JASRAQ Q/A より)
作曲家のラヴェルは 1937年没ですが、、、あれ? 音源が 1953 年のものなので、、、ということなのかな? 組織 SME ってソニー?
異議申し立てるほどのものではございませんので、、、、しばらくこのままにしておきます。

で、本題、、、(笑
multi motion MLDU5 ベータ版 LSLCON2010 配布は終了いたしました。多くの方に興味を持っていただけてうれしいかぎりです。
その中のお一人のハルさんから可能なかぎり Secondlife 内に存在するカップルダンスを踊りたい~という熱烈なご要望がありましたので、機能を追加した、というビデオになります。
ノートカードの書き方を変えて、
アニメーション名, 再生秒数, x軸移動(前後), y軸移動(左右), z軸移動(上下), x軸回転(ロール), y軸回転(ピッチ), z軸回転(ヨー)
としてみたわけです。
mldu5 test

カップルダンスの中には元から傾いているのがいくつかあって、その調整を通常はカップルダンス専用の Intan だと Intan Configration ファイルで指定して調整してます。

で、、、そもそもは Intan の Configration ファイルも使えたら便利だよね~で始まったのですが、残念な結果に使えないことが判明、、、回転の中心位置が違うのです。 使えることが判明~。Intan は y,x,z で角度指定した><
なので、トライアンドエラーで微調整をお願いすることになっちゃいます。。。 y,x,z の並びを x,y,z に変えて調整するといいでしょう~。
が、で、調整できれば、傾き度一番の 3FX 16 falling deep も扱えるようになります。
現在、細かいところの検証中です~。

2011年3月21日月曜日

[multi motion MLDU5] ダンスセット(プレイリスト)ノートカードについて

[2012/7/11追記: multi motion mldu5+ ノートカードについての最新記事もご参照下さい]
http://snumaw.blogspot.jp/2012/07/mldu5.html

multi motion MLDU5 (以下、MLDU5) は Sit ball に座ったアバターの位置を操作する機能が追加されました。この機能により Henmation や 3FX などで販売されているペアダンス(カップルダンス)や、MikuMikuDance の2人用、3人用といったダンス アニメーション/モーションを MLDU5 に組み込んで楽しむことができるようになりました。

反面、呪文のようなダンスセット記述になりますが、ペアダンスやカップルダンスを使わないのであれば、MLDU4 までの記述方法で問題ありません。

基本の構文は以下です。すべてカンマで区切ります。

ダンス名, 再生秒数, 左右位置調整、向き調整、前後位置調整、高さ調整
(注) 2011/4/11以降に配布している multi motion MLDU5 β2(RC) は構文が変更されました。 ダンス名, 再生秒数, 前後位置, 左右位置, 上下位置, X軸回転, Y軸回転, Z軸回転 となります。


ダンス名は必須ですが、それ以外は省略可能です。複数ダンスや複数の調整は | でダンス名、調整数値をつなげます。

今回はこのダンスセットの記述方法について説明します。
なお、ダンスセットを作りたくない、という方は、ダンス アニメーションを MLDU5 にいれ、[全ダンス] モードでダンスを楽しむこともできます。ダイアログの [次のダンス] [前のダンス] ボタンでダンスの切り替えが可能です。


ステップ1 踊りたいダンスを追加する
MLDU5 で編集を選び「中身」タブに Animations ~ Animations 25 という編集可能なノートカードがあります。このノートカードを編集することで、好みのダンスセット(プレイリスト)を作成することができます。注意点は「ノートカードの名前は変えないでください。」

1) ダイアログのボタンとして表示するダンスセット名を記述する。
<ダンスセット名> </ダンスセット名> でダンス アニメーションをくくります。ダンスセット名はダイアログのボタンになるため長さの制限があります。日本語(漢字、ひらがな)は4文字以下、英数字だと12文字以下(ボタンには11文字しか表示されないこともあります)になります。その文字数以上の指定はしないでください。
たとえば、恋愛レボリューションという名前のダンスセットを作りたい場合は、日本語名だと <恋愛レボ> </恋愛レボ>、英数字だと <Love Revo> </Love Revo> のようにします。

2) アニメーション名を追記する。
ダンスセットの対象となるアニメーション名を追記します。たとえば、motion0, motion1, motion2 の3つのアニメーションを上記の [恋愛レボ] ダンスセットに組み込みたい場合は、

<恋愛レボ>
motion0
motion1
motion2
</恋愛レボ>

となります。この設定では初期値の 24 秒ごとに順番にダンスが再生され、motion2 までいったら、頭の motion0 に戻ります。再生秒数は管理者用ダイアログの [間隔設定] から変更できます。

3) 再生秒数を指定する。
それぞれのアニメーションの再生秒数は個別に指定可能です。たとえば最初の motion0 はポーズのみで60秒くらい待っている状態にして、次からダンスを始めてそれぞれ 18 秒で自動的に切り替わるようにするには以下のように記述します。

<恋愛レボ>
motion0, 60.0
motion1, 18.0
motion2, 18.0
</恋愛レボ>

最初のポーズ(motion0)から 60秒待たずにダンスを開始させたい場合はダイアログの [次のダンス] ボタンを押します。あとは設定されている 18秒でダンスが自動的に切り替わります。
シングルモーション(普通のダンス)のほとんどはこのステップ1の記述でだいじょぶです。


ステップ2 複数のアニメーションを追記する

2011年3月12日土曜日

リンデンドルで日本の地震と太平洋津波救護のサポートを。

[元の記事] これは Linden Lab の公式ブログ記事になります。
http://community.secondlife.com/t5/Featured-News/Support-the-Japan-Earthquake-amp-Pacific-Tsunami-Relief-with/ba-p/743743

Our thoughts today are with all of those who are suffering in the devastation caused by the earthquakes in Japan and the tsunami in the Pacific. We encourage all Second Life Residents to support the relief efforts however they can, and we would like to help.
We have created two special Linden Bears--one that is wearable and one that sits--which are now for sale in the Marketplace at several pricing levels: L$300, L$1,000 and L$3,000. Here’s the direct link to purchase them. We will donate all proceeds from sales of this bear to the Japan Earthquake and Pacific Tsunami Relief efforts of the American Red Cross.
Please help us to support the relief efforts - buy the bears, and help spread the word in Second Life.
Additionally, we know that independent groups in Second Life are also planning to support relief efforts. For example, Radar Magazine in Second Life will be holding a month-long event and are seeking designers to donate virtual items (see this article for details). If your group is planning an inworld relief effort, then please share it in the comments here.

Thank you,
Kim

---------

支援のために作成した2つのスペシャル リンデン ベア(置物タイプと抱えるタイプ)があるので、それらを購入して日本の地震・津波被害への救護支援寄付をしよう、というものです。
このリンデン ベアの売り上げを米国赤十字に寄付するというものです。

lindenbear
(画像をクリックすると marketplace を開きます)

savjapan

2011年3月10日木曜日

MLDU4 を marketplace に登録してみた

いまごろ???みたいに思われるかもしれませんが、旧 XStreet, 現在のmarketplace.secondlife.com に MLDU4 を登録してみました。

marketplaceMLDU

商品もともと少ないし、そんなに増える予定もないのでショップの名前も「゚・:,。★ MLDU ★。,:・゚」にしてしまったという手抜き・・・

多言語対応してたのですね。marketplace。日本語で見てる場合は日本語の商品名、説明を、英語で見てる場合は英語での商品名、説明を表示するように登録できたんです。なるほど。

英語設定でMLDU英語版見た場合
mldutrialE

日本語設定でMLDU英語版を見た場合(上と同じ商品です)
mldutrialEJ

商品登録設定で言語別に説明や商品名を登録することができます。
marketplacesettting

MLDUのお求めは marketplace で~♪

゚・:,。★ MLDU ★。,:・゚ https://marketplace.secondlife.com/stores/70251

2011年2月27日日曜日

[LSL] LSLCON 2010 エントリーしちゃいました

2007年から続いていたスクリプターさんの祭典的な LSLCON Japan ですが、昨年は「あれ?ないな?」と思っていたら、3月に開催決定。

公式ホームページ http://lsl-con.org/2010/

2008年の第2回目のときには MLDU4 のベータを展示させていただき、アイテムデモまでさせてもらいました。準備大変でしたけど、楽しかった思い出があります。

http://snumaw.blogspot.com/2008/11/lslcon.html

そして今回、、、またも懲りずに「ベータ版」での参加を。。。

MLDU5 ベータ (またベータwww)

先ほど、申込み完了っと。

2年ぶりのバージョンアップですが、自分の欲しいもの最優先で作っているのと、土日しかスクリプトする時間がない、それも最近土日も怪しい、スクリプトで孤独に作業するよりもお友達と遊んでいるほうが楽しい(完全に言い訳モードwww)などの理由で「出すよ、出すよ」といいながらズルズルと今日まで来てしまいました。ごめんなさい。

メジャーバージョンアップの最大の特徴は「マルチダンス対応」です。って、もう、それしかありません(笑
MikuMikuDance のアニメーション インポートの話は以前のエントリーでもしていますが、シングル アニメーションならまだしも、俗にいうカップルダンス的な2人用のダンスや、3人用、5人用っていうダンスをインポートしたら、それ、動かしたくなるし、かつシンプルに管理して使いたくなりますよね。

基本的な仕組みは簡単なんで、すぐに踊れるように作ったわけですが、、、細かいところでスクリプトの修正をやっていたら、、、1年以上たっちゃった(笑

あらためてスクリプトって奥が深いな~、と思ったのですが、


1) マルチダンスの場合はアバタ―の位置決めが重要 = ダンサー用 Sit ボール必須

2) 違うアニメーションになれば、初期位置も変わる = Sit したダンサーの位置をアニメ毎に動かす仕組みが必要

3) ボールから立ち上がったり、座ったりで自動的に適切なアニメーションを送信しなければならない = Sit ボールとメッセージ交換してダンスを送ったり、止めたり、、、

4) アバターを動かすっていっても前後、左右、上下、回転も考えなければならない = ローテーションしっかり勉強しなければならなかった。。。

5) もちろん、同じエリアに MLDU5 があったら混信しない方法が必須 = Sit ボールとのメッセージ交換チャンネルを変えなければならない(オーナーが違うのは当然ですが、オーナーが同じで複数MLDUっていうケースはあるので、、、)


などなど、ひとつひとつ解決してきたんですけど。。。あまりスクリプトに関しては私が他の人に相談するタイプじゃないので(そのかわり、うちのまわりではスクリプト以外のエリアで多才な人たちがいるわけですが)結構孤独な作業でしたwww

LSLCON 2010 に向けてラストスパート!(こうでもしないと、いつまでにできるやらww)

マルチダンスのサンプルケースはこちら。ほんの一部ですが、使用した曲は BREEZE(カラフル・サウンズ・ポート、唄:祭屋さん)、オリジナル・ダンスは仏壇仮面さんと13さん(かな)。モーショントレースはあっぱれ様です。(使用・利用した作品はいずれも ニコニコ動画内で公開されています)

がんばれ、私! LSLCONの会場でお会いできるのを楽しみにしています~。