インストール
通常の Unity アプリか VRChat ワールドかに応じてインストール方法を選びます。両方で同じコンポーネントのソースを使うため、Standalone 専用ブランチは不要です。
要件
- Unity 2022.3 LTS。通常の Unity の検証には Windows 上の Unity 2022.3.22f1 を使用しています。
- Core と実際のコーデックパッケージ。まず Luma4 を使用してください。
- コーデックのシェーダーと非同期 GPU readback に対応したグラフィックスデバイス。
- VRChat ワールドの場合のみ Worlds SDK 3.9.0 以降と、同梱の UdonSharp。
SDK がない場合、コンポーネントは MonoBehaviour として動作します。Animator ベースのヒューマノイドキャプチャ、Transform、TransSync フィールド、RPC は Unity Editor と Windows Player で利用できます。VRChat プレイヤー情報の取得には SDK が必要ですが、受信したポーズを用意したアバターリグに適用する処理にはプレイヤー API は不要です。
VRChat: VPM
VRChat Creator Companion または VPM 対応マネージャーに次のリポジトリを追加します。
https://vpm.kiba.red/
TSMP Core と TSMP Codec Luma4、または両方を含む TSMP バンドルをインストールします。この経路では VPM メタデータの Worlds SDK 依存を維持しています。
パッケージの import と SDK のスクリプトコンパイルが完了したら、下記の共通コントローラーを使用します。Udon コンポーネントとバインディングは TSMP が自動で準備します。
通常の Unity: UPM
通常の Unity 対応を含む Core と Luma4 を使用してください。古いパッケージでは UPM メタデータにも Worlds SDK への依存が残っている場合があります。その場合、SDK のシンボルを削除するだけでは解決しません。
検証済みのインストール方法は Unity Package Manager の Add package from disk です。
- Core と Luma4 のパッケージソースを用意します。
- Core の
Packages/com.kibalab.tsmp.core/package.jsonを選択します。 - Luma4 の
Packages/com.kibalab.tsmp.codec.luma4/package.jsonを選択します。 - パッケージ解決とスクリプトのコンパイルが完了するまで待ちます。
プロジェクトの Packages/manifest.json にローカルパッケージのフォルダーを指定することもできます。実際の配置に合わせてパスを変更してください。
{
"dependencies": {
"com.kibalab.tsmp.core": "file:../../TSMP-Core/Packages/com.kibalab.tsmp.core",
"com.kibalab.tsmp.codec.luma4": "file:../../TSMPCodec-Luma4/Packages/com.kibalab.tsmp.codec.luma4"
}
}
既存の dependencies に追加し、manifest 全体を置き換えないでください。UPM は Unity モジュールの依存を解決しますが、VRCSDK は追加しません。VPM の SDK 要件と UPM の依存は別々です。
SDK のないプロジェクトで UDONSHARP や COMPILER_UDONSHARP を手動定義しないでください。既存プロジェクトから SDK を削除した場合は、残った SDK 関連のカスタムシンボルも削除します。
コントローラーを配置する
通常の Unity と VRChat のどちらでも Packages/com.kibalab.tsmp.core/Samples/TSMPController.prefab をシーンにドラッグします。変換メニューや手動の Apply Setup は不要です。Setup が必要なコンポーネントを作成し、インストール済みのコーデックを自動で検出します。
共通サンプルは最初にローカルループバック用として Encoder 出力を Decoder 入力へ接続します。外部ストリームを受信するときは Decoder Source Texture を指定してください。SDK の有無で選択した入力やコーデックは変わりません。
作業用テクスチャとマテリアルは Assets/TSMPGenerated に自動生成されます。シーンと一緒にバージョン管理へ含めてください。インストール済みパッケージを変更せず、各 Controller の出力を独立させます。
パッケージの Udon Program Asset は SDK 環境でのみ使用します。共通 Controller は SDK なしで利用できますが、他のデモシーンにはアバター、ストリーミングプラグイン、VRChat コンポーネントなどの依存が必要な場合があります。
既存のシーン
既存 Controller のプレハブ参照とオーバーライドを維持するため、以前のプレハブは元の GUID のまま Samples/Legacy/TSMPControllerLegacy.prefab に保持します。新しいインスタンスには共通の Samples/TSMPController.prefab を使用します。既存 SDK シーンの変換コマンドは不要です。ただし、以前のシーンを SDK のないプロジェクトへ移す場合は、共通 Controller を使用し、他の任意依存も確認してください。Legacy プレハブ自体は SDK なしで使う共通サンプルではありません。
Player 設定
検証済みの構成は Windows x64、Mono、Managed Stripping 無効です。他のアプリにフォーカスが移っても送受信を続ける場合は Run In Background を有効にしてください。
IL2CPP と stripping はアプリごとに別途検証が必要です。TransSync フィールドの検索と RPC 呼び出しにはリフレクションを使用します。stripping を有効にする場合、リフレクションからのみ使用するフィールドやメソッドを保持してください。Mono ビルドの成功は IL2CPP の成功を意味しません。
次は クイックスタート に進みます。