Developer Update - 31 August 2023

Welcome to the Developer Update for 31 August 2023!

Today’s thumbnail features DrMorro’s incredible world, Epilogue․ Chapter 2. Nothing like going to the snowy village, staring at the factory-church, and contemplating the void in the dark, cold night. :no_mouth:

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

Important Info / Announcements

VRChat 2023.3.2 Released!

We’ve just released VRChat 2023.3.2 today, which includes a ton of stuff, including the VRChat+ UI color customization system, FBT and IK updates, Japanese and German localization, and more!

Check out the full patchnotes available in our docs.

Unity 2022 Open Beta

Our Open Beta is currently testing a version of VRChat running on Unity 2022! This is a change from our current version, which is on Unity 2019.

Unity Upgrade?!

Yep! We do this every once a while to keep up with bugfixes, improvements, and that kinda thing with Unity. Also, they eventually deprecate old versions and since we’re a live service kind of deal, we like to keep up with those fixes.

Also, the editor looks nicer.

Normally, this comes with some issues, like broken content, but this time…

No reuploads are required. All content from Live VRChat works in this build.

We’ve done a ton of work to ensure as much content works as possible. Our Closed Beta testers found a bunch of stuff and we’ve fixed most of it. But we’ve almost certainly missed more stuff, which we’ll need your help to find!

Test your content NOW.

:warning: If you have content you’ve uploaded to VRChat that you want to make sure works fine after a Unity upgrade, test it NOW. :warning:

Submit a bug report if something’s broken.

It is A LOT easier to fix stuff now in Beta than it is to fix after we do a release. So please, please, check your content.

We want to minimize the number of people who say “wtf my stuff is broken!! nobody told me this was happening!!!” on Live release day… :smiling_face_with_tear:

Submit all bugs you find to our Open Beta feedback board. We’ll sort it out.

We are most interested in broken features, broken content, or unexpected differences between 2019 and 2022. We really appreciate well-made bug reports with reproduction steps and examples! Those are the most helpful and have the best chance of getting quick fixes.

We are not releasing a 2022 SDK yet.

Don’t upgrade your projects yet!! Stay on 2019!

Open Beta will remain on Unity 2022 going forward.

This will allow users to use and test Unity 2022 while playing VRChat normally, so you can easily find and then report bugs.

We’ll have builds for all normally supported Beta platforms, and we’ll maintain network compatibility with Live as usual.

Rough Roadmap

Here’s an approximate plan of what you should expect.

  1. Unity 2022 VRChat is in Open Beta right now.
  2. Open Beta will stay on Unity 2022 to continue beta testing and iteration.
  3. At some point during Open Beta, we’ll push a Beta 2022 SDK and provide migration steps. It should be fairly straightforward, especially with the Creator Companion handling it!
  4. Eventually, once we’re OK with the state of Open Beta, we’ll push to Live.

New SDK UI Now in Beta!

SDK 3.3.0 is now available in an Open Beta - you can get it through the the Creator Companion by enabling Prerelease Packages.

This update includes an overhaul to the “Build” tab of the Control Panel:

  • Fully rebuilt the SDK Builder panel with new UI and features
  • Uploading Worlds and Avatars no longer requires entering Play Mode
  • Updating the thumbnail no longer requires a full content rebuild and reupload
  • You can now select any file to be uploaded as a thumbnail
  • A standardized public API has been added for tool developers
  • Content Manager now marks the currently selected world and allows quickly setting any uploaded world as current
  • Countless bug fixes and improvements across Worlds and Avatars SDKs

Important note for Tool Developers

If you’re making tools that integrate with VRChat SDK, pay attention! This is an important release, as it makes quite substantial changes to the SDK internals.

We now provide public APIs for you to integrate with, and we highly recommend migrating your tools to utilize them if you were relying on reflection or similar techniques before.

You can read more about the Public SDK APIs here.

Ongoing Development

Groups Timeline

So, we’ve already got Group Announcements, messages you can send out to your group that inform people that see it. We’ve seen people use these for all kinds of stuff! That’s great!

… but, what if you want to see past posts? What if you only want to announce to certain people?

To answer that question, we’ve been working on the Groups Timeline!

As you can see, the Groups Timeline is a way for you to keep track of the previous posts made to the Groups you’re in!

If you want, you can limit posts in your Group to specific roles:

Use the VRChat Home website to make these posts and select the roles you want to show the posts to.

Of course, you can also view the posts to your group on the web, too!

We can’t wait to see how Groups utilize this new feature. Importantly, this feature will play a big role in our upcoming Creator Economy, and will get further features and additions over time!

By the way, if you like the theme in these videos and screenshots, it’s called “Cooler Than You”! Import it: #5DFF41,#8F108E,#393838,#262626,#A6A6A6,#6C6C6C

Multisampled UI Shader

We’re putting together a Mobile/Supersampled UI shader for world creators!

This shader takes four samples of the underlying texture per pixel, but since it only runs one pass, it’s fast enough to make no impact on mobile. This allows for super crisp text without forcing you to resort to disabling mipmaps, which has performance implications (and can be grainy and distracting).

First, here’s some UI that’s using mipmaps, using a normal unlit shader.

Well that doesn’t look great. Let’s turn off mip generation, maybe it’ll make the text crisper!

Agggggh too crispy, too crispy! Not to mention totally unreadable, and it affects performance.

Let’s instead use the technique described in this blog post:

Ahh, much better.

Let’s compare all three with an animated image:

Supersample_Comparison

As you can see, the Supersampled UI shader is more readable than the normal shader, and doesn’t stab your eyeballs with jaggy pixels like turning off mipmaps does.

Keep an eye out for this shader in an upcoming SDK update!

Behind the Scenes - Android Trailer Production

Hey! @Sai here from the Art team. We usually don’t get to talk about a lot of the stuff we are working on, so we decided it would be a fun idea to give you all a little bit of a behind the scenes look at how we tackle projects, like the animated VRCat section in our Android announce trailer:

Pre-production

This step usually starts outside of the Art team. Another team needs something done by art and writes up the idea, where the assets are going to be used, and any other information that is needed.

In this case, we started out with a loose script that was written up by our Communications team. We take those ideas and start drawing up story boards.

Art_Post_Image_1

Here’s an example of a planned shot. The pink arrow shows camera movement and we roughly sketch in where we want people to be placed.

We do this for the entire length of the video and then talk through it with the team that requested the asset. Feedback is important! Planning goes a long way, and helps reduce a lot of friction further down the production pipeline. We take our time with this step and iterate on it as much as we need.

Production

Now, with our plan in our hands, we can dive into producing the actual video! We usually start out by doing a rough block-in cut. This is just a bunch of building blocks and music put down in the timeline to give us a rough idea of how we want to time the shots. Once again, we take our time with this step so we get a nice end result.

Once the rough block-in is done we start producing the actual parts that are needed to put the video together. In this case, we had a combination of 3D scenes and in-app shots that needed to be put together together into a coherent project.

This project was a bit special because it was the first time we used Blender as a central part in production. All 3D scenes were done in Blender and finalized in After Effects.

Our spaceship was really just a console this whole time. We played you for fools!

Working with Blender allowed us to make use of community plugins which made the project a lot easier. My personal favorite plugin was this one, which allowed us to export data from Objects straight into After Effects. This made tracking video footage onto the phone screens a million times easier, essentially allowing us to skip the entire manual tracking step!

Rigging arms is hard, so we just used Empty Objects instead.

Talking about the phones, we found this really neat Blender node called AOV Output which allowed us to directly export different materials as masks. This was super useful for masking the phone screens, as it included things like motion blur in the mask directly.

Normal render pass on the left and the AOV render pass on the right.

We seperated different sections of the scene into seperate Render Layers and rendered them as seperate passes using the File Output node. This made compositing the entire scene a lot easier. We wouldn’t need to manually rotoscope and mask things.

Here’s the final End Scene color corrected and with Glow, Vignette and Chromatic Aberration.

Post-production

Now with all our shots fully put together and rendered out, it’s time for the final assembly of the video. As this trailer was part of a bigger project (the Android Dev Update), we had to make sure all the scenes would look nice in the final project. We color corrected the final trailer to match the tone of the rest of the video. In this case, we moved our color space a bit towards warmer tones, as the Dev Update is shot in a room with a wooden, warm background. Slot in some music and normalize the gain all throughout the video aaaaaand we have a final product!

Wrapping up

Obviously there’s a lot of work and steps involved in producing a trailer like this, and we can’t outline the entire process because I’d be here writing this up for two days. We hope you enjoyed the small glance into our production pipeline for art projects! If you have any more specific questions, feel free to ask them below!

Conclusion

That’s it for this Dev Update! Our next update is scheduled for September 14th, 2023. See you then! im gonna go play starfield now cya

16 Likes

very nice! good to know that some attention is going towards the sdk, i was starting to think that the build panel was beginning to get a little bit outdated. hope the portal ui refresh is coming along well, by the way.

1 Like

That’s on hold indefinitely, unfortunately. It got deprioritized in favor of other more impactful stuff.

3 Likes

Time to upgrade my project to 2023.3.0a3 :slight_smile:

(pretty good people will keep track what’s happening around groups
Announcement) :+1:

I like the new SDK update. It looks so much better and hopefully streamlines content creation. Also fixes to FBT? Hell yeah, no more feet flying away when working out. Tundra users probably benefit the most here. UI colors means time to make girly UI :3
(You too playing Starfield @tupper? Me too tomorrow on stream)

Game persistence when?? it was said at one point but no updates further then that. It would be huge for game worlds and something even horizon worlds has.

2 Likes

Once it’s done! and not a second sooner.

3 Likes

As a Japanese speaker, I am pleased to see the partial implementation of the Japanese language.:slight_smile:

i hope you enjoy stafield!

1 Like

Oh dang, that Blender / AE plugin looks neat! :eyes: Great to see the breakdown of the production on that!

1 Like

Unity 2022 will bring so many things to play with, can’t wait! Love you guys, cheers!

UI custom colour should be an everyone feature. Let VRC+ people put custom images in their UI, and let everyone recolour to their preference or eyesight needs (current ui theme is psychologically muting, and low contrast - a subject of much complaint).



Glad to see people are picking up on our lord and saviour Ben Golus’ techniques! I’ve been using this inside of my own shader for quite some time (it helps a lot with detail normal aliasing as well), and even built an amplify shader function node for it (though i had help fixing it for sampler macros). Everything he touches seems to turn to gold, and it really does help for sure.


Indefinitely is a harsh word. How people interact and move about worlds is kind of important, and fixing that up / fleshing it out should only take a little while out of one person’s time. Feels like needing more staff, or better yet, a way for volunteers to contribute (free labour :open_mouth:). That said if that’s hands being transferred to performance optimization work, i (and countless others) will take any sacrifice for that.



Honestly i haven’t seen much in unity 2020-2022 that will impact creators much as far as features? Unless you’ve noticed something i and those i talk to haven’t, most of it seems to be under the hood changes and optimizations. Majority of unity development has been focussed on the Scriptable Render Pipelines (SRP, HDRP, URP), which VRChat does not use and may never use (total content apocalypses required, or a VRChat 2).

3 Likes

the new SDK UI looks neat, I do have a question about the thumbnails tho. will we be able to update a thumbnail for already existing content without having to re-upload it or re-start it from scratch?

while portals are pretty important for going from one place to another, i understand; there’s a lot of other things to be focusing on right now, i see you guys have a lot on your plate(s) right now!

Cool. Now that past announcements are going to be a possibility, I’m putting in a Canny suggestion to “auto-delete announcement after X hours/day”. So that way, group members won’t have to worry or panic about old “WE’RE MEETING UP NOW!” announcements.

EDIT: Canny

pretty sure you’d be able to update it using the vrchat website, but even if that’s not gonna be a thing, you can always use vrcx!

Yes, you can upload thumbnails for already-published content without requiring a re-publish.

nice, now I won’t need to re-do the avatars from scratch!

It was originally expected that 2022 will be worse than 2019 due to the partial implementation of Unity

However, after actually experiencing the beta version, do some simple tests

Didn’t find any difference, it’s like 2019 was directly ported to 2022

It was originally expected that the additional overhead caused by too many skins was not observed, for example, the efficiency of both CPU and GPU decreased.

Unfortunately, it is not convenient to analyze the execution process of the GPU, otherwise accurate results can be obtained.

Please update the world preload function soon