Cluster Creator Kit Script Reference
    Preparing search index...

    Interface OscHandlePlayer

    Open Sound Control (OSC)の受信と送信を行うためのハンドルです。 PlayerScript.oscHandleで取得することができます。

    OSC送受信機能については、ドキュメントのOSCの説明もあわせて参照してください。

    interface OscHandle {
        isReceiveEnabled(): boolean;
        isSendEnabled(): boolean;
        onReceive(callback: (messages: OscMessage[]) => void): void;
        send(payload: OscMessage | OscBundle): void;
    }
    Index

    Methods

    • ユーザーがOSC入力を有効化しているかどうかを取得します。

      「設定」の「その他」タブの「OSC受信の有効化」から設定できます。

      Returns boolean

    • ユーザーがOSC出力を有効化しているかどうかを取得します。

      「設定」の「その他」タブの「OSC送信の有効化」から設定できます。

      Returns boolean

    • OSCメッセージを受信した際に呼び出されるコールバックを登録します。 callbackには直前のフレームから現在のフレームまでの間で受信したOscMessageの配列が渡されます。 複数回呼ばれた場合、最後の登録のみが有効です。

      ただし、以下のいずれかの条件を満たす場合、コールバックは呼び出されません。

      • isReceiveEnabledfalse の場合
      • ファイアウォールなどのネットワーク設定によってOSCメッセージを受信できない場合
      • 受信したOSCメッセージのアドレスが /cluster/ から始まる場合(システムで予約済み)

      Parameters

      • callback: (messages: OscMessage[]) => void

        messages: 受信したOSCメッセージの配列です。

      Returns void

      // 受信したOSCメッセージをログに出力する
      _.oscHandle.onReceive(messages => {
      const lines = [];

      messages.forEach((message, i) => {
      const { address, timestamp, values } = message;

      lines.push(`== message [${i + 1}/${messages.length}]`);
      lines.push(`address: ${address}`);
      lines.push(`timestamp: ${new Date(timestamp).toLocaleString()}`);

      values.forEach((value, j) => {
      lines.push(`= value [${j + 1}/${values.length}]`);

      lines.push(`getInt(): ${value.getInt()}`);
      lines.push(`getFloat(): ${value.getFloat()}`);
      lines.push(`getAsciiString(): ${value.getAsciiString()}`);
      lines.push(`getBlobAsUint8Array(): ${value.getBlobAsUint8Array()}`);
      lines.push(`getBlobAsUtf8String(): ${value.getBlobAsUtf8String()}`);
      lines.push(`getBool(): ${value.getBool()}`);
      });
      });

      _.log(lines.join("\n"));
      });
    • OSCバンドルまたはOSCメッセージの送信を試みます。

      以下のいずれかの条件を満たす場合、 ClusterScriptError が発生しバンドルまたはメッセージの送信は失敗します。

      • isSendEnabledfalse の場合
      • 送信するOSCメッセージのアドレスが / から始まらない場合
      • 送信するOSCメッセージのアドレスが /cluster/ から始まる場合(システムで予約済み)
      • 送信するOSCメッセージが不正なメッセージや OscValue を含む場合

      OSCの仕組み上、送信したデータが送信先サーバーに到達することは保証されません。

      Parameters

      Returns void

      // 様々なOSCバンドルやOSCメッセージを送信する
      _.oscHandle.send(new OscBundle([new OscMessage("/int", [OscValue.int(1)])]));
      _.oscHandle.send(new OscMessage("/float", [OscValue.float(2.3)]));
      _.oscHandle.send(new OscMessage("/string", [OscValue.asciiString("456")]));
      _.oscHandle.send(new OscMessage("/blob", [OscValue.blob("789")]));
      _.oscHandle.send(new OscMessage("/bool", [OscValue.bool(false)]));