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

トラブルシューティング

送信側から外側へ、エンコーダー、テクスチャ トランスポート、デコーダー、受信側オブジェクトの順に作業します。

すべてのコンポーネントを変更することから始めないでください。 TSMP は、失敗したステージを特定するのに十分な診断を提供します。

クイック診断オーダー

  1. TX フレーム インデックスが増加します。
  2. TX ペイロード バイトがゼロより大きい。
  3. エンコードされたイメージは受信機の入力テクスチャに到達します。
  4. RXヘッダーは有効です。
  5. RXフレームは有効です。
  6. RX メッセージ数が 0 より大きい。
  7. レシーバー オブジェクトが有効になっており、受信補間が None ではありません。

最初に失敗したステップで停止し、そこでデバッグします。

出力はフラットなグレーのテクスチャです

考えられる原因:

  • エンコーダ出力は割り当てられていません。
  • Luma4 ハンドラーが割り当てられていません。
  • 有効な TSMP ネットワーク コンポーネントがデータを送信していません。
  • コンポーネントを追加した後、セットアップが適用されませんでした。
  • 編集時のエンコードは無効になっています。

エンコーダのフレーム インデックスが増加し、ペイロード バイトが 0 より大きいことを確認します。

出力は変化するが、受信機は動かない

チェック:

  1. デコーダの入力はキャプチャされたテクスチャです。
  2. デコーダ header=yes および valid=yes
  3. デコーダのメッセージ数がゼロより大きいです。
  4. 受信者オブジェクトには、一致する TSMP コンポーネントがあります。
  5. 受信補間がNoneではありません。
  6. Apply Setup は、最新のシーンが変更された後に実行されました。

RX メッセージ カウントがゼロの場合は、エンコーダとトランスポートをデバッグします。 RX メッセージ数が 0 以外の場合、受信機バインディングとアクティブ状態をデバッグします。

CRC の不一致

受信したピクセルは書き込まれたヘッダーと一致しません。チェック:

  • スケーリングまたはフィルタリング。
  • OBS 色変換。
  • TSMP 領域の後処理。
  • 入力テクスチャが間違っています。
  • 切り取られたヘッダー領域。
  • 送信者と受信者が互換性のない Luma4 設定を使用しています。

CRC の不一致は、ペイロード処理の前にフレームが破棄されることを意味します。レシーバー オブジェクトはそのフレームから更新できません。

ペイロードバッファがいっぱいです

選択したすべてのデータをフレームに収めることはできません。

次の順序で修正します。

  1. 同期オブジェクトを減らします。
  2. 選択した人型のボーンを縮小するか、シェイプをブレンドします。
  3. 必要でない限り、アバターのポーズの完全な同期は避けてください。
  4. 出力容量を増やします。
  5. Apply Setup を実行します。

別のプレイヤーが参加したときにのみこれが表示される場合は、アバターのポーズの同期とプレイヤーごとのペイロードの増加を確認してください。

RPC 呼び出しが失敗する

ビデオ パスで短いイベントを運ぶフレームがドロップされると、短いイベントが失われる可能性があります。

チェック:

  • 受信機損失率。
  • rpc TX と RX をカウントします。
  • RPC カウンタが重複しています。
  • 受信オブジェクトに一致するネットワーク ID があるかどうか。
  • SendTransRPC に渡されたメソッド名がパブリック メソッドと正確に一致するかどうか。

ループバック テストの場合は、最初に TSMPNetworkGameObjectToggle を使用します。

アバターの動きがカクカクする

チェック:

  • 受信機損失率。
  • エンコーダのフレームレート。
  • ペイロード容量。
  • 完全なポーズ データが切り捨てられるかどうか。
  • 受信補間モード。
  • 受信側アバター リグに予想される人型ターゲットがあるかどうか。

ルート モーションは動くが、手足が遅れたりフリーズしたりする場合は、通常、ポーズ ペイロードが大きすぎるか、選択したボーンが不完全であるか、受信機がフレームをスキップしていることが考えられます。

Luma4は表示されません

確認する:

  1. Luma4 パッケージがインポートされました。
  2. Luma4 コーデック プレハブが存在します。
  3. TSMPSetup がコーデック カタログを更新しました。
  4. 選択したコーデック リストが空ではありません。

パッケージのインポートを修正したら、Refresh Codecs および Apply Setup をクリックします。

UdonSharp コンパイルが失敗する

スクリプトやアセンブリに大規模な変更を加えた後は、すべての UdonSharp プログラムをコンパイルします。 Unity が古い Udon フィールドを報告する場合は、Unity に C# コンパイルを終了させて​​から、UdonSharp を再度コンパイルします。

サポートされていない Udon API がエラーに示されている場合は、C# では利用可能だが Udon には公開されていない Unity API がスクリプトで使用されているかどうかを確認してください。

エディターでは値が更新されるが、VRChat では更新されない

チェック:

  • スクリプトは、必要に応じて UdonSharp アセンブリに属します。
  • UdonSharp 最新のコード変更後にコンパイルが完了しました。
  • フィールド タイプは TSMP と UdonSharp でサポートされています。
  • レシーバーコンポーネントは、アップロードされたワールドでアクティブになります。
  • ランタイム パスはエディター専用 API に依存しません。