Yellow-Dog-Man / Resonite-Issues

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

Setting to control earmuff mode directionality #1917

Closed BlueTera closed 1 month ago

BlueTera commented 1 month ago

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

It seems a bit unnatural for it to be a cone so a sphere option would be nice.

Describe the solution you'd like

Having a sphere option for the earmuff feature. And just having a visualization for how far it goes out.

Describe alternatives you've considered

Uhh whisper bubble but it will impact people visually. And be annoying.

Additional Context

No response

Requesters

BlueTera, Chris Blackpaw,

epicEaston197 commented 1 month ago

What you're asking here is for two features please keep this focused to one feature the visualization part of this issue is already being requested in #1897 I'll possibly edit the issue name to be more generalized to just be earmuff visualization

shiftyscales commented 1 month ago

Seeking input from @Frooxius.

As part of the original spec of how this feature worked in VRChat- the default shape of the attenuation area around the player is a sphere/distance check which places the user directly in the centre of the circle- attenuation is done equally on all sides based entirely on the distance, and transition distance.

I don't believe with the current settings we have available this behaviour could be replicated in full

E.g. the angle can only be set to a maximum of 120, whereas the expected result would be to allow up to 360 degrees so that falloff is based solely on distance, and not facing angle at all.

Having visualization would make it easier to debug/see how these settings practically affect the functional ranges. The distance, and transition values maximum range is also seem to be clamped quite low, e.g. the transition range only having a maximum value of 2m.

Frooxius commented 1 month ago

@shiftyscales We are not following VRChat spec or anything like that, this implementation is our own based on the feedback and requests made.

You cannot replicate the sphere with current settings.

@BlueTera I'd like to understand a bit more about this. Can you provide me with use-cases / examples for when the current solution isn't suitable or when it causes problems?

Why would sphere help here?

epicEaston197 commented 1 month ago

Why would sphere help here?

A sphere is a generalized area around the user while a cone is wherever the user is facing a spherical range might be preferred over where the user is looking for example if you're watching a video player you're going to be looking at the video player and not other people resulting in their voices being quieter requiring you to turn off earmuff mode as a whole

but if we had a spherical range then looking at a player would not be a requirement for you to hear them at full volume they just need to be within your spherical range in order for you to hear them at full volume

shiftyscales commented 1 month ago

I can answer that as well- it is a personal preference matter- being able to hear equally well in all directions around you while still limiting the effective range, allowing user voices to fall off if they are out of range, but still be more audible even if they are behind you.

Some users would prefer being able to keep full spatial awareness of all of the conversations that are happening in their immediate vicinity, but not beyond it.

E.g. some users had already reported they do not hear users that are directly behind them/they wish to be able to hear users that are directly behind them, even with this setting on.

Facing angle attenuation, and falloff are two entirely separate use-cases/needs for this feature.

Frooxius commented 1 month ago

Hmm. The way the current cone mechanism works is that you should be able to hear users that are immediately behind you - the users start attenuating some distance from the surface of the cone, which will make it extend a bit behind you, but it's biased heavily toward the front.

We could do the sphere option or perhaps have a gradual slider, that moves it behind you and makes it more spherical? That way you could control the level of how much behind you want to hear.

At max, you'd be able to hear someone 4 meters behind you at the same level as someone 4 meters in front of you (meaning there's no directionality at all). At min, you'll be able to hear someone 0.5 meters behind you at same level as someone 4 meters in front of you.

epicEaston197 commented 1 month ago

Either way I still think a spherical option would be nice

Frooxius commented 1 month ago

I would really like to understand the use-cases and such, so I can design and implement proper parametrization and controls for this.

shiftyscales commented 1 month ago

The solution Frooxius proposed would fill the needs of a spherical option, @epicEaston197.


That sounds like it should resolve things thanks, @Frooxius. :)

Having a slider would offer a much higher degree of control between those two extremes (entirely directional, and entirely non-directional) which should better meet differing needs of users- whether they want facing angle attentuation, or just raw distance-based falloff.

shiftyscales commented 1 month ago

Separately- as mentioned above- having visualization #1897 would allow users to more easily see and set good values that meet their needs on a per-world basis/as-needed.

If you can see the effective range of the mode over top of the world, it makes it easier to know if you are in/out of hearing range, and provides insight on how you might wish to configure the values based on the visual overlayed on the world.

epicEaston197 commented 1 month ago

or perhaps have a gradual slider, that moves it behind you and makes it more spherical?

I don't get exactly how this works again i said I have a very hard time visualizing a cone and what these values do. So would the slider just rotate the cone?. Or does it increase the range to be 360° gradually?

BlueTera commented 1 month ago

It does not have to be like the VRC equivalent of earmuff mode. But making it a bit more spherical would be nice and have a little bit of a cone shape would also be okay. Like if you want to hear people around you that is further behind. And not making the cone really big to do that.

I might just be misunderstanding on how it actually looks like since it does not have a visualization. Which to me is a bit interesting since the description does not say how far it goes in meters. Or other measurements.

Frooxius commented 1 month ago

I've sketched how would this work. It would essentially transition from the left to the right as you move the slider. At full, this would essentially make you hear in all directions about the same amount based on your configured distance.

image

Does this seem ok?

BlueTera commented 1 month ago

I've sketched how would this work. It would essentially transition from the left to the right as you move the slider. At full, this would essentially make you hear in all directions about the same amount based on your configured distance.

image

Does this seem ok?

This seem to be pretty good to me.

TisFoolish commented 1 month ago

As long as we can get a visual showing how the volume changes, that would work just fine. Otherwise without a visual aid I fear such a setting would be very unintuitive.

Frooxius commented 1 month ago

Like we mentioned above, let's separate the issues please. Visualization goes into: https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/1897

shiftyscales commented 1 month ago

Agreed- but talk of visualization should be kept to #1897, @TisFoolish. One issue at a time- so as not to cross-talk about different features.

epicEaston197 commented 1 month ago

I've sketched how would this work. It would essentially transition from the left to the right as you move the slider. At full, this would essentially make you hear in all directions about the same amount based on your configured distance.

Does this seem ok?

From what it looks like and from what you described this would suit our needs. But I have to wonder how is this different from the angle setting being set to 360°?. Does the cone gradually become a cylinder or sphere?.

Frooxius commented 1 month ago

I've sketched how would this work. It would essentially transition from the left to the right as you move the slider. At full, this would essentially make you hear in all directions about the same amount based on your configured distance.

Does this seem ok?

From what it looks like and from what you described this would suit our needs. But I have to wonder how is this different from the angle setting being set to 360°?. Does the cone gradually become a cylinder or sphere?

You can't set the angle beyond ~179.99 for the cone. At 180 degrees the cone would just become infinite plane.

The math is a bit more complicated to convert it from a cone to sphere, but that's not something you have to worry about.

From perspective of user, you'd get a new slider that will be "How much directional do I want the hearing to be?". Set it to max and the muff will be very directional. Set it to minimum and it won't be directional at all.

epicEaston197 commented 1 month ago

From perspective of user, you'd get a new slider that will be "How much directional do I want the hearing to be?". Set it to max and the muff will be very directional. Set it to minimum and it won't be directional at all.

I'm assuming the default for this value will be 100% as to not cause confusion

shiftyscales commented 1 month ago

It would make sense to me that it be set to be fully directional by default- particularly since directional should still account in part for voices coming from immediately behind the user, @epicEaston197.

It helps ensure that only the most relevant conversation (happening in front of the user/within view) is prioritized.

TisFoolish commented 1 month ago

Like we mentioned above, let's separate the issues please. Visualization goes into: #1897

Agreed- but talk of visualization should be kept to #1897, @TisFoolish. One issue at a time- so as not to cross-talk about different features.

This issue should be renamed then.

Frooxius commented 1 month ago

I've added directionality option in 2024.5.3.467, give it a try! If it doesn't suit your needs, let us know and we'll reopen this.

Thanks!