Developer Update - 29 June 2023

Welcome to the Developer Update for 29 June 2023!

This Dev Update’s thumbnail features “Dusk”, yet another gorgeous map from prolific world creator Lucifer MStar! It’s that time of year – grab some tea, sit on the porch, and listen to the crickets and frogs as the sun drops below the horizon.

If you’d like to catch up, you can read our previous Developer Update from June 15.

Important Info / Announcements

VRChat 2023.2.3p2 - CUSTOM EMOJI!

That’s right, VRChat Plus subscribers can now upload and use custom emoji! Upload images, set cutouts, and customize animations with tons of pre-existing emoji animations and a few new ones!

VRChat 2023.2.4 Open Beta and Delay

We’ve got an Open Beta out right now! You can check out the release notes here.

Among other things, this update includes Avatar Scaling! That’s right, you can finally scale your avatar using native systems instead of installing a prefab in every avatar you own. Try it out now!

This Open Beta is delayed! It won’t get launched to Live until mid-July at earliest, so it’ll be running for a bit.

ClientSim 1.2.6

ClientSim got an update!

  • Added Camera Stacking (prevents world UI from blocking the clientsim menu and better simulates how our client’s camera works)
  • We made it easier to run a scene without a Scene Descriptor.

VCC 2.1.2

The VRChat Creator Companion got an update, too! It’s now on version 2.1.2.

Among other fixes, we’ve:

  • Added a search bar to the Learn page for quick access to the Creator Docs
  • Updated valid Unity versions and made Unity version errors much clearer
  • Fixed timeout issues with the VCC’s websocket connection to the Unity editor

Boot up VCC now and click “Update” in the bottom left to update your VCC install. Only takes a few seconds!

Ongoing Development

Standard Lite Improvements

Standard Lite is getting a facelift!

All following images are in-development and not final!

After a lot of benchmarking and a deep dive on what Standard Lite is focused on, we were able to restore most of the missing features when compared to Standard!

Firstly (and probably most importantly) reflection probes are in!

You may have previously noticed that shiny objects only really caught the light at extreme angles, and metallic objects would become solid black the majority of the time. These passes are designed to sample from a baked refection of their local environment. When initially targetting weaker hardware on earlier releases, these were left out for performance reasons – but some more recent testing shows little to no difference.

Reflection probes are especially exciting because… it’s retroactive! If you’ve uploaded a Standard Lite avatar at any time, reflection probes will default on.

This doesn’t apply to worlds, though. Next time you update, it’ll be on by default. You can simply disable it with a checkbox like you do for specular reflections.

Also: Proper occlusion support!

Previously you could get a pretty okay approximation by multiplying your Diffuse and AO maps, but now you don’t have to! This also means specular reflections are darkened in the appropriate places.

As a note, occlusion only samples the Green (G) channel, which maintains compatibility with Standard. Metallic and Smoothness use Red (R) and Alpha (A) respectively, meaning you can use the same texture for all 3 slots, saving a ton of VRAM. If you know how to pack textures, you should use this! Editor’s note: im feelin like we should implement a texture packing tool, hmm

We’ve also added detail map support!

Standard allows you to spin up a second set of UV maps (at least for diffuse and normal), mask to certain parts of the mesh, and tile them differently to save tremendously on VRAM.

Common usages including having a shirt where you can see individual threads of fabric (by tiling a tiny texture massively) or fur where you can see every hair – all while only adding an itsy bitsy 256x256 map on top.

Default quality settings for Android in Unity toggle this off (on Standard) at present unless you hack your shader, but we’ll be re-enabling this as well. This means your Standard or Bakery/Standard worlds with detail maps will start working right.

Once again, we recommend packing here! The Detail Mask map uses the Alpha channel, which you could easily pack alongside Diffuse/Emit/Detail Diffuse. Again, this also works on PC!

To keep closer with Standard we also added in bump map scale for both normal maps. There’s (much) less than 1% speed difference for most use cases, and less than 3% difference when using detail maps!

Finally, here’s what the new version of Standard Lite is looking like so far:

We’re continuing to work on the VRChat Mobile/Quest shaders across the board, as those are ripe for improvement.

IK Updates and Improvements

In a future update, the way avatar spines move in full-body will be improving. We’re working to address feedback on the sharp bending of the neck in lock-both mode, and the stiff straightness of the spine in lock-head mode. In addition, chest tracker stability should be improved – it should be harder to get the chest to fold in on itself.

Overall, the goal is to expand the area of over which tracker positions give an appealing result. Of course, you can still break it if you really try…

In addition, the newer IK receives much more influence from the initial shape of your spine (during TPose). This should improve the situation for avatars modeled with non-straight spines.

We’ll be moving to Closed Beta testing very soon! Afterwards, we’ll move to an open ik-beta similar to the one we did in the past. We understand the way your body moves in VRChat is a very personal thing, so we’ll be looking for your feedback once the ik-beta is available!

Avatar World Filter

Avatar worlds will soon be separated both in Search and World rows!

We are currently doing this by detecting terms in the world name. This may change in the future! But for now, using “avatars” in your world name is the best way to get in this category, which most of you are already doing.

We know we already have the ‘avatar’ world tag, but from what we’ve been seeing (and what our data says), that’s really an underutilized feature! So, we’re trying some other approaches.

Conclusion

That’s it for this time around! Our next Dev Update will be on July 20th. The next two weeks are otherwise occupied, partially with one of our two yearly Jam weeks. That’s where the VRChat team is told “stop working on big projects and go make some cool side projects”.

See you next time!

27 Likes

Can’t wait to see the results from this!

8 Likes

I’m looking forward to the IK Beta! I’ve always liked “Lock All” the most EXCEPT for how my neck moved. That was always weird.

But a quick question; I enjoy testing stuff as much as the next guy, but it can get kinda lonely when my friends are on live and I’m testing out novel features. Are any of the Open Betas planned to be ‘Live Compatible’?

Thanks, and happy Canada Day long weekend to the Canadian VRChat fam!!

5 Likes

The ik-beta should™ be live compatible. Support for displaying dynamic spine length was the big thing, and that’s already added to live now with a future live compatible ik-beta in mind.

8 Likes

Is there a reason of why GPU Instancing is not enabled by default on the shader? I thought that was a good way to get some performance and I think even on the documentation you guys tell us to enable it

1 Like

Finally some good news! Hopefully this means no more looking like this when lock all is enabled

from what I’ve looked up doesn’t really work for Skinned Meshes unless they changed that in 2022

1 Like

OMG! :scream: No way! This new VRChat developer update is incredible! :raised_hands::fire: I’m shocked by the amazing news! :exploding_head: Can’t wait to experience all the mind-blowing improvements! :star2::heart_eyes: VRChat just keeps raising the bar! :rocket::100: #VRChatObsessed

Since you are looking at improving standard lite, is there any chance this could get fixed while the teams at it?

All they need is a shadowcaster pass on the PC version of the shader and fog wont break them anymore

1 Like

Seeing as Quest Shaders are being Updated, mind passing along how the Additive Particle shader has been broken for the longest time?

3 Likes

Excited to test the full lock. How much freedom will our necks have with the new full lock?
The video reminded me a bit of hip lock with the slightly stiffer neck. Ive gotten used to the current ik and enjoy how natural the neck moves. I have a precarious way of locking in but it works.

If you guys are working on standard Lite, is there a way for us to get Matcaps added to Standard Lite? That way we can have emissions and Matcaps to it?

1 Like

Any info on DLSS yet? It’s been a couple of months since the last info on that

Edit: I had found my answer

It had been silently discontinued along with other alternatives

Can I recommend we get some sort of very basic transparency support (like a alpha cutout) for Standard Lite, or a entirely new shader type that has transparency support for meshes? It’s one of the few big things that can make or break translation of avatars to quest, and typically isn’t the easiest to work around in alot of cases.

1 Like

DLSS can’t happen because every shader would need to support motion vectors, which just isn’t feasible.

FSR on the other hand I think is planned for after the Unity upgrade. (maybe a dev could chime in on that?)

1 Like

Kung back on the IK hustle, wooo! Great stuff to see.

3 Likes

FSR 1.0 is a literal toggle for all current versions of Unity, unsure of the specifics for 2019, but that’s how it could shake out.

(As a aside Dynamic Resolution for the Quest version seems like a good analog if need be, but this requires VRC finally updating to a later unity to be most effective)

They talked about FSR back in this dev update and the reasoning as to why it’s probably not a priority.

I will say personally it was very dismissive of the actual benefit of FSR, but I can see how it came to the conclusion it did. FSR isn’t magic, but it does do something.

Though I feel it needed to get talked about a bit more, in a comparison piece on with FSR and without, along with quality settings and equivalent resolutions. It unfortunately didn’t try to show off reasoning with examples to look at yourself, so it felt very sped through and just “Take our word for it”.

1 Like

The neck is no longer the “failure point” when both ends of the spine crumple in, so there will be less motion. However besides not serving as a crumple zone, there’s no added stiffening and it will still be able to bend with the overall arch of the spine. In general the neck should participate a little more in the overall spine curve, but shouldn’t crumple.

In the current internal build, the ik solving techniques for lock-head and lock-both have been completely redone, so there are likely to be many small differences. Overall the goal is less crumple and more natural spine curve (which in many cases will end up less straight). Of course you can still get it to wig out if you take your trackers off your body etc.

1 Like