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

コーデックの検証

カスタム コーデックを世界で使用する前に検証してください。コーデックはコンパイルしても、カメラ キャプチャ、スケーリング、リードバック、またはパッケージのインポート後に失敗する可能性があります。

基本的なチェック

チェック期待される結果
セットアップにコーデックが表示されるカタログとプレハブの検出作業。
著者と説明が表示されますパッケージのメタデータを読み取ることができます。
1フレームをエンコードする出力テクスチャは変更され、ヘッダーは読み取り可能なままになります。
1フレームをデコードするヘッダー CRC がパスし、ペイロード バイトが回復します。
コーデックを切り替えて元に戻す古いピクセル ブロックは残りません。

バイト往復テスト

決定論的なペイロードを使用します。

  • バイト数を増やします 0, 1, 2, ...
  • 交互バイト 0x00, 0xFF
  • 固定シードを持つランダムなバイト。
  • 1 列より小さい短いペイロード。
  • 行またはブロックの境界で正確に終わるペイロード。

デコード後、PayloadSize までのすべてのバイトを比較します。

ヘッダーとレイアウトのテスト

コーデックが次の点を考慮していることを確認します。

  • ヘッダーのサイズとヘッダーの位置。
  • PayloadSize
  • ペイロードの開始行またはブロック。
  • ブロックサイズ。
  • デコードサンプルサイズ。
  • コーデック オプション バイト。

デコーダは、目に見えるピクセルからペイロード サイズを推測する必要はありません。

キャプチャ パスのテスト

ユーザーが使用する実際のパスを通じてテストします。

  • エディタ内ループバック。
  • VRChat ランタイム キャプチャ。
  • OBS/Spout または世界中で使用されている場合は同等のもの。
  • 意図したフレーム サイズ。
  • 意図したフレームレート。

TSMPDebugCanvas でビットレート、損失、フレーム インデックス、コーデック ID、およびデコーダのエラーを確認してください。

UdonSharp テスト

コーデックに UdonSharp ランタイム コードがある場合:

  • すべての UdonSharp プログラムをコンパイルします。
  • プレイモードでテストします。
  • 機能がクライアント ランタイム API に依存する場合、アップロードされた VRChat ワールドでテストします。
  • UdonSharp バインダーのエラーを引き起こす可能性のある汎用メソッド、サポートされていない API、複雑な式は避けてください。

失敗パターン

症状考えられる原因
ヘッダーは有効ですが、ペイロードが間違っていますペイロードの開始/ブロックのレイアウトが一致しません。
CRC警告ヘッダーのピクセルが破損しているか、正しくサンプリングされていません。
コーデック切り替え後の古いブロック出力テクスチャが完全に上書きまたはクリアされていません。
エディターでは動作しますが、ランタイムでは動作しませんUdonSharp API または VRChat ランタイム API の違い。
ワンサイズのみで動作しますシェーダーは固定テクスチャ サイズを想定しています。