トラブルシューティング
送信側から外側へ、エンコーダー、テクスチャ トランスポート、デコーダー、受信側オブジェクトの順に作業します。
すべてのコンポーネントを変更することから始めないでください。 TSMP は、失敗したステージを特定するのに十分な診断を提供します。
クイック診断オーダー
- TX フレーム インデックスが増加します。
- TX ペイロード バイトがゼロより大きい。
- エンコードされたイメージは受信機の入力テクスチャに到達します。
- RXヘッダーは有効です。
- RXフレームは有効です。
- RX メッセージ数が 0 より大きい。
- レシーバー オブジェクトが有効になっており、受信補間が
Noneではありません。
最初に失敗したステップで停止し、そこでデバッグします。
出力はフラットなグレーのテクスチャです
考えられる原因:
- エンコーダ出力は割り当てられていません。
- Luma4 ハンドラーが割り当てられていません。
- 有効な TSMP ネットワーク コンポーネントがデータを送信していません。
- コンポーネントを追加した後、セットアップが適用されませんでした。
- 編集時のエンコードは無効になっています。
エンコーダのフレーム インデックスが増加し、ペイロード バイトが 0 より大きいことを確認します。
出力は変化するが、受信機は動かない
チェック:
- デコーダの入力はキャプチャされたテクスチャです。
- デコーダ
header=yesおよびvalid=yes。 - デコーダのメッセージ数がゼロより大きいです。
- 受信者オブジェクトには、一致する TSMP コンポーネントがあります。
- 受信補間が
Noneではありません。 Apply Setupは、最新のシーンが変更された後に実行されました。
RX メッセージ カウントがゼロの場合は、エンコーダとトランスポートをデバッグします。 RX メッセージ数が 0 以外の場合、受信機バインディングとアクティブ状態をデバッグします。
CRC の不一致
受信したピクセルは書き込まれたヘッダーと一致しません。チェック:
- スケーリングまたはフィルタリング。
- OBS 色変換。
- TSMP 領域の後処理。
- 入力テクスチャが間違っています。
- 切り取られたヘッダー領域。
- 送信者と受信者が互換性のない Luma4 設定を使用しています。
CRC の不一致は、ペイロード処理の前にフレームが破棄されることを意味します。レシーバー オブジェクトはそのフレームから更新できません。
ペイロードバッファがいっぱいです
選択したすべてのデータをフレームに収めることはできません。
次の順序で修正します。
- 同期オブジェクトを減らします。
- 選択した人型のボーンを縮小するか、シェイプをブレンドします。
- 必要でない限り、アバターのポーズの完全な同期は避けてください。
- 出力容量を増やします。
Apply Setupを実行します。
別のプレイヤーが参加したときにのみこれが表示される場合は、アバターのポーズの同期とプレイヤーごとのペイロードの増加を確認してください。
RPC 呼び出しが失敗する
ビデオ パスで短いイベントを運ぶフレームがドロップされると、短いイベントが失われる可能性があります。
チェック:
- 受信機損失率。
rpcTX と RX をカウントします。- RPC カウンタが重複しています。
- 受信オブジェクトに一致するネットワーク ID があるかどうか。
SendTransRPCに渡されたメソッド名がパブリック メソッドと正確に一致するかどうか。
ループバック テストの場合は、最初に TSMPNetworkGameObjectToggle を使用します。
アバターの動きがカクカクする
チェック:
- 受信機損失率。
- エンコーダのフレームレート。
- ペイロード容量。
- 完全なポーズ データが切り捨てられるかどうか。
- 受信補間モード。
- 受信側アバター リグに予想される人型ターゲットがあるかどうか。
ルート モーションは動くが、手足が遅れたりフリーズしたりする場合は、通常、ポーズ ペイロードが大きすぎるか、選択したボーンが不完全であるか、受信機がフレームをスキップしていることが考えられます。
Luma4は表示されません
確認する:
- Luma4 パッケージがインポートされました。
- Luma4 コーデック プレハブが存在します。
TSMPSetupがコーデック カタログを更新しました。- 選択したコーデック リストが空ではありません。
パッケージのインポートを修正したら、Refresh Codecs および Apply Setup をクリックします。
UdonSharp コンパイルが失敗する
スクリプトやアセンブリに大規模な変更を加えた後は、すべての UdonSharp プログラムをコンパイルします。 Unity が古い Udon フィールドを報告する場合は、Unity に C# コンパイルを終了させてから、UdonSharp を再度コンパイルします。
サポートされていない Udon API がエラーに示されている場合は、C# では利用可能だが Udon には公開されていない Unity API がスクリプトで使用されているかどうかを確認してください。
エディターでは値が更新されるが、VRChat では更新されない
チェック:
- スクリプトは、必要に応じて UdonSharp アセンブリに属します。
- UdonSharp 最新のコード変更後にコンパイルが完了しました。
- フィールド タイプは TSMP と UdonSharp でサポートされています。
- レシーバーコンポーネントは、アップロードされたワールドでアクティブになります。
- ランタイム パスはエディター専用 API に依存しません。