Information

Information
  2016.01.12 v1.1にアップデートしました。
  ・シンクロを送信するためにアバターを検出する方法を変更
  ・プレロード時、アニメのカウントがリセットにならなかった不具合を修正

チャンネルとコマンドについて

チャンネルとコマンドって?

LSLでは、スクリプトを動作させるために「イベント」というのがあります。
イベントが起こったら処理を実行する。 何をしたら どうなる… タッチしたら、扉が開く とかですね
その中の一つにリスンイベントというのがあります。
「指定されたチャンネルで発言を聞き取ったら」リスンイベントが起こり、
「聞き取った言葉が「○○」だったら」という条件が一致した時に処理を実行する。
という設定に必要なのが、チャンネルとコマンドです。

ツールを使う時によく目にする「チャンネル」と「コマンド」という言葉、「/1 Start と発言してください。」というような説明文
意味はわからないけれど、とりあえず「/チャンネル 言葉」と発言すればツールが動くんだと思いながら
ツールを使われている方も多いんじゃないかな…と思います。

が、決められたチャンネルとコマンドを使う場合にはとりあえず…でも大丈夫ですが
ショーダンスの演目の中で色々な事をやろうと思うと、
チャットでいちいち「/1 Start」などと発言していては、とてもじゃないけど操作しきれません。
コマンドで動くツールを使わなければ、セットそのものにタッチしたり、直接インベントリからRezするなど とっても大変です(´・ω・`)

チャンネルとコマンドで動くツールと、コマンド発言できるツールを使えば
セットや小道具を手元のボタンひとつ押すだけで動かすことができるようになります。

又、ダンスHUDにもコマンド発言機能を備えたものがありますので
ダンスHUDからコマンド発言をする方法が理解できていれば、ダンスの切り替わりと同時にフォーメーションを動かすなど
より多彩な演出が可能になります。


チャンネルとは

ラジオや無線の周波数のようなもの もしくは電話番号のようなもの です。
ラジオや無線は周波数を合わせなければ通信することが出来ません。
電話はその番号にかけなければ目的の人と話すことが出来ません。

Second Life内でアバター同士チャットで会話しているのは、PUBLIC_CHANNEL=0チャンネルを使って会話しています。
試しにチャット欄に /1 Test と打ち込んでみてください。 その発言はチャット欄には表示されませんね?
それは「/1」と付けることで、チャンネル1で発言したということになるからです。
チャンネル0のローカルチャットには、違うチャンネルで発言された言葉は見えません。

-2147483647から2147483647までのチャンネルがあり、
チャンネル0(PUBLIC_CHANNEL)とチャンネル2147483647(DEBUG_CHANNEL)の発言はローカルに表示されます。

ローカルチャットでは見えないように、コッソリとスクリプトと通信するための周波数のようなものがチャンネルです。
あるいは、スクリプトに電話をするための番号と思ってください。


コマンドとは

コマンドはスクリプトに決められた処理を実行してもらうための合言葉のようなもの

よくチャンネルを「0123」と設定したり、暗証番号のように思っていらっしゃる方がいらっしゃいますが
コマンドの方が暗証番号に近いかもしれません。 ※チャンネルで頭に0を付けても、0は無視されるので意味はありません(^^;)

「/1 Start」の「Start」の部分がコマンドです。

例えば、コマンドで操作するフォーメーションシートでは、座標を登録した時にコマンドも設定するようになっているものが多いです。
座標1のコマンドを「POS1」、座標2のコマンドを「POS2」と設定したとしましょう…
チャンネルが3に設定されていたとしたら
「/3 POS1」と発言すると、座標1で登録した位置にシートが移動します。
「/3 POS2」と発言すると、座標2で登録した位置にシートが移動します。

「POS2」という言葉を聞いたら、2番目に登録した座標に移動してね♪という、スクリプトとの合言葉がコマンドです。


チャンネルとコマンドを設定する理由

チャンネルとコマンドを設定する理由はいくつかあります。

一番の理由は、チャンネルとコマンドを組み合わせることで
その両方が一致しなければ動かない = 誤作動を防ぐ ことですが

スクリプトは指定したチャンネルで発言された言葉をすべて聞き取っているため
目に見えていないだけで、「その言葉の中に、自分に命令を出す言葉は含まれているかな?」と、聞き取る度に処理を実行しています。
※チャンネル0(ローカルチャット)の発言を拾うスクリプトがNGとされるのは、その場で雑談しているチャットを誰のものでも聞き取って処理実行しているからです。
チャンネルを変えることで、スクリプトが余計な処理をしないようにするという目的もあります。

そして、例えばたまたま偶然発言の中にスクリプトとの合言葉「コマンド」が含まれていることがあるかもしれません。
よく使われている/1などのチャンネルでは、コマンドが一致してしまうかもしれません。

それが「Delete」とか、オブジェクトを削除するコマンドだったら…?

消えたオブジェクトはゴミ箱にも入らず、二度と戻ってくることはありません……
コピーを取る前の作りかけのセットだったりしたら泣くに泣けません><
怖いですよね…w

ツールやスクリプトは、命令を出したのがオーナーだったらとか、そういう制限はかけていても
「チャンネルとコマンドが一致したら動く」というものがほとんどです。
コマンドは何をするコマンドなのかわかりやすいものを設定すれば、似たり寄ったりになることが多いと思いますので
よく使われているようなチャンネル(/1 /77 /99など、よく見かけますね)は避け、ツールごとにチャンネルを変える
自分のチャンネルはコレと決めてしまわないなど
処理の負荷を軽減するため、又、誤作動による悲しい結果を無くすようなチャンネルを設定をすることをオススメ致します。


どうやって設定するの?

設定方法はツールによって変わります。
チャンネルを設定するボタンやコマンドを設定するボタンが付いていたり
ノートカードで設定したり、操作の途中で設定用ダイアログが出てきたり、チャットで発言してくださいと言われたり、様々です。
ツールの説明書と格闘していただくしかないですけれども…
チャンネルとコマンドの意味がわかっていれば、難解に思えていた説明書も
「あ、あのことか!」とすんなり理解できるようになると思いますよ^^


設定したチャンネルとコマンドでどうやって動かすの?

基本的にはチャットで「/チャンネル コマンド」と発言します。
チャンネルを123 コマンドをStartと設定したものを動かすときには
「/123 Start」と発言すれば動きます。

…が、ショーダンスで演目の最中にタイミングを合わせてそんな発言をするのはとっても大変ですよね(^^;)

なので、代わりに指定したチャンネルで指定した言葉を発言してくれるツールがたくさん出ています。
ダンスHUDでマクロを組めるようなものは、ほとんどコマンド発言できる機能も盛り込まれています。
そういうツールを使えば、ボタンをひとつ押すだけで簡単に操作できるようになりますよ^^

ここでツールの紹介や使い方の例を上げるとキリがないので
それはまた別の機会に…

*Re:ON* Dance Assist HUDでの設定方法は、「カテゴリについて」をご覧ください


設定できるチャンネルやコマンドに制限はあるの?

チャンネルは-2147483647から2147483647までの好きなチャンネルを使うことが出来ますが
チャットで打ち込んで発言する時に、マイナスチャンネルは使うことが出来ません。
スクリプトからはマイナスチャンネルでの発言も出来ますので、ツールに設定する時はマイナスチャンネルでも大丈夫です^^
又、チャンネル0は全てのローカルチャットを拾うため、どうしても必要な時以外は使用するのはやめましょう。
(※リンデンさんでも0チャンネルリスンは非推奨となっているようです)

コマンドは日本語でも数字でも記号でも、何でも大丈夫…といえば大丈夫なのですが
半角英数字で設定するのが無難です。
ノートカードにマクロを書き込む場合など、Byte数の制限もありますので、一文字2Byteの日本語はByte数を消費してしまいます。
スクリプトでよく使われるような、| = " & % + - * / などの記号は使用しない方が安心かと思います。
たまーーにみかけますが、コマンドに半角スペースも入れないほうが良いと思われ(^^;)
タッチしてダイアログが出るようなツールは、そのダイアログ内で使われているボタン名をコマンドに使用しないほうが良いかもしれません。
とりあえず…半角英数字使っておけば間違いないってことでw