Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
141 stars 2 forks source link

Add personal space setting #2062

Open epicEaston197 opened 6 months ago

epicEaston197 commented 6 months ago

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

Sometimes users get uncomfortable when people get too close in their face or too close in general

Describe the solution you'd like

I want to be able to define a circle around me that if the user gets too close inside of it their avatar will disappear

Describe alternatives you've considered

Making a custom system but this would be really complex

Additional Context

This came from the Moderation Office Hours 2024-05-19 today and I thought it was a cool ideal I am worried that this feature might be used to mask a bigger problem in the community mainly people touching others without their consent this feature will not fix or stop that behavior it will only mask it

Requesters

@epicEaston197

Redd56 commented 6 months ago

I 2nd this, i wouldnt use this but user panda from the discord and in game would heavily use this and love this.

as a 2nd addition to it if you have it enabled it fades your avatar out for other users if they get close, that way they can see you have it on.

example: you are like .5M from a user, taht user can now no longer see you and you cant see them as both your avatars are faded out in each others views thanks to personal space (we cant call it that btw vrc uses that name, maybe personal area?) that way the user that has it enabled (user1) doesnt get touched as they dislike it

epicEaston197 commented 6 months ago

thanks to personal space (we cant call it that btw vrc uses that name, maybe personal area?)

well we already have the exact same name for earmuff mode so I can't see why personal space should be an exception unless it is a registered trademark

as a 2nd addition to it if you have it enabled it fades your avatar out for other users if they get close, that way they can see you have it on. user that has it enabled (user1) doesnt get touched as they dislike it

This would be a really nice addition but I'm afraid that this might be masking a bigger issue... Not a engineering or coding but a social one

Redd56 commented 6 months ago

well we already have the exact same name for earmuff mode so I can't see why personal space should be an exception unless it is a registered trademark

ah true, i just didnt want vrc to get all pissy over the name reuse

Banane9 commented 6 months ago

ah true, i just didnt want vrc to get all pissy over the name reuse

"Personal Space" is a common term used irl too, not just in VRC - they have no basis to claim about its use lol

NukiRaccoon commented 6 months ago

Note: this feature request grew out of a question asked at the end of yesterday's Moderation Office Hours, beginning around... https://discord.com/channels/1040316820650991766/1241843056018460825/1241853262475563089

I am unsure how widespread a problem this is, especially when using existing options like "Do Not Touch" notes in the nametag, or the red setting on the USFN Consent Bracelets. I pointed out that it is relatively easy to create custom systems like a personal-space bubble, like the one on my avatar, but less obtrusive if one wants to keep people at a distance, or a trigger which reacts when someone tries to pet a person without permission.

I think this could be implemented as an item in Resonite Essentials that installs to the avatar, like Mute Helper.

ko-tengu commented 6 months ago

I feel like this, and the mute helper, movement vignette, and probably even some near clip stuff, should absolutely be part of a baseline system that applies across everything a user does. Any sort of major accessibility or safety feature should absolutely be able to be setup and used by a user without needing to navigate the inventory, without another player doing it for them, and most importantly, apply across every possible experience the user can be exposed to.

User installed systems can break, can get moved or lost from public folders, they require you to remember to migrate them after new avatars or even just block you from using special avatars that can be set up for specific experiences.

Frooxius commented 6 months ago

This is something we can add, but there's a few details that we need to flesh out. Notably:

1) Should this be based on proximity of the user's root? Or any of their main extremities (head, hands, feet)? E.g. if they reach out with their arm, they'll disappear, even if their body doesn't move. 2) When they disappear for you, should you disappear for them also? This might indicate to them that you shouldn't be approached like that. Without this, they might be unaware that you don't see them anymore and keep interacting with you. But also you disappearing reveals to them that you have this system on. 3) Should this be per user? This feels like it would benefit from having a per-user override. So by default it's whatever your setting is and then you can either forcefully enable or disable it for individual users 4) Should there be any visual on when this happens or should they just plain disappear? Should we instead move their visual further away from you?

For the fade effect: This is not really possible to do, given the wide variety of materials and visuals users can be using for their avatars. This is likely just going to be purely on/off, transform (scale, rotate, position) and potentially clipping pane effect.

NukiRaccoon commented 6 months ago

I feel like this, and the mute helper, movement vignette, and probably even some near clip stuff, should absolutely be part of a baseline system that applies across everything a user does. Any sort of major accessibility or safety feature should absolutely be able to be setup and used by a user without needing to navigate the inventory, without another player doing it for them, and most importantly, apply across every possible experience the user can be exposed to.

This is a good point. Basic Mute Helper is not a heavy system, and perhaps should be on the user-slot, with the settings in the main settings menu.

Still, I think the personal space bubble is something that ought to be prototyped as an item.

...and perhaps the indicator should be that anything inside the personal space turns red? And perhaps the person with it should get a red circle beneath them and the fresnel-outline of the bubble around them, to indicate where the bubble's edges are?

ko-tengu commented 6 months ago

The way the VRChat personal space works is by immediately hiding the other user's avatar when they cross an invisible line with any IK driven component, but it's a personal level setting and doesn't expose it to the other users by having you disappear. Having a per user override would be nice, if it's not a huge extra add to the system.

Having the other user entirely vanish is probably the least awkward approach, and the least likely to make other problems. Having an editable size of the acceptable boundary would help to trim things out for people who are more sensitive, or for people who merely want to keep people from standing inside them or putting their hands into their eyes. It should work as both an anti-harassment tool and also a way to help those of us sensitive to suddenly having things shoved into our head by people just regularly walking around.

As someone who occasionally likes the feature in crowded groups, a nice but harder Resonite specific tweak would be to extend it to many kinds of unequipped meshes. It's not difficult or uncommon to have someone spawn out a cube or throw around toys that end up inside your head and instantly make you sick. A personal example I run into a lot is ending up simply halfway inside an object and instantly getting sick from the different view from both eyes.

epicEaston197 commented 6 months ago

This is something we can add, but there's a few details that we need to flesh out. Notably:

  1. Should this be based on proximity of the user's root? Or any of their main extremities (head, hands, feet)? E.g. if they reach out with their arm, they'll disappear, even if their body doesn't move.

I think it should be based off of the chest and if that's not an option and only the ones you listed are I think it should be feat this might have adverse effects of full body users so I think overall it should be head if chest isn't an option

  1. When they disappear for you, should you disappear for them also? This might indicate to them that you shouldn't be approached like that. Without this, they might be unaware that you don't see them anymore and keep interacting with you. But also you disappearing reveals to them that you have this system on.

Yes both users should disappear for one another

  1. Should this be per user? This feels like it would benefit from having a per-user override. So by default it's whatever your setting is and then you can either forcefully enable or disable it for individual users

yes it should behave like that by default but I do have concerns on how the UI will be presented

  1. Will this be shoved into the existing contacts interface? If so that's just going to clutter it more

or 2. will it be an interface in the settings to where you could add entries and add user names to the list on every entry?

  1. Should there be any visual on when this happens or should they just plain disappear? Should we instead move their visual further away from you?

I think the visual should be replaced with the blocked avatar visual either that or the visual is further away but this could still make the user uncomfortable if they can see what the interaction is supposed to be doing to them

TisFoolish commented 6 months ago

I'd like to request that the user can configure whether people fully disappear or just turn into the 3 spheres of a blocked avatar.

shiftyscales commented 6 months ago

This is something we can add, but there's a few details that we need to flesh out. Notably:

  1. I think it would have to account for the avatar's extremities rather than the user root, as the two can become quite out of sync the further away a user is from the centre of their playspace (which is especially prominent for any users that make use of playspace movers/locomotion tools that modify the playspace.)

  2. My answer here depends a bit on its design, e.g. is audio of the user also going to be culled? If so, it could likely be useful to have a way to visually indicate 'hey- you're in my space- please back up'. This is probably an area we'd want to have preference settings on to allow users to tune the tool to their liking.

  3. Yes, it would definitely need overrides, e.g. for close friends and family who you are comfortable having in your personal space, it would be desirable to never cull them.

  4. As covered a bit in 2- a visual could be a good indicator that you are in the user's space/they would like you to back up out of it- and would probably be the best way to handle this.

@Frooxius - Some initial thoughts above on each of your questions.

As far as visuals- I think it might make sense to attach it to existing avatars in a similar way to the whisper bubble visual.

The way I envision it working:

epicEaston197 commented 6 months ago

My answer here depends a bit on its design, e.g. is audio of the user also going to be culled?

No

As far as visuals- I think it might make sense to attach it to existing avatars in a similar way to the whisper bubble visual.

adding customization to an accessibility visual is a terrible ideal that could easily be abused to target users and can trigger events depending if the visual is enabled or not or completely remove it as a whole

Frooxius commented 6 months ago

I think it would have to account for the avatar's extremities rather than the user root, as the two can become quite out of sync the further away a user is from the centre of their playspace (which is especially prominent for any users that make use of playspace movers/locomotion tools that modify the playspace.)

The root in this case is their body, so playspace wouldn't affect this. It's essentially question of - should it be based on the center of the body or any of the limbs?

While you are outside of the range of the user's personal space, it would be entirely transparent - As you get closer to their avatar, the visual fades in the closer you get to its range

Like I mentioned in my post above, we can't really do actual fade.

Will this be shoved into the existing contacts interface? If so that's just going to clutter it more

Unless we rework Contacts UI first, then yes. So we either: 1) Don't work on this until Contacts UI is done 2) Don't offer per-user overrides until Contacts UI is reworked 3) Clutter Contacts UI more

epicEaston197 commented 6 months ago
  1. Don't work on this until Contacts UI is done

that's the least preferable outcome but understandable if so

  1. Don't offer per-user overrides until Contacts UI is reworked

that's better but still could cause issues

  1. Clutter Contacts UI more

this is sadly probably the most preferable outcome

shiftyscales commented 6 months ago

Like I mentioned in my post above, we can't really do actual fade.

I was talking about a visual we add to the user's avatar (and thus have full control over), and not the avatar itself. An indicator of the range of their personal space.


The root in this case is their body, so playspace wouldn't affect this. It's essentially question of - should it be based on the center of the body or any of the limbs?

I see. I think it would still be useful to account for limbs, e.g. say someone were scaled large- in global position they may be outside of your range, but could still reach their hand into your space- so it would be better to just account for any part of the avatar I think.

In particular since the root of the avatar is between the feet/at the bottom of the character- they could also occupy your personal space if they were beneath you at a large enough scale- so I think it'd have to account for all extremities of an avatar as it would be a much more accurate representation of when someone is in your space.


Unless we rework Contacts UI first, then yes. So we either:

If it isn't a huge burden I think it'd be fine to fit it into the existing interface.

If it is too much work to prioritize now, then having it in a basic form would still be a better alternative to not having it at all- like the existing blocking implementation- incremental improvement could be made down the line once other systems like the contacts UI are worked on.

TisFoolish commented 6 months ago

I agree with Easton that adding it to avatars isn't the best idea as it'll be ripe for abuse. People could even straight up remove it from their avatar if they so wanted.

Accessibility systems like this should also have a standard design, which you can't have with the level of customization Res allows.

Finally another problem with adding them to avatars is that there'd need to be some way to automatically add it to old avatars

shiftyscales commented 6 months ago

straight up remove it from their avatar if they so wanted.

Well as mentioned above- there is use-case and need that a user might not want to indicate they are using this feature, so that wouldn't be a problem.

Finally another problem with adding them to avatars is that there'd need to be some way to automatically add it to old avatars

This would also not be an issue.

should also have a standard design

I agree it is good that it be recognizable universally where possible- that is not necessarily mutually exclusive with allowing it to be customizable. E.g. nameplates are, but we added functionality to display default nameplates as needed- so both can exist.

it'll be ripe for abuse

Generally speaking, we don't let the potential for misuse prevent us from implementing a feature that is otherwise beneficial/of greater good. It's just a matter of weighing the pros and cons. If we didn't implement things that could be abused- we wouldn't have a platform as pretty much any facet of it can be misused- it's just a matter of introducing tooling that allows users to better protect themselves/have the experience they wish to.

epicEaston197 commented 6 months ago

I would be perfectly fine with users being able to customize it but a way to switch it to using the default visual similar to the custom nameplate toggle would be needed

gentlecolts commented 6 months ago

I previously brought this up in #337 among other desired options, and it seems that got bundled into #1103

shiftyscales commented 6 months ago

Yes- generally speaking it is better to focus on one problem/point of feedback per issue rather than bundling a bunch of things together into a single mega-issue, @gentlecolts.

A majority of the things you requested were mostly relevant to/covered by #1103 - but this particular issue/feature can stand on its own, so it has its own issue now, and is not blocked by/dependent on #1103.

RadioFoxProductions commented 5 months ago

I'd love to see a visual indicator for others, so that they know the user can't see them and have it enabled, also possibly a radius adjustment option

shiftyscales commented 2 months ago

In #78 - it was highlighted that there would also be use / desire in having this system temporarily mute users that enter your personal space as well- this sounds like a good addition to the requested functionality here.

Dusty-Sprinkles commented 2 months ago

you may want to have the muting be optional, in case people who use it -only- want to hide the avatars/users that get too close for comfort

shiftyscales commented 2 months ago

Yes- that was my thought, @Dusty-Sprinkles - have it be an option for the system to improve its granularity / cover more possible needs / use-cases for this system.