TSMPDecoder
受信側ではTSMPDecoderを使用します。 TSMP 入力テクスチャを読み取り、デコードされたメッセージを一致するシーン オブジェクトに適用します。
デコードの問題のほとんどは、入力テクスチャに未変更の TSMP イメージが含まれていないことが原因で発生します。レシーバーコンポーネントを変更する前に、テクスチャパスを確認してください。
必要なもの
- エンコードされた TSMP フレームを含む入力テクスチャ。
- 互換性のある Luma4 ハンドラー。
- ペイロード バイト テクスチャ。
- TSMP ネットワークの動作とバインディングの一致。
TSMPSetupは参照が割り当てられた後に適用されます。
使い方
- 入力テクスチャを割り当てます。
- 送信者と同じ Luma4 パスを使用します。
TSMPSetupを通じてペイロード バイト テクスチャを割り当てるか自動サイズ設定します。- 受信者オブジェクトに一致する TSMP ネットワーク コンポーネントがあることを確認します。
- 「
Apply Setup」をクリックします。 - ログを監視するか、
TSMPDebugCanvasでフレームのステータスを確認します。
有効なデコードはどのようなものですか
TSMPDebugCanvas では、デコーダが動作していると次のように表示されるはずです。
valid=yesheader=yes- 時間の経過とともに変化するフレームインデックス。
- データ送信時のペイロード サイズが 0 より大きい。
- 送信されるデータの種類に一致するメッセージ数。
- 定常再生時の損失が少ない。
フレームは有効だがオブジェクトが移動しない場合は、ネットワーク ID、受信補間、および受信オブジェクトがアクティブかどうかを確認します。
デコード順序
デコーダは段階的に動作します。
- 入力テクスチャからヘッダー領域を読み取ります。
- マジック、バージョン、ヘッダー サイズ、および CRC を検証します。
- コーデック ID からコーデック ハンドラーを選択します。
- ペイロード バイトをペイロード バイト テクスチャにデコードします。
- ペイロードバイトを読み取ります。
- 変数状態メッセージと RPC メッセージをディスパッチします。
ステージが失敗すると、後のステージはスキップされます。たとえば、CRC エラーは、ペイロードのデコードが開始されないことを意味します。
受信補間
各 TSMPNetworkBehaviour には受信モードがあります。
| モード | 結果 |
|---|---|
| なし | 受信した値を無視します。 |
| 離散 | 受け取った各値を直接適用します。 |
| 継続的 | コンポーネントがサポートしている受信ターゲットに向かってスムーズに進みます。 |
コンポーネントがデータを送信する必要があるが、受信データをそのオブジェクトに適用しない場合は、None を使用します。
CRC エラー
デコーダが CRC 不一致を記録する場合、フレームはデコード前に破損しています。最初に、スケーリング、フィルタリング、圧縮、および Luma4 設定の不一致を確認してください。
典型的な原因:
- OBS の画像のサイズが変更されました。
- マテリアルまたはカメラ効果によりピクセルが変更されました。
- 受信機の入力が間違ったテクスチャです。
- ヘッダー領域がトリミングされます。
- 送信者と受信者が互換性のないテクスチャ レイアウト設定を使用しています。
一般的な修正
| 症状 | これを試してください |
|---|---|
header=no | 完全な TSMP 画像がデコーダ入力に到達することを確認します。 |
valid=no CRC 警告あり | トランスポートからスケーリング/フィルタリング/カラー処理を削除します。 |
msg=0 | エンコーダーのペイロードがゼロ以外であり、セットアップ バインディングが存在することを確認します。 |
| RPC カウントがゼロのままになる | TSMPNetworkGameObjectToggle でテストし、フレーム損失を確認します。 |
| 値は受信されますが、適用されません | 受信補間とアクティブ状態を確認します。 |