metauni / metaboard

Multiplayer drawing boards for sharing knowledge in Roblox.
Mozilla Public License 2.0
28 stars 6 forks source link

Boards and spatial voice indicator #29

Closed dmurfet closed 2 years ago

dmurfet commented 2 years ago

If you position your player so that the spatial voice mute/unmute/volume indicator above your head is "under" the Canvas GUI, you will be unable to register click events in that region (the click events pass through and mute/unmute you).

This is a problem that naturally arises in talks and one needs to proactively warn speakers about it, until a fix is made (or we find a workaround). Presumably one can see what the spatial voice indicator is in a running server?

dmurfet commented 2 years ago

More problems with this on 13-1-22, Edmund accidentally muted himself in the SLT supplemental session and Eleanor muted herself and had problems writing on the board in the Cryptography session.

dmurfet commented 2 years ago

I tried changing the canvas's ZIndex to be 1000 but this doesn't help. I believe that internally the spatial voice indicator has priority over other GUI elements, to prevent developers from doing what we're doing but intentionally. If the boards worked as expected, then the developer could wait for you to turn on your spatial voice, then immediately create a GUI that sits above your spatial voice indicator and captures the clicks so you can't turn it off.

Of course a nefarious developer can just change your camera so you don't see the indicator at all, so I don't see the point of Roblox's policy (if indeed that is their policy).

Anyway we should just change the camera :)

I thought at first about zooming into your head automatically (which is the workaround we're currently recommending to people). However, this only removes the possibility of you clicking on your own spatial voice indicator. The indicators for other people may be in view, and inadvertently muting them is also bad (perhaps the speaker is facing the audience, zooms into their head and by the end of the lecture has managed to randomly mute and unmute everyone several times).

Until Roblox changes this behaviour, I think the only sensible thing to do is change the camera so that no spatial voice indicators for the audience are in view. My current preference is to place the camera above the board looking down on the audience, from a height that is far enough that the spatial voice indicators disappear.

dmurfet commented 2 years ago

Resolved in v0.6.1 by moving the camera to look from above the board.