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

コンポーネントを同期する

TSMP に送信するオブジェクトにこれらのコンポーネントを追加します。

これらのコンポーネントのいずれかを追加、削除、または移動した後、Apply Setup を実行します。

変換同期

ゲームオブジェクトの位置、回転、スケール、およびオプションの Rigidbody の移動には TSMPNetworkTransformSync を使用します。

次の用途に使用します。

  • 小道具の移動。
  • 物理オブジェクト。
  • 送信者に従う必要がある単純なシーン オブジェクト。
  • 連続受信補間のテスト。

重要な設定:

設定意味
ターゲット同期して変形します。空の場合、デフォルトでコンポーネント変換になります。
ローカルスペースを使用するワールド変換の代わりにローカル変換を送信します。
リジッドボディの同期Rigidbody が存在する場合は速度と角速度も送信します。
圧縮モード精度を犠牲にしてペイロードサイズを削減します。

物理学がオブジェクトを駆動するときに Rigidbody 同期を有効にします。これは、落下物や重力による物体の揺れを回避するのに役立ちます。

ヒューマノイドのポーズ同期

人型 Animator リグには TSMPNetworkHumanoidPoseSync を使用します。

次の用途に使用します。

  • 人型キャラクターのアニメーションをミラーリングします。
  • 選択した人型ボーンを送信します。
  • ローカルまたはワールド空間でルート モーションを送信します。

インスペクターには人型リグ セレクターが表示されます。デフォルトの選択から始めて、ペイロード サイズを減らす必要がある場合にのみボーンを削除します。

根元の動きが正しいように見えても、手足が硬くなったり遅れたりする場合は、次のことを確認してください。

  • アニメーション化された体のパーツが選択されています。
  • レシーバー リグは人型であり、一致するボーンを備えています。
  • ペイロード容量を超えていないこと。
  • トランスポートはフレームをドロップしていません。

VRChat アバターポーズ同期

ライブ VRChat プレーヤーのポーズ データをミラーリングする場合は、TSMPNetworkVrchatAvatarPoseSync を使用します。

外部 IK パッケージに依存せずにレシーバー リグを完全なヒューマノイドのポーズに従わせたい場合は、フル モードを使用します。受信側のアバター リグに IK ソリューションがある場合にのみ、より小さいトラッキング ポイント セットアップを使用してください。

このコンポーネントは、プールからアバター インスタンスを生成または再利用できます。複数のプレーヤーでテストする前に、アバター プレハブとプール ルートを割り当てます。

フル モードでは、トランスフォームまたはブレンド シェイプ同期よりも多くのペイロード容量が必要です。複数のプレーヤーでテストしているときに、payloadlossTSMPDebugCanvas で確認してください。

ブレンドシェイプの同期

表情やメッシュ シェイプ キーには TSMPNetworkBlendShapesSync を使用します。

実際に必要なブレンド シェイプを選択します。すべてのブレンド シェイプを送信すると、特に多くのシェイプ キーを持つアバターの場合、すぐにペイロード容量を浪費する可能性があります。

受信機は、選択されたブレンド形状リストをホワイトリストとしても使用します。受信したキーが受信側で選択されていない場合、そのキーは無視されます。

アニメーターの同期

送信者に従う必要がある選択したアニメーター パラメータまたはレイヤー状態には TSMPNetworkAnimatorSync を使用します。

良い候補者:

  • ブール値またはトリガーのようなゲームプレイ状態。
  • 表示可能なパラメータの小さなセット。
  • 正確なタイミングが重要な場合のアニメーター レイヤーの重みまたは正規化された状態。

表示される出力に影響を与えないパラメータの送信は避けてください。

タイムライン同期

TSMPNetworkTimelineSync またはタイムラインの再生状態には PlayableDirector を使用します。

受信機が再生/一時停止およびタイムライン時間に従う必要がある場合に使用します。送信者と受信者の間でディレクターのセットアップの一貫性を保ちます。

ゲームオブジェクトの切り替え

TSMPNetworkGameObjectToggle は、TSMP RPC を切り替える単純な対話可能なオブジェクトとして使用します。

RPCTarget.All を使用したループバック テストの場合、ローカルの切り替えはすぐに発生し、デコードされた切り替えはストリームの遅延後に再度発生する必要があります。

これは、使用するペイロードが非常に少なく、遅延した RPC の動作を簡単に確認できるため、最初の機能テストとして推奨されます。