VRChat Upgrade to Unity 2017.4

If you’re a VRChat Creator, you’re probably familiar with the fact that VRChat currently runs on Unity 5.6.3p1. This has been the case since August of 2017, when we upgraded from Unity 5.3. We would like to announce that VRChat is planning to upgrade to Unity 2017.4.15f1 LTS for an upcoming release within the next couple of weeks. We have a special Open Beta available to all users that can be used to test the new version, as well as upload content.

A common question we’re expecting is “Why not Unity 2018?” We’re primarily focused on moving to Unity LTS (Long-Term Support) versions rather than every incremental Unity version. This allows us to ensure that we’ll receive support from Unity in the long-term and that future upgrades go more smoothly. Once 2018 has an LTS version released, we can start looking into moving forward with that upgrade.

We chose Unity 2017.4 LTS because it gets us a lot of fixes, tools, and improvements that have come along with the last year of Unity development. It also allows us to easily upgrade to further Unity LTS versions once they become available. Finally, Unity’s LTS branches ensure that we have support and compatibility for quite some time thanks to the extended support cycle.

As stated above, the upgrade carries with it all of the improvements, fixes, and changes that Unity 2017 included. There’s a lot to see! Here’s some of the more interesting bits:

  • Fixes for Audio/Video sync on Unity Video components (and therefore VRC_SyncVideoPlayer)
  • Support for Unity Store Assets that require 2017.4
  • Much easier version upgrade workflow when the next Unity LTS releases

If you’re interested in checking out some of the more detailed additions, we’ve whipped up this document for you.

Upgrading Content

Technically speaking, Unity upgrades often change the way that the shader and rendering pipeline work, which break shaders on content. When we performed our 5.3 to 5.6 upgrade, our community was significantly smaller and asking users to re-upload all of their content was not as scary of an ask.

VRChat’s Community is now much larger, and asking users to re-upload all of their content is simply not viable. With some very gracious assistance from Unity, we have managed to avoid this issue and move forward with VRChat. Unity provided us with a patch was released in 2017.4.15f1 LTS that allows us to use the shaders included with the AssetBundles you’re uploading to VRChat.

Getting Ahead of the Curve

Even with a careful upgrade process and working with the Unity team, upgrading a large amount of user-generated content is no small feat. There are some things to be aware of that will affect most Community content. The good news is that for these items, a simple re-upload using Unity 2017.4 will fix your issues.

You will want to re-upload your content using 2017.4.15f1 LTS during the Open Beta if:

  • You have mirrors in your world. If you have a mirror in your world in 5.6, the mirror will not display properly in 2017.4. The rest of the world will be fine, but the mirror will be broken.
  • You have baked lighting and you still have the Baked Lights enabled in the scene. Those lights will be set to Mixed when viewed in the 2017.4 client, resulting in the scene having both Baked and Realtime lighting, significantly reducing performance. Re-uploading the world in 2017.4 will fix this issue.
  • You use Real-time GI (Global Illumination) in your world. If you use a 5.6 world in the 2017.4 client, your Realtime GI will not work until you reupload for 2017.4.
  • You use animations in your world or on your avatar that affect rotations of objects. The rotations will not work properly in 2017.4 and have unexpected/incorrect values. Reuploading the world/avatar will fix this problem.
  • Your world or avatar uses Crunch Compression in texture import settings. Textures will appear as black or invisible if they are compressed with 5.6’s Crunch until you reupload using 2017.4’s Crunch Compression. As much as Crunch may help with texture file size, it is typically not compatible between major Unity versions. It will likely break any time we upgrade.

Avatars are a special case right now. If you upload a 2017.4 avatar to an already-existing 5.6 Blueprint ID, it will overwrite that 5.6 avatar. Please upload 2017.4 avatars to a new ID, or else you will not be able to load the avatar in Live (5.6) VRChat! We are working on a fix for this issue.

Updating worlds does not have the problem noted above with avatars. We retain your world AssetBundles by version, and we want you to keep your world’s stats, like popularity. We encourage you to use the same Blueprint ID when uploading a 2017.4 update for your world.

Although this covers a large subset of content on VRChat, it is much less severe than the full-spectrum content wipe that occurred between 5.3 and 5.6.

Additionally, we’re aware of some issues with the 2017.4.15f1 LTS version of VRChat that we’re working on:

  • You cannot switch your microphone from your default recording device when you launch VRChat. Workaround: Set your default recording/communication device in Windows before you launch VRChat. You can configure SteamVR to do this automatically if you’re using a VR headset.
  • As stated previously, if you upload an avatar on 2017.4 to an existing 5.6 Blueprint ID, it will overwrite the 5.6 avatar. Use new avatar Blueprint IDs when uploading 2017.4 avatars by clicking “Detach” on your Pipeline Manager before uploading.

How do I get into the Open Beta?

You can join the VRChat 2017.4 Open Beta by joining our Discord, finding the #open-beta-2017-info channel, and following the instructions there.

How do I install Unity 2017.4.15f1?

Unity Hub is a great tool that allows you to seamless install and work with multiple Unity versions at one time. It will make swapping between 5.6 and 2017 projects very simple. We strongly recommend using it!

Check out our full guide on installing Unity 2017.4.15f1 here, which also includes a guide to migrate from 5.6 to 2017.4 fairly painlessly without losing your content.

Some Final Tips

Create copies of your projects before you import them. Importing a project into a newer version of Unity will make it very difficult/impossible to port it back to 5.6. Keep backups! We cannot help you with reverting your projects.

Do not overwrite your avatar Blueprint IDs. As we stated above, we’re working on fixing this, but for now, create new IDs for your avatars. Do this by clicking “Detach” in the Pipeline Manager on your avatar. If you accidentally write over an avatar, go back to Unity 5.6 and reupload from your 5.6 project.

Testing, Upgrading, and Helping Out

Thank you for helping us test VRChat in Unity 2017. We can’t wait to get this version out to you. Please run it through its paces, upgrade your content, and test things out. If you run into problems, post an issue up on our VRChat 2017 Upgrade Canny board. Feel free to post an issue even if you believe it is a duplicate or minor.

Upgrades are a necessary step to keep VRChat moving forward, and we have worked hard to lessen the impact to our users. We understand if you have questions or concerns, so please let us know via our Canny or our Twitter. We have channels set up on our Discord for discussion regarding the 2017 upgrade. Please share this Blog post as much as possible to those you think should know about it — the more users that see it, the easier our upgrade process will be.

Once again, thank you, and we’ll see you in the Open Beta.