VRChat
みみーラボみみーラボ

【VRChat】Manualでオブジェクト同期するやつ(ManualObjectSync)【Udon】

VRC Object Syncコンポーネントはアタッチするだけでいい感じに同期してくれますが、ContinuousSyncのため、大量に設置すると通信量がパンクして同期に支障が出る事があります。また、ManualSyncモードのUdonスクリプトと相性が悪い事が知られています。 これはManualSyncなVRC Object Syncとして置き換える事を目指したU#スクリプトで、オブジェクトにアタッチするだけで自動的にTransformの位置、回転、スケールがOwnerに同期するようになります。 一緒にRigidbodyが付いている場合はKinematic、Gravityの同期的制御もできるようになっています(ただし、非Ownerは同期の都合上Kinematicが強制オンにされます)。 一緒にVRC Pickupが付いている場合は、ピックアップしているプレイヤーの持っている手の位置を基準にローカル計算で追従するため、VRC Object Syncと比べて最低限の通信量で、かつ滑らかに位置同期します。 ManualSync同期のため、一緒に他のManualSyncなUdonBehaviour、U#スクリプトをアタッチする事が可能です。 ※Rigidbody の Is Kinematic がオフでも同期しようとはしますが、スムージング機能はありません。常時動き続けるようなオブジェクトには VRC Object Sync の使用を検討してください。 詳しい使い方は以下ドキュメントを参照してください。 https://github.com/mimyquality/FukuroUdon/wiki/Manual-ObjectSync

VRC Object Syncコンポーネントはアタッチするだけでいい感じに同期してくれますが、ContinuousSyncのため、大量に設置すると通信量がパンクして同期に支障が出る事があります。また、ManualSyncモードのUdonスクリプトと相性が悪い事が知られています。 これはManualSyncなVRC Object Syncとして置き換える事を目指したU#スクリプトで、オブジェクトにアタッチするだけで自動的にTransformの位置、回転、スケールがOwnerに同期するようになります。 一緒にRigidbodyが付いている場合はKinematic、Gravityの同期的制御もできるようになっています(ただし、非Ownerは同期の都合上Kinematicが強制オンにされます)。 一緒にVRC Pickupが付いている場合は、ピックアップしているプレイヤーの持っている手の位置を基準にローカル計算で追従するため、VRC Object Syncと比べて最低限の通信量で、かつ滑らかに位置同期します。 ManualSync同期のため、一緒に他のManualSyncなUdonBehaviour、U#スクリプトをアタッチする事が可能です。 ※Rigidbody の Is Kinematic がオフでも同期しようとはしますが、スムージング機能はありません。常時動き続けるようなオブジェクトには VRC Object Sync の使用を検討してください。 詳しい使い方は以下ドキュメントを参照してください。 https://github.com/mimyquality/FukuroUdon/wiki/Manual-ObjectSync

導入手順

利用規約

更新履歴