vci:script:reference:message

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
vci:script:reference:message [2021/11/17 21:40]
numa
vci:script:reference:message [2024/08/19 12:40] (現在)
pastatto [解説]
ライン 1: ライン 1:
-====== ​vci.message(VCI間の通信) ======+~~NOTOC~~ 
 +====== ​ExportMessage(メッセージ通信) ====== 
 +<WRAP center round important 80%>
  
-VCIから別VCIへMessageを飛ばしてVCI間通信に使用する事が出来ます。\\ +ページは過去情報となります。\\ 
-この機能により、VCIからVCIに対して操作する事が可能となります。\\ +いスクリプトリファレンスは**[[https://developer.virtualcast.jp/​vci-docs/​api/|こちら]]**になります。 
-似たような機能と[[vci/script/reference/exportshared|グローバル同期変数]]があります。メッセージとロー同期変数使い分けについては[[vci/​updatelog/​1.5.4a#​機能について|ちら]]を参照してください\\+</​WRAP>​ 
 +メッセージと呼ばれるデータを指定の名前に紐づけて、ロールの他のVCIや、他のクライアントのVCIとも通信するとができます
  
 +想定用途は2種類あります。\\
 +ひとつは [[#​EmitWithId]] で **自分自身のVCIのネットワーク同期のため** です。\\
 +もうひとつは [[#Emit]] で **空間内の異なるVCIへのイベントの発出のため** です。\\
  
 +具体的な活用例としては以下が挙げられます。\\
 + ​[[#​EmitWithId]] を使えば色の変化などのVCIの状態変化をネットワーク同期できます。\\
 +[[#Emit]] を使えばリモコンなど他のVCIを操作したり、文字表示VCIに表示する文字を伝えることができます。
  
-[[vci/​script/​reference/​message | vci.message]] で送信出来る文字量は ​UTF-8 換算で ​''​4000 byte'' ​となります。+制限としては、送信出来るデータ量は約 ''​4000 byte''​ です。
  
-===== 関一覧 =====+またネットワーク同期を行う機能として他に[[vci/​script/​reference/​syncvariable|同期変]]があります。
  
-^ 名前 ^ 説明 ^ 対応バージョン ^ +^ 名前 ^ 説明 ^ バージョン ^ 
-| Emit(messageName,​ value) ​| メッセージを送信します。メッセージは、自分自身を含むユーザーの全VCIに送信されます。+[[vci/​script/​reference/​message#​Emit]] | メッセージを全に送信
-| EmitWithId(messageName,​ value, targetId) ​特定のVciIdを指定することで、指定のVCIに対してメッセージを送信することが出来ます ​v2.0.0b以降 | +[[vci/​script/​reference/​message#​EmitWithId]] IDを指定してメッセージを送信 | 2.0.0b以降 | 
-| On(messageName,​ callback) ​| メッセージを受信します。 ​|+[[vci/​script/​reference/​message#​On]] | メッセージを受信 ​|
  
-==== Emit(messageName,​ value) ​====+===== Emit ===== 
 +**Emit fun(messageName: string, value: usertype)**
  
-  * メッセージを送信します。 +  * 空間(スタジオ・ルーム)にあるすべてのVCIに対してメッセージを送信します。 
-  * メッセージは、自分自身含むーのVCIに送信ます。+  * ローカルのみならず、他のクライアントにもメッセージを送信します。 
 +  * 異なるVCIに対する通信など、空間体にメッセジを発する必要がある時に使用します。\\ **用途に合致しない限り使用を避けてください**。 
 +  * 受信側は誰からのメッセジなのか区別することができないため、**他のVCIを誤動作せる**可能性があります。**メッセージ名にありふれた名前を使わないでください**。 
 +  * 空間全体にメッセージを発するため、ネットワーク負荷が非常に重いです。\\ updateイベントなど**高頻度で呼ばないでください**
  
-==== EmitWithId(messageName,​ value, targetId) ​====+<file lua sample.lua>​ 
 +function onUse(objectName) 
 +    vci.message.Emit("​my_special_vci_protocol_display_text",​ "​こんにちは"​) 
 +end 
 +</​file>​ 
 +===== EmitWithId ===== 
 +**EmitWithId ​fun(messageName: string, value: usertype, targetId: string)**
  
-  * 特定のVciIdを指定してメッセージを送信します。+  * 特定のVCIに対してメッセージを送信します。 
 +  * ローカルのみならず、他のクライアントにもメッセージを送信します。 
 +  * 同じVCIを複数出したときも、自分自身のVCIにのみメッセージを届けることができます。
  
-==== On(messageName,​ callback) ==== 
  
 +<file lua sample.lua>​
 +function onUse(objectName)
 +    -- 自分自身のVCIに対してメッセージを送信
 +    vci.message.EmitWithId("​color",​ 3, vci.assets.GetInstanceId())
 +end
 +</​file>​
 +===== On =====
 +**On fun(messageName:​ string, callback: usertype)**
   * メッセージを受信します。   * メッセージを受信します。
   * メッセージを送信したのと同じVCIでも、別のVCIでもOK。   * メッセージを送信したのと同じVCIでも、別のVCIでもOK。
ライン 33: ライン 61:
   *  **Onは第2引数で指定した関数よりも後に定義してください。受信関数よりも前に定義するとエラーとなります。**   *  **Onは第2引数で指定した関数よりも後に定義してください。受信関数よりも前に定義するとエラーとなります。**
  
-=== callback(sender,​ name, message) ​===+=== 引数 ​===
  
 以下、3つの引数をとります。senderはシステムによって設定される送信者情報のtableです。 以下、3つの引数をとります。senderはシステムによって設定される送信者情報のtableです。
ライン 44: ライン 72:
 | message ​             | メッセージの内容。Emit 関数の第2引数です。| | message ​             | メッセージの内容。Emit 関数の第2引数です。|
  
-===== 具体例 =====+==== サンプル ​====
  
 **送信側** **送信側**
ライン 105: ライン 133:
 3.Jump()の引数の内容がメッセージの内容なので、\\ 3.Jump()の引数の内容がメッセージの内容なので、\\
  送信するメッセージの内容を変化させることで、受信側の挙動を変えることができます。  送信するメッセージの内容を変化させることで、受信側の挙動を変えることができます。
 +
 +===== 解説 =====
 +
 +  * [[vci/​script/​reference/​messagecomment]]
  
 ===== サンプル ===== ===== サンプル =====
  
-[[vci:​sample:​message:​no2|複数のVCI間で変数をやり取りする]]+  * [[vci:​sample:​message:​no2|複数のVCI間で変数をやり取りする]]
  
vci/script/reference/message.1637152826.txt.gz · 最終更新: 2021/11/17 21:40 by numa

ページ用ツール