メインコンテンツまでスキップ

開発者の概要

このセクションは、TSMP を拡張する開発者を対象としています。

プレハブの配置、組み込みコンポーネントの同期、またはシーンのデバッグのみが必要な場合は、「はじめに」から始めてください。 TSMP に対してコードを記述する必要がある場合は、このセクションを使用してください。

拡張できるもの

拡大こんなときに使いますここから始めましょう
カスタム同期コンポーネント組み込みの同期コンポーネントはデータをカバーしません。カスタムネットワーク動作
フィールド同期パブリックフィールドをエンコードするには TSMP が必要です。スクリプト API: TransSync
TSMP RPC イベントテクスチャ ストリームを介した遅延イベント配信が必要です。スクリプト API: TSMPNetworkBehaviour
コーデックパッケージ別のバイトからピクセルへの表現が必要です。カスタムコーデック
コーデックシェーダ専用のエンコード/デコード シェーダ ロジックが必要です。コーデック実装ガイド
プロトコルツールテスト、バリデータ、またはデバッグ ツールが必要です。フレームアルゴリズム

メンバーレベルの API の詳細については、別の スクリプト API セクションを参照してください。

詳細なパス

ゴール読む
同期変数を追加するカスタム ネットワーク変数
遅延テクスチャ ストリーム イベントを追加するカスタム ネットワーク RPC
高密度のデータを 1 つのフィールドに詰め込むカスタムパックデータ
コーデック パッケージをビルドするコーデックパッケージ定義
コーデック シェーダ パスの書き込みコーデック シェーダ
バイトリカバリとランタイムサポートを検証するコーデックの検証

互換性の目標

TSMP コードは、次の 2 つの環境で実行されるように記述されています。

  • Unity C# およびエディター ランタイム。
  • UdonSharp コンパイル済みランタイム。

通常、同じコンポーネントが両方の環境で動作するはずです。 UdonSharp がコンパイルできない API は避け、リフレクションの多いランタイム ロジックよりも単純なフィールド、配列、明示的なメソッドを優先します。

拡張機能の設計ルール

  • シーンに面したコンポーネントを明示的に保ち、検査しやすくします。
  • [TransSync] フィールドは副作用ではなくデータに使用します。
  • Udon ブリッジのコストを削減するために、高周波の値を byte[] にパックします。
  • シーン構造の変更後に TSMPSetup がバインディングを再構築できるようにします。
  • コア コードまたはエンコーダー コードにオプションのコーデック パッケージをハードコーディングしないでください。
  • カスタム コーデックを TSMPCodec API の背後に保持します。
  • テクスチャ パスを信頼できないものとして扱い、デバッグ カウンターで検証します。

名前空間のレイアウト

名前空間目的
K13A.TSMPコア ランタイム、プロトコル、エンコーダー、デコーダー、コーデック ベース タイプ、セットアップ、デバッグ ユーティリティ。
K13A.TSMP.Udonネットワーク動作の基本タイプと組み込みの TSMP ネットワーク コンポーネント。

Unity 側のコンポーネント名には TSMP プレフィックスが保持されます。内部ヘルパー型はそうではない場合があります。

推奨される開発ループ

  1. 最小のコンポーネントまたはコーデック パスを実装します。
  2. Apply Setup を実行します。
  3. TSMPDebugCanvas でペイロードのバイト数とメッセージ数を確認します。
  4. Unity Play モードをテストします。
  5. UdonSharp をコンパイルします。
  6. 機能が Udon またはキャプチャの動作に依存する場合は、実際の VRChat ランタイム パスでテストします。