-
Notifications
You must be signed in to change notification settings - Fork 14
feat: head sync #6347
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
feat: head sync #6347
Conversation
# Conflicts: # scripts/package-lock.json # scripts/package.json
|
Windows and Mac build successful in Unity Cloud! You can find a link to the downloadable artifact below. |
# Conflicts: # Explorer/Assets/DCL/Character/CharacterMotion/Systems/HeadIKSystem.cs # Explorer/Assets/DCL/Multiplayer/Movement/Systems/RemotePlayersMovementSystem.cs # Explorer/Assets/Protocol/DecentralandProtocol/Comms.gen.cs # scripts/package-lock.json # scripts/package.json
Ludmilafantaniella
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✅ QA Approved
Tested and verified on Windows and macOS following the testing sheet and PR indications.
Coverage:
-
Minigames: Head sync behaves correctly, no head sync breakage observed.
-
Scenes with forced POV (e.g. MetadyneLabs): no issues, head sync does not break.
-
Emotes: When triggering an emote while head sync is active and held in a specific position, head sync is correctly disabled and the emote plays as expected.
-
Moving platforms / elevators: Head sync remains stable.
-
Cross-OS testing (Windows ↔ macOS): Head sync works correctly across clients.
-
Additional coverage & regression testing:
- Head sync tested across multiple scenes, under different circumstances and movement types.
- Regression testing performed on Backpack preview (emotes and wearables).
- User Profile functionality verified.
- Testing executed in Genesis Plaza V2, covering all available interactions in that environment.
No blocking issues found.
PR looks good to merge 👍
emote-headSync.mp4
Moving.plattforms.mp4
a636d11 to
f575f39
Compare
# Conflicts: # Explorer/Assets/Protocol/DecentralandProtocol/AudioAnalysis.gen.cs.meta
# Conflicts: # Explorer/Assets/DCL/Character/CharacterMotion/CharacterMotion.asmdef # Explorer/Assets/DCL/Character/CharacterMotion/Settings/CharacterControllerSettings.cs
# Conflicts: # Explorer/Assets/DCL/Character/CharacterMotion/Systems/HeadIKSystem.cs # Explorer/Assets/DCL/FeatureFlags/FeaturesRegistry.cs # Explorer/Assets/DCL/Prefs/DCLPrefKeys.cs
Pull Request Description
Implementation of the head sync shape: https://www.notion.so/decentraland/Head-Sync-2735f41146a580d49421f7939a81aa2e
Basically we just sync head look-at vector across clients, so now we can see where other players are looking at.
Protocol PR: decentraland/protocol#326
Test Instructions
Can be tested anywhere, requires 2+ players.
Some of the above conditions might be problematic to test. I personally think emotes are the most important to test because if we don't correctly disable head IK during emotes playback, it will look pretty weird.
Also in the settings there's a new option to disable head-sync. When head-sync is disabled other players should NOT see the head movement of the player who has it disabled.
Dev Notes
int32field in the protocol to send the look at data across the netoworkRigBuildercomponent on remote players. This might impact performance? It was disabled beforeApplyHeadLookAt.Execute)