Neos-Metaverse / NeosPublic

A public issue/wiki only repository for the NeosVR project
193 stars 9 forks source link

Press to talk #320

Closed Frooxius closed 3 years ago

Frooxius commented 5 years ago

A few people have asked for this feature. This would mute microphone by default and un-mute only when a button would be pressed.

How many people are interested in this?

There's also a few questions: Which button would be pressed to talk? This is a bit tricky, because all the buttons already have a function bound to them.

Busdriver101 commented 5 years ago

I've always preferred PTT, but we have pretty much run out of buttons, the index could be one of the joystick clicks, like your non primary hand joystick. Or have secondary only on one hand if PTT is selected.

Casuallynoted commented 5 years ago

I can say confidently that this would be hella useful. Not quite sure how best to have it implemented though. I agree that assigning any particular button input to PTT would potentially remove other more frequently used button inputs.

TehTurk commented 5 years ago

Some things like OpenAdvSettings allow for push to talk in some way, but it's just muting/unmuting. You could tie it to the scene space/logix so people could make their own forms of push to talk. But for default I'd make it a double press of an icon in the menu, or uncommon button, or even a menu option in game.

shiftyscales commented 4 years ago

This is probably something that could be taken care of via a custom user-made facet with Logix at this point instead of a native feature. Worth considering closing this issue, @Frooxius?

Frooxius commented 4 years ago

It's a question if there should be an official function that's well integrated into Neos, since this is something a lot of people might want to use (especially new users) and they won't go around finding or making their own Facet for it. It might still be worth having fully integrated official solution for that.

I'm not sure how popular Push-To-Talk is though to warrant that or prioritize it. However making custom Facet can work for users who really want it right now though.

shiftyscales commented 4 years ago

Hmm- push to talk would be highly used for screen mode users, actually. So it would be good to keep this issue open/incorporate it officially. But it'll be a long-term implementation that would be focused around the general screen mode update I think, unless you wish to incorporate it sooner.

I think a lot of the priority for this feature was resolved by allowing screen mode users to mute their mics, and for VR users to have access to the noise gating.

JackTheFoxOtter commented 3 years ago

Tagging #151 because of high relevance for screen mode.

skywindkitsune commented 3 years ago

This will be a very needed feature for advanced screen mode, most other games have it and it's usually binded to the middle mouse button, this makes it so people don't echo themselves in the background while using speakers and 90% of the time you'll find that desktop users will be like this.

I often find myself while on screen mode having to put on headphones even tho my doctor does not advise it because i am very prone to ear infections from covering my ears due to an ear canal issue i have, so please please please add this feature.

TehTurk commented 3 years ago

I agree, maybe This would probably be tied to the Custom Bindings so people could define what type of push to talk that one would perfer. Push to Talk has always been very opt in on most platforms.

In the Future I would also try not to add on comments unless there are new/different things to add to the request. UpThumbing issues instead of commenting on issues has better impact.

Frooxius commented 3 years ago

Yeah adding press to talk isn't a problem, especially on desktop. With VR it's a bit more complicated as we have fewer inputs to work with that can be conflicting, but that's more just binding issue, rather than having the feature itself.

StarfishHidari commented 3 years ago

With desktop mode out now I hear a lot of new players asking how to use push to talk but then finding they cannot. I'm not sure what to do for VR without the ability for us to modify our bindings but it would be really beneficial for desktop users

shadowpanther commented 3 years ago

VR users usually have at least their headset's mic which is pretty good already. Desktop users often have a web camera mic that picks up the whole room including their speakers and gives a lot of feedback for other users. With the increasing number of desktop users now that we have proper desktop mode, this becomes a bit of a problem, which would be solved with desktop push-to-talk.

Frooxius commented 3 years ago

I've added it to the desktop roadmap here: https://github.com/Neos-Metaverse/NeosPublic/projects/3

Currently the focus is shifted away from desktop though and is on BEPUv2 so it'll have to wait until we're doing more things with desktop.

shiftyscales commented 3 years ago

It is worth noting that in the meantime for those that wish to implement this for themselves it is very easy to do with a custom VoiceFacet/VoiceModeSync by driving the GlobalMute property. @shadowpanther @StarfishHidari 2021-07-01 18 26 09

If someone wanted they could get fancier with the facet too, e.g. add it as an option/let the user define which key they want as their push to talk key.

Edit: I was mistaken on this specific method- but it should still be possible by other means, e.g. using a cloud variable boolean to sync the value between worldspace and userspace.

StarfishHidari commented 3 years ago

It is worth noting that in the meantime for those that wish to implement this for themselves it is very easy to do with a custom VoiceFacet/VoiceModeSync by driving the GlobalMute property. @shadowpanther @StarfishHidari 2021-07-01 18 26 09

If someone wanted they could get fancier with the facet too, e.g. add it as an option/let the user define which key they want as their push to talk key.

I have tried doing this multiple times in the past, but it doesn't seem like key press logix nodes work in userspace. I recreated the setup you posted as well and monitored the outputs and nothing updated when I pressed the key, but it worked outside of userspace fine.

Nammi-namm commented 3 years ago

Just had a new user ask if this was an option, I told them if it is possible it's not straight forward, and more than a 5 minute operation. They seemed a bit bummed by that answer.

shadowpanther commented 3 years ago

@shiftyscales even if your setup works (looks like it doesn't for at least @StarfishHidari), having a new user install a modified facet in their dash on desktop is impossible, because the dash interactions were broken with the new flat dash. So while the solution could be used in theory by us VR users when we switch to desktop, it's not viable for pure desktop.

shiftyscales commented 3 years ago

@shiftyscales even if your setup works (looks like it doesn't for at least @StarfishHidari), having a new user install a modified facet in their dash on desktop is impossible, because the dash interactions were broken with the new flat dash. So while the solution could be used in theory by us VR users when we switch to desktop, it's not viable for pure desktop.

@shadowpanther - I actually had realized that method wouldn't work but it could still work by a proxy, e.g. a cloud variable, or another means of triggering the bool. But I was just spitballing potential solutions users could implement for themselves until such point as an official solution can be implemented. I realize it's not a substitute/having an official option would be preferable.

Technically a desktop-only user should still be able to use the legacy screen mode if they needed to add the facet until such point as a mechanism can be developer proper for the official desktop mode, but I understand that's not your point.

Frooxius commented 3 years ago

Added official mechanism in 2021.8.2.936! Just mute yourself and then press and hold V to talk.

Once we have UI for adjusting input bindings it will allow customization. Screen overlay will allow visualization when it's active later on as well.