昨日 8月12日(日)に新しい mldu5+ (5.5+) を marketplace で公開しました。
https://marketplace.secondlife.com/stores/70251
今回、同梱している README のノートカードを刷新しています。
はじめての人でも、とりあえず踊れる、ノートの編集ができるように構成しなおしました。
是非、mldu に慣れている人も、慣れていない人もお読みください。
mldu5+(5.5+)では、すでにご紹介しているようにノートカードのリモート更新機能を追加しています。正直、この機能追加のためにたった1か月で 5+ をひっこめた、、、といってもいいでしょう。
そのくらい、このノートカードリモート更新機能をみなさんに使ってもらいたかったし、私自身がこの機能をもっとも欲しかったのかもしれません。
ちょっと、、、リモート更新って安全?仕組みわからないと気持ち悪い、、、という方もいらっしゃるかと。そこでちょっと仕組みをご紹介します。
ノートカード リモート更新機能の仕組み
・EditBox は mldu の中のノートカードの「コピー」を持ちます。なので、EditBox を消しても、mldu のノートカードが消えることはありません。
・「コピー」を持つので、同じもの(EditBox)を何個も出すことが可能です。EditBox にコピーされたノートカードを編集し保存すると、保存されたノートカードで mldu の同じ名前のノートカードを置き換えます。
・ノートカードを置き換えるとき、乱数を使って同じ名前のノートカードの EditBox が複数あっても今処理しようとしているノートカードを「個別に認識」するようにしています。
・EditBox のノートカードの名前は変更できません。ノートカードの名前を変更するとメッセージが表示され、「本当の名前はこれ、、、名前を直すか、EditBox を出しなおして」とアドバイスします。
mldu の最初の初期化の時に EditBox との通信チャンネルをランダムに生成しています。mldu が複数その場にあっても多くの場合はチャンネルが違います。
さらに更新するたびに乱数を使ってキー交換するので、比較的チャットコマンドにありがちな「混線」発生の可能性は少なく、かつ、EditBox が沢山 rez されていても、違う箱のノートが mldu に送信される可能性はかなり少ないと思います。
ただし、この仕組みでやってはいけないことが1つあります。ほぼ、、、やる人は少ないと思いますが、注意として覚えておいてください。
・Editbox のノートを修正して保存する
・「本当に更新する?」のダイアログがでる
・ここで Editbox を削除する(やってはいけませんよ!)
・Editbox を削除した上でダイアログの [OK] を押す
エラーはでません。mldu ではプレイリストを選んで踊ることもできます。ただし、前のノートカードの内容のものになります。
mldu のリセットをしたり、他のノートカードを更新したときにはじめて「Animation Xが見つからない」というエラーがでます。
これは、ダイアログで [OK] を押した時点で mldu は自分のフォルダーにあるノートカードを llRemoveInventory を使って削除します。削除して Editbox に向かって「新しいのをよこして~」と言います。ノートカード名と乱数のセットがマッチする EditBox が新しいノートカードを mldu に llGiveInventory を使って送るわけですが、EditBox がなければ送れませんよね。
こうなった場合は無くなったノートカードと同じ名前のものを用意して、直接 mldu のフォルダーに入れてください。(というか、そういうことないように気を付けてください。)
スクリプト的には llRemoveInventory による削除で CHANGE イベントの CHANGE_INVENTORY が動かない、ということを逆手にとってます。新しいノートカードを受け取った時だけ CHANGE イベントが走り、該当するスクリプトがリセットをかける仕組みです。(なので、やってはいけない方法ではリセットがかからないのでエラーがでないわけです)
将来的に llRemoveInventory によって CHANGE イベントが動くようになると、一度ノートカードが見つからない、というエラーになり、その直後に新しいノートカードが送られ、もう一度 CHANGE イベントが走り、スクリプトリセットが完了する、、、なんて動きになるかもしれません。
いろいろ例外処理とかチェックをいれて、ノートカードが無くなることがない、他のものに置き換わることがないようにしていますのでご安心ください。どうしても心配の場合はノートカードはフルパーですから、コピーをとっておくことをお勧めします。
0 件のコメント:
コメントを投稿