Merged
Conversation
…hing - Introduced TransformBinding struct for better organization of transform data. - Updated initialization methods to support new smoothing settings and time estimation. - Replaced immediate target application with snapshot-based updates for smoother transitions. - Enhanced Tick method to apply transforms based on estimated server time and dynamic buffer multipliers. - Modified AddSnapshot and Clear methods for better state management. - Updated TransformSyncManager to include pose sequence in transmitted data. - Changed physical rotation representation from Vector3 to Quaternion for consistency. - Improved handling of pose flags in NetSyncAvatar for better state tracking. - Adjusted UpdateHumanPresenceTransform to use Quaternion for rotation calculations.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request updates the NetSync protocol to support full 7-component quaternion poses, introduces a new protocol version (v2) for client and room pose messages, and simplifies stealth mode detection using a flag bit. It also updates serialization/deserialization logic and the client simulator to use quaternion rotations instead of Euler angles on the wire. These changes improve pose accuracy, extensibility, and protocol clarity.
Protocol and Message Format Upgrades:
Introduced protocol version 2 with new message types:
MSG_CLIENT_POSE_V2andMSG_ROOM_POSE_V2, replacing the legacy 6-float transform messages. These new messages include protocol version, pose sequence, flags, and support for 7-float (quaternion) poses. (binary_serializer.py,client_simulator.py,client.py) [1] [2] [3] [4] [5] [6] [7]Serialization and deserialization routines now handle 7-float poses (including
rotWfor quaternions), protocol version, pose sequence, flags, and broadcast time for room messages. (binary_serializer.py) [1] [2] [3] [4] [5]Stealth Mode Detection Simplification:
flags & 0x01) instead of NaN values in transforms, simplifying checks and message size. (adapters.py,binary_serializer.py) [1] [2]Pose Data Structure Enhancements:
Added support for
rotW(quaternion w component) in all pose serialization and adapters, ensuring full quaternion support throughout the protocol. (adapters.py,binary_serializer.py,client_simulator.py) [1] [2] [3] [4]Added new fields (
poseTime,poseSeq,flags) to client pose data and wire format for improved synchronization and extensibility. (adapters.py,binary_serializer.py) [1] [2] [3] [4] [5]Client Simulator and API Updates:
Client simulator now converts Euler angles to quaternions before serialization, matching the new protocol requirements. (
client_simulator.py)Updated all references and message type names to use the new v2 protocol constants and field names. (
client_simulator.py,client.py) [1] [2]These changes modernize the protocol, improve pose fidelity, and make future extensions easier.