Installing VRoid Studio and Unity

In this post I give an overview of how to install VRoid Studio and Unity. Both products have installation instructions that I recommend you read though as details can change from time to time. My goal in this post is to give an overview.

Let’s start with the easy one: VRoid Studio.

Installing VRoid

Installing VRoid is straightforward. You download a ZIP, extract it, then run the executable inside. Nothing fancy, no packages or extensions to be installed, no configuration. To upgrade to the latest version, delete the old directory of files, extract the new ZIP, done. The saved Avatars (*.vroid files) are stored in you Documents folder, not with the application, so there is low risk of deleting them by accident. All up this is pretty easy to get going.

New let’s move on to Unity (he he he).

Installing Unity

Before going too far, it is useful to have the right mental model of Unity. Unity is a platform for game developers to use when building games. It is highly modular, supporting both 2D (such as Pacman or Angry Birds) and 3D games (such as Fortnite and Minecraft). I focus on the 3D support.

Understanding the Unity is a games platform is useful when trying to understand some of the complexity of the platform. For example, if you create an animated movie, you design a scene with specific characters in mind. In a game, you may let the player choose their avatars. That means it is important to make characters replaceable. You might have a cut-scene between levels, or do a little victory dance, and it has to be performed by the avatar the player chose to use. The actions however are the same no matter which character is performing them, so it makes sense that animation clips (recorded movements) are independent of characters.

Oh, you will also have to create an account with Unity and periodically renew a license. One of the options is to be an individual contributor not using the software for commercial reasons, which grants a free license to use the platform. (I am not a lawyer, so I do suggest reading the fine print.) This account you can also use to make purchase from the Unity Asset Store.

Unity Hub

There are multiple versions of Unity where there are non-backwards compatible changes between some versions. This means the version number you pick is important. The LTS (Long Term Support) versions are more stable with more compatibility testing, so are good choices to pick. I am currently using 2019.3.12.

If you were a game developer working on multiple games, the games may be dependent upon particular versions of Unity. Because needing multiple versions of Unity installed is somewhat common, Unity Hub was introduced. It can download and install versions of Unity as required.

Packages

Unity has been moving towards pulling features out of the core platform and turning them into optional packages. This can help reduce the core download size, but means real projects frequently need a set of additional packages to be loaded. The more recent versions of Unity include a package manager that make searching for and installing packages fairly easy. Select “All packages” from the drop down, select the package you want to install, then click the “import” button when offered. (I never worry about which parts of a package to import, letting the package recommend sensible defaults.)

There are also some packages and assets from third party vendors which are available from the Unity Asset Store. You can connect to the asset store from a window inside Unity. If you use this approach you can also download and import the assets you select directly from the window which is rather convenient. (Sorry, I am not giving precise instructions for every step – this is more of an overview. There are lots of in depth tutorials on specific topics you can follow.)

The following is a list of packages I recommend installing for creating animations. In general I go for the latest platform and package versions, then stay on that version as long as possible. This avoids upgrade pain as occasionally Unity does introduce non-backwards compatible changes.

  • UniVRM: Allows reading and writing of VRM files. VRM files are the export format from VRoid Studio. They are a standard format supported by a number of VR applications to help promote consistency in the VR space (e.g. for VRChat). Note that VRoid Studio can only expert VRM files, not import them. So you create you characters in VRoid Studio, export them to VRM files, then load those VRM files into Unity. Read the UniVRM documentation for installation instructions. I recommend using the package manager to install the code.
  • Cinemachine: Adds support for advanced camera management, such as virtual cameras automatically tracking characters.
  • Timeline: Adds timeline support to Unity. Timelines are how you create scenes with timing instructions on how to move characters around a scene.
  • Default Playables: Adds some useful tools to simplify simple animations. (Available from Unity for free in the Asset Store.)
  • Unity Recorder: Allows the recording of timelines to a MP4 video file or sequence of images. Note: the created MP4 files was very blurred for me, but there were some forum comments that there was a bug. The other approach is to export the video as a sequence of images (PNG files), which I managed to load into Adobe Premier Pro as long as I started from the filename with “1” – the zero file it failed to recognize as a sequence).
  • Substance in Unity: This is optional. I had some old assets I had purchased a few years back from the Unity Asset Store that depend on this functionality. You may not need it for your own projects. Substance in Unity is available from the Unity Asset Store and was developed by Allegorithmic. (Until I loaded this package I had large numbers of walls etc of location models turn bright pink, indicating Unity could not find the textures for some of the surfaces. Once this package was loaded they all returned to their normal color.

Unwanted Packages

I considered using the following packages (and may do so in the future). However I had some compatibility issues with some of my old assets so I did not use them for now. Unity has a more advanced render pipeline with more functionality, but it also means that some older features may have changed requiring you to work out how to upgrade your project (which can be non-trivial for non-technical folks).

So the following are some packages that I did NOT use:

  • Shader Graph: Adds support for blending between two textures, which can be useful for fading a blush onto a cheek of a face (for example). However I think it means you cannot use the UniVRM toon renderer – so there is some effort to upgrade your VRoid characters to take advantage of the new support. The shader graph also needs the High Definition RP (Render Pipeline). So I achieved the same effect by hacking the UniVRM toon renderer which I will share in a later post.
  • High Definition Render Pipeline (RP): A higher quality render pipeline that can do advanced effects such as fog.
  • High Definition RP Config: Configuration for the High Def Render Pipeline (a separate package for some reason).
  • Lightweight Render Pipeline: A simpler renderer that the high definition renderer builds upon.
  • Universal Render Pipeline: I could not get this one to work I don’t (yet) know enough about why it did not work. I think it is because VRoid includes a VRM/Toon shader that is not compatible.

Conclusions

Unity has a lot of complexity and I am not pretending the above is complete instructions to get your installation working. But hopefully it saves you some time. In a nutshell, install Unity Hub, install a recent version of Unity using Unity Hub, add the above packages from the Package Manager or the Asset Store, then import them into your project. Oh, and wait after each import as Unity recompiles all the code to reflect the changes (which can take a while).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s