Developer Update - 11 August 2022

Hello! Welcome to the latest VRChat developer update for 11 August, 2022. For context, you might want to check out yesterday’s update.

Schedule Change

As we mentioned in the previous days, we’re going to change the frequency of these posts.

Starting next week we’ll be posting these twice a week (on Tuesday and Friday) versus the daily schedule we’ve had for the past two weeks.

Eventually we’ll be working our way to doing them just one per week. Once we hit that point, we’ll stay there for the foreseeable future.

Web Login Issues

There’s some issues with logging into the Ask Forums with the VRChat SSO. We’re working on it but thought we’d mention it here. You can still read these posts (and the rest of the Ask forum) without logging in. This got fixed, yayyyyyyyyyyyyyyyyyyyyyy

2022.2.2p2c Release

Due to a few issues, we’ve had to change plans. We aren’t going to release p3 to Live this week. Read more about that in the next section.

However, there are some urgent changes we need to make in order to help with issues that have been affecting our server stability. So, we’re releasing VRChat 2022.2.2p2c tomorrow (jeez, what a version number). No new features in that patch, just those fixes.

2022.2.2p3 Live Beta Updates

So, no new feature release to Live this week. Instead, we’re updating the Live Beta with new features. That’ll happen tomorrow too, soon after the small p2c patch.

We decided to hold the Release of p3 because of various bugs with some included systems that we aren’t confident we can fix in time.

These bugs are severe enough that we call them “blockers” – things that, unless fixed, should not be allowed to go to the Live branch. They’d either cause confusion, break VRChat, or something else we wouldn’t be happy with.

So, enough about the blockers. Instead, let’s talk about what’s going to be in p3, due out tomorrow to the Live Beta branch. Just a warning… it’s a lot. Also some of them still need some review, I’ve marked those with “should be in p3”, just in case we have to yank something out last minute.

Text Chatbox

If you’re not familiar, we’re adding a text chatbox that you can type messages at each other with. We’ve talked about this in a few previous Dev Updates. Here’s the ones with the most info:

Today, we’ve got a few more updates:

By default, chatboxes are only shown for your friends. You can choose to show everyone, or show nobody’s chatbox. If someone’s using the chatbox feature and you have it turned off for them, you’ll see a red “typing” indicator where the chatbox normally would be. If you see someone with that and want to see what they’re chatting about, relax your settings to a more permissive level.

Also, we support OSC input! The OSC endpoints are:

  • /chatbox/input s b Input text into the chatbox. If b is True, send the text in s immediately, bypassing the keyboard. If b is False, open the keyboard and populate it with the provided text.
  • /chatbox/typing b Toggle the typing indicator on or off.

Right now the chatbox’s OSC input endpoint only supports ASCII characters. We want to be able to support UTF-8 via OSC, so we’re going to look into solutions for that.

The chatbox itself supports UTF right now, so the aforementioned issue is only with OSC.

Just to bring you up to date, here’s how the display customization looks right now:

Next, during QA, we discovered that you could use OSC to spam text as fast as OSC updates (about 5Hz), and this could get really annoying:

a super annoying robot speaking gibberish at incredible hihg speed

So we’ve implemented a cooldown system. You can send up to 5 messages per 5 seconds. Exceed that, and you incur a 30 second cooldown:

This number was chosen deliberately. We know people might use OSC to implement some interesting mechanics using a constantly-present chatbox. Since the shortest chatbox display duration is 2 seconds, you should be able to send a new message every 1.5 seconds to avoid triggering the cooldown while also permitting updating without flashing the chatbox:

11Aug2022-ChatboxUpdateText

We’ve also still got to implement a content/profanity filter. That’ll come later. You’ll be able to turn this filter off.

This feature should be in the p3 Live Beta update tomorrow.

Personal Mirror Updates

A bunch of updates to the Personal Mirror have now been merged in. Let’s talk some technical detail, because these changes have trickled down into some new features for world creators.

So, sorted transparency is tricky. To fix the bug where nameplates and world objects show through the personal mirror, some tradeoffs had to be made. In particular, the mirror now functions in two different modes (switched behind the scenes):

If the environment is shown in the masking settings, AND the opacity is at 100%, the mirror operates in “opaque” mode. This means ZWrite is on, it has a shadowcaster, and it will block stuff behind it from rendering. This mode basically “just works” like you’d expect it to.

If the mirror is set to be transparent or is operating in “no environment” mode (probably better known as “player-only” mode), it will switch to transparent rendering. ZWrite off, no shadowcaster, late render queue, and your GPU will give you a mean look.

In this mode, the personal mirror will render over every other transparent object in the world, including transparent parts of avatars - even if they are in front of the mirror plane.

This is the only way we can have the mirror blend correctly with nameplates, since they are rendered the same way for safety reasons. Since the personal mirror is usually going to be fairly close to the local player (and thus it’s correct that it renders over other things!), this tradeoff should make sense in most cases.

So, as a result of these changes, we did some things with mirrors that we can expose to world creators. World creators can now set CameraClearFlags and custom skyboxes on the mirror component. This means better (and more official, less hacky, less prone to breaking) support for these cutout/player-only mirrors that have become so popular.

These changes should be in the p3 Live Beta update tomorrow. The new SDKs won’t be out until later on, though, because (hopefully understandably) our QA team is a little overloaded right now.

Mirror Resolution Changer

Some people apparently have these really nice and fancy headsets with ridiculously high resolutions. Because of how mirrors work, mirrors don’t look super great in them. So, we’ve added the ability to adjust the resolution of mirrors to account for these headsets – or if you just like turning everything up to Ultra no matter what.

You can set mirrors to render at 1/4th resolution, 1/2 resolution, full resolution, and (after confirming a warning saying “hey you might cause some performance problems”) “unlimited” resolution.

“Unlimited” resolution scales up the mirror resolution dynamically with screen space. Take a look:

These changes should be in the p3 Live Beta update tomorrow.

More Favorites

This one’s easy. MORE FAVORITES.


Without VRC+:

Friends: 3 lists * 150 favorites = 450 favorites (2.3x increase)
Worlds: 4 lists * 100 favorites = 400 favorites (1.56x increase)
Avatars: 1 list * 50 favorites = 50 favorites (2x increase)

With VRC+:

Friends and Worlds unchanged.
Avatars: 6 lists * 50 favorites = 300 favorites (3x increase)

These changes will be in the p3 Live Beta update tomorrow.

Camera Resolution Options

This will let you choose which resolution you can set your camera to within VRChat. It’ll have a max of 8K resolution on PC, and 4K on Quest.

This feature will be in the p3 Live Beta update tomorrow.

Camera Smart Rotation

Simply put, this outputs portrait images if you hold the camera in portrait mode.

This feature will be in the p3 Live Beta update tomorrow.

Slider Snapping and QM Audio Percentage Sliders

We’ve heard a lot that the sliders are kind of hard to get to the precise value you like. So, we’ve added a QM option to turn on “slider snapping”.

With this on, sliders throughout the VRChat UI will snap to small increments (usually 5%) so its easier to set those values.

Oh, also, apparently now we’ve got percentage values on the QM audio sliders. neat

These features will be in the p3 Live Beta update tomorrow.

Hide Avatar Globally

This feature allows you to click on someone wearing an avatar, then click a “Hide Avatar Globally” button to hide that avatar on everyone that’s wearing it. The only way this is overridden is if you’ve clicked “Show Avatar” on someone.

This feature will be in the p3 Live Beta update tomorrow.

Keyboard Paste

When we put in Keyboard Copy and Paste buttons we also made it so the keyboard would pop up for certain text input fields, but not all types!

Creators want to be able to control this, so in an upcoming update to the SDK we’ll include that as an option for world input fields. Probably when p3 goes to Live, alongside the mirror update.

Earmuffs for Avatar Audio

People have liked Earmuffs so far, so we’re improving it a bit more.

We’ve added the ability to optionally affect avatar audio sources with the Earmuffs feature.

This change will be in the p3 Live Beta update tomorrow.

Calibration Confirmation Dialog

Sometimes, users with full-body tracking will accidentally click on “calibrate” in their Quick Menu. This forces them to stand up, and (of course) recalibrate.

This is annoying – so we fixed it! Now, under Settings you’ll find an option that allows you turn on a confirmation message that will appear before you enter calibration mode.

This feature will be in the p3 Live Beta update tomorrow.

Action Menu Opening Bug

There’s a bug with the current p3 Live Beta where the action menu won’t open until you open the QM first after a world change.

We fixed that. Will be in the p3 Live Beta update tomorrow.

Quick Menu Informational Headers

You know those headers that appear when you turn on Earmuff mode or Streamer mode? We adjusted their appearance so they’re a bit less obnoxious.

This change will be in the p3 Live Beta update tomorrow.

Gesture Indicator Icons

We’ve updated the icons so they’re easier to see in bright worlds. This change will be in the p3 Live Beta update tomorrow.

Nearclip Fixes

There’s a bug where we use the wrong value for nearclip when a reference camera isn’t defined.

This fix will be in the p3 Live Beta update tomorrow.

Up Next

These features aren’t in the p3 beta, but will be following it up.

Hide Avatars by Distance

We’ve continued to get lots of good feedback on this feature.

We worked on this feature a bit to test and see the impact of breaking animators. There’s a good bit of internal chatter on figuring out the best way to do this without breaking avatars that utilize Write Defaults or are created in ways that would be problematic if the animator broke because of this system. This is ongoing.

There are some other things that we’re addressing with this feature, including increasing the visibility of the “proxy” avatar in some lighting conditions.

Visual Adjustments

Visual Adjustments allows you to do a lot of corrections to the visuals in VRChat intended to accomodate many use cases.

We haven’t talked about this feature much since we introduced it, but here’s how it works right now!

We have three different color blindness filters: Protanopia, Deuteranopia, and Tritanopia. You can also simulate those types of color blindness, so world creators can test their environments to ensure they’re color-blind friendly.

You can adjust the intensity of these effects, and you can also choose to have it affect everything or only affect the VRChat UI.

You can also apply two filters: grayscale, and a retro filter that we slipped in for fun. These work the same way as the other color filters – you can apply it to the world and your UI, or just the UI.

You also have the ability to adjust screen brightness and reduce bloom intensity. Bloom intensity is relative, so it is a 0 to 1 multiplier on top of whatever the world is using. Turning it to 0 will turn off bloom completely, while turning it to 0.5 will cut bloom by half.

This feature is in development. It almost got into p3 but it has some issues that caused QA to bounce it back.

Avatar Haptics

We got a bunch of feedback from people who want to have haptic feedback when you give someone else a pat on the head. We looked into this, and we’ve built a prototype!

Pat someone on the head, touch them on the arm, or grab someone’s tail, and your controller will respond with some haptic feedback. No avatar setup is required for this.

Right now, it only has an “intensity” slider, but we want to implement a few more controls – namely, we want to add the ability to adjust how sensitive detection is to proximity and speed, and also add in the ability to turn the feature on and off with a single checkbox.

This feature has a prototype. It is currently in iteration.

Desktop Camera and Drone Camera

Yesterday, we showed off the Desktop Camera and noted that it was basically halfway to implementing a full drone camera.

Today, we spent some time in design looking into ways that we can map the controls into VR easily. We’re likely going to release the Desktop version first, and then ship the VR version following it (instead of holding the Desktop camera).

Right now, the challenge is getting all the degrees of freedom mapped into VR controllers. There was also some discussion regarding range and clipping the drone through walls – for now, we decided that letting the drone range be unlimited and allowing the camera to clip through walls is probably fine, and we’ll react to feedback as we see it.

Other Stuff

Avatar Scaling

There’s been a whole lot of requests for Avatar Scaling. It’s very clearly a highly requested feature! What might not be clear is that we also really want it too. Internally, we’ve been talking about this feature for years, and we had a prototype in the Avatars 3.0 Beta. However, its implementation wasn’t great and had a few bugs, so we decided to scrub it and come back to it later. The main reasoning at the time was that it was tied to avatars, but we wanted to make sure anyone could use it without having to go hunt down an avatar with that feature built-in.

We’re aware of the avatar scaling people are doing with AV3 systems. We don’t have issues with it! However, you should be aware that as far as we understand the implementation, it is super brittle and any changes, fixes, or upgrades we make to AV3 or IK systems could break it.

Since this method of scaling isn’t supported and relies on undocumented behavior, we aren’t going to be including testing for compatibility in our QA process. In other words, this method of avatar scaling might break unexpectedly, and if it does, we won’t make changes to fix it. I know that sounds kinda harsh, but supporting things like this causes problems later on (example: we basically can’t fix the collider flight bug until we implement actual flight)

However, the existence of this hacky-but-working scaling system (as well as the constant posts here and on our Feedback board) signals that the demand for the avatar scaling feature is VERY HIGH, so we’re taking that into consideration as we examine our options for a native system.

For some context: For a long time, we’ve wanted to offer various different “mutators” to worlds and instances. World or instance authors could choose to allow scaling, flying, teleporting, size-relative motion and more where desired. However, these are all locked behind our UI update (we simply don’t have somewhere to place this kind of configurator right now) as well as a long-awaited update to what we call “VRChat Travel”, where we plan to implement changes to how you create and update instances.

Due to these having prerequisites stacked on prerequisites, we’ve got to be careful with what we implement, and when we implement it, so we don’t have to take something away later on.

All that being said, Avatar Scaling as a feature has no ETA, and it remains very much in the “design” stage of development.

Conclusion

As mentioned above, we won’t be releasing p3 to Live this week. We will, however, be pushing a bunch of features into the p3 Live Beta – so you’ll be able to try them out with your friends anyway.

Hopefully, we’ll be able to push p3 to release early next week.

See you tomorrow!

54 Likes

Thank you again for the great work on these updates, and the great work on keeping the community informed!!

Once again, (I’m sorry), I’d like to recommend the team consider a feature for down the road “World instance history”. It would be great to be able to world hop, or recover from a crash, and make it back to a public instance you were previously in.

Please see the Canny comments for my detailed suggestion on the topic.

Thank you for your time!! Have a great day!!! :slight_smile:

27 Likes

The favorites, finally! <3 Now people can stop complaining about how many avatars they can use, even though we only use 3 or 4 out of the…100 avatars we use now with vrc+ lol

7 Likes

I can’t really say much besides this is more than anyone expected.

7 Likes

Confused on this wording. Does this mean you are patching in the AV3 thing that works/worked with animations and if it breaks later it just wont be worried about until native scaling is added? Or is nothing being done either way until a native system?

2 Likes

Honestly can the option to use the old “High Contrast” Informational Headers be added to the accessibility options? I actually prefer those to these newer, low contrast ones.

1 Like

Appreciate the snapping for volume sliders, any chance a quick mute button can also be added for each volume?

3 Likes

I mentioned this to the people working on the new main menu, so it’s been heard and is being considered.

It means that we know that Franada’s GoGoLoco has a scaling function that apparently works in live VRChat, but it might break if we touch anything it touches (IK, AV3).

We don’t mind that it exists, but if it breaks, we won’t be changing our own stuff to ensure it continues to work.

That section goes on to explain that we’re going to implement native avatar scaling in some way, shape, or form eventually, but not yet.

I’ll pass these on, but no promises, I think we’re running out of room in the quick menu lol

9 Likes

Keep up the great work <3

2 Likes

So no button to turn off post processing entirely? Including tonemapping/color grading.

4 Likes

This doesn’t really seem that useful to those with lots of friends. The current issue with friends favorites (at least in my experience) is that it’s hard to categorize favorite friends into only 3 lists.
If you have a lot of friends with a lot of friend groups, 3 isn’t enough.
Wouldn’t it be better to instead have more lists instead? You can still have more favorites, while also making it easier to sort your friends list. Maybe have like 6 lists * 64 people instead?

2 Likes

Really good features to see! Im excited for the next beta! I wanted to ask about the possibility of having a translation system in the TTT and STT, so that those who speak in other languages (and type in other languages) can read and understand others, this would bring people from other cultures together more, even if it isnt an always correct translation. This is my canny for it. Canny

1 Like

Is there any consideration on doing the stuff on the backend for the time being that would fix existing animations before its added as a full feature?

I see… Gonna plug my canny here if that’s okay… :pensive:

1 Like

I second the other person, I also wish for World Instance History. I also highly recommend adding avatar sesrch, as it saves times, just allow obviosuly only public avatars to be seen. (PLEASE LET PEOPLE NOT ALLOW NSFW AND CRASHER FOR THE SEARCH.) Also I am confused whay do you mean when you said “More Favorites” and putting “Friends”. Does that mean more Favorite avatars FROM friends or just more favoriting friends?

6 Likes

Nope, we think allowing post-processing to be turned off completely is neither wise nor correct.

Yes, it would, but there’s some UI reasons behind why we’re expanding lists rather than adding more lists. Later on, once we’ve got the new Main Menu, we’ll have more freedom to make sorting your friends list better.

We’ve heard this a lot, definitely have seen your post and many other people’s posts on it.

Sorry, I’m unsure what you mean here.

Sorry Sal, we weighed this up for a bit and decided that “Show Avatar” should always be the final filter.

If you’ve got it on for someone, you’re saying “damn my other settings, SHOW ME THIS AVATAR.” Changing that now would be wildly confusing and break the UX flow.

Consider your feedback heard, we’ve noted it!

Super ultra mega giga aware that people want avatar search, haha, we’ll talk more about it later

You can put friends into “favorite” lists in our UI, click on one of your friends and click “Favorite” on their user page.

5 Likes

Can we please have VSync? I believe that will make the game run smoother and the overall experience in VR and Desktop way better. Maybe more performance/graphic settings on Desktop and PCVR?

I think it’s the “We have no plans to support it if it breaks when we add in our own” one. So basically if it breaks it breaks. Which makes sense honestly cause at that point there won’t be a need for people to add it to their avatars anyways, it’ll just exist as a built in feature in-game

Thank you for passing along my suggestion!!! :heart: I truly think people will be more likely to hop from instance to instance, if they can easily make their way back.

Thank you again for all the hard work you and the dev team has put into these updates. I really appreciate the progress that VRChat has been making :slight_smile:

This is So Good! It’s been an asked features for years, and now finally people with stuff like Index or Pimax can enjoy up to glory 8k mirror, lesgoooooo :fire: :fire: :fire:

2 Likes