Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
118 stars 1 forks source link

"User In Earmuff Mode" ProtoFlux node #1913

Open paradoxical-autumn opened 1 month ago

paradoxical-autumn commented 1 month ago

Is your feature request related to a problem? Please describe.

Currently, you cannot get if a specific user is in earmuff mode easily and I believe that a protoflux node to get this state would be helpful (such as on avatars)

Describe the solution you'd like

A ProtoFlux node which takes a user as input and outputs a boolean for if they are currently in earmuff mode

Describe alternatives you've considered

Using a SettingValueSync<bool, EamuffSettings>, a cloud variable and a facet to get this information outside of userspace. This wouldn't allow for arbitrary access to the setting though.

Additional Context

Ideally, the node should be something like this: image

Requesters

paradoxical_autumn (Discord) // paradox19 (IGN)

Frooxius commented 1 month ago

What's the use-cases for this? Why do you want to know if the user is in an earmuff mode?

I'm not sure if this is something that's necessarily good to expose, since it might be something the user wants to keep private(ish).

paradoxical-autumn commented 1 month ago

I was mainly thinking about avatar customisations (such as toggling an effect / mesh) and extra world functionality (such as informing people if a user is on earmuff mode) but I understand your concerns w/ user privacy.

I was mainly looking at VRChat's implementation of earmuff mode and how it's always displayed to everyone on a user's nameplate.

JackTheFoxOtter commented 1 month ago

I somewhat agree with the privacy argument, but then again, I don't think exposing this would be very harmful. Whisper voice mode is also exposed in a similar way.

Frooxius commented 1 month ago

We could do that yeah.

I suppose we could just add a privacy toggle for this too. So you can toggle if the world can know if you're in ear-muff or not, that might give best from both world?

paradoxical-autumn commented 1 month ago

That'd be fine by me!

Frooxius commented 1 month ago

Ok, we'll tackle it that way! Thank you!

JackTheFoxOtter commented 1 month ago

I suppose we could just add a privacy toggle for this too. So you can toggle if the world can know if you're in ear-muff or not, that might give best from both world?

Perhaps, even if it sounds a little excessive. The main point of having an indicator for the whisper bubble is so other people know it's active and can adjust accordingly to the person potentially not hearing people outside of it. I'm not quite sure how much earmuff mode deviates from that.

paradoxical-autumn commented 1 month ago

It sounds excessive

While I agree with this statement @JackTheFoxOtter, having an option to turn off the feature is better than no option at all for people who might not want this shown (such as if they need the feature (like me) but don't want it publicly known).

I'm fine with it as long as you're opted in by default (like how when the "opt out of media metadata" feature was released, everyone had it defaulted to opt in)

And also with the whisper bubble, you can turn that off by editing your avatar so this isn't much different

JackTheFoxOtter commented 1 month ago

I guess it might be more similar to client volume settings than voice modes, yeah. I didn't consider people leaving it on constantly for accessibility reasons.

JackTheFoxOtter commented 1 month ago

And also with the whisper bubble, you can turn that off by editing your avatar so this isn't much different

Well, no, because you can't change what your voice mode reports as for the ProtoFlux node / user inspector.

paradoxical-autumn commented 1 month ago

Well, no, because you can't change what your voice mode reports as for the ProtoFlux nodes / user inspector.

That's true, I completely forgot about how that node isn't just "Is muted"

Frooxius commented 1 month ago

The difference here is that whisper bubble is something that's part of the "in-world" voice communication mechanism. It's temporary and doesn't transfer from world to world or persist.

Earmuff mode is global and persistent accessibility setting, so I'm not too sure if it's something users necessarily want to have exposed about themselves.

My thinking about it is more along terms of accessibility settings. Say when we introduce "Photosensitive" setting, which will disable certain effects - but do it in a way that's not detectable. That might also be something that users might not want to have exposed about themselves.

shiftyscales commented 1 month ago

Personally I don't think I'd want to see this state exposed at all. Fundamentally- it's meant to be an accessibility setting that a user tunes to their own personal comfort.

Other users have no need to know who is using earmuff mode, nor how it is configured. It is a personal preference like with the volume levels which are also not exposed in any capacity.

If a user wishes to globalize this value, there are other existing mechanisms they could use to do so, but I don't think this should be something we should support as an official feature, even if we include an opt-in setting.

Frooxius commented 1 month ago

With the proposed solution, if you wish to not expose this value for yourself, you'll have that option.

There are always ways to expose things manually, but it requires additional effort and complexity from the user. If this is something that's common enough, it might be worth adding (e.g. similarly how you can query the voice status).

shiftyscales commented 1 month ago

Per your above example though around whisper bubbles- voice status is something that applies directly to worldspace, as worldspace is responsible for controlling/limiting the available voice modes based on the world's configuration, @Frooxius. As such they aren't directly comparable.

At the least, if it were added, it should be opt-in (disabled by default) rather than opt-out. Leave it to the user to choose to share if they are making use of accessibility features rather than publishing that info publicly by default.

paradoxical-autumn commented 1 month ago

Shifty raises a good point and I'm gonna say that I actually believe that it should be opt-in, so no one is randomly thrust into a state they're not comfortable with.

Frooxius commented 1 month ago

@shiftyscales Yes, there's differences, but I think that's kind of missing the point.

There is clearly interest in using this to display on avatar and such in this - same way people want to display muted status or dash. Therefore in that regard it is comparable.

I understand that you are not interested in sharing this with the world, but @paradoxical-autumn clearly is.

paradoxical-autumn commented 1 month ago

Another reason why I think this is a helpful feature is as I've had multiple people think I'm ignoring them when in actuality I can't hear them due to having the mode enabled

Azavit commented 1 month ago

Opt In: means the value is nearly useless if you aren't the one wanting it to be set up and will cause confusion when a person tries to get it working and it just fails as you may not be focused on the settings menu as much when building with Protoflux. Also means 90% of people won't check the option (for every button you need to press you loose 90% of the people) even if they don't care about others knowing about it.

Opt Out: The person will already be in the settings menu and will already be thinking "hey I don't want this transmitted." and opts out intentionally and will most likely remember that "yes I opted out, that's why this node doesn't work" vs others who may not have even noticed the setting to opt in.

paradoxical-autumn commented 1 month ago

I feel like this issue is going to go round in circles of "should it be opt-out or opt-in?" as there are valid arguments for both sides.

Opt-out pros:

Opt-in pros:

Conclusion

This feature request will need more feedback from the community to find out how many people want it to be shown and how many people want it to be hidden

If you've made it this far, all I can ask is that you please leave your feedback on this. You don't need to write an essay, just a simple "I want this to be opt-out" or "I want this to be opt-in". Thank you!

Frooxius commented 1 month ago

I think it depends a bit on use cases. From the sound of it, most of the time people will want to setup their avatar with some indicator to show this, rather than other users detecting if someone is in earmuff.

If those are the main cases, then the burden to opt-in should be on the user setting up their avatar - it's up to them to read up on the documentation on the node and see how it works, since they're the ones putting effort to setup something.

quellus commented 5 days ago

A bit late to the party, but my use case is also an indicator. I'd like to be able to indicate to others to avoid people thinking I'm ignoring them when I just can't hear them.