Sure, you do a killer job at creating a beautifully rendered still image. But what happens when you turn control of the camera over to your audience? That’s what we’ll explore in this tutorial.
Read on for tips to tackle the unique considerations that come with making assets for virtual reality. We’ll cover scale, placement, geometry, texturing, rigging, and animation - and even show you how one-click exporting from 3ds Max to Sketchfab VR can get you the visual feedback you need quickly.
Real-world scale in VR
Once that VR headset goes on, your viewers automatically expect everything in the VR world to appear at a human-scale height. You can easily adjust the height of the average viewer and the overall scale of your scene in the Sketchfab 3D settings, but it’s good practice to start with the right scale in 3ds Max.
To begin, you'll need to model a simple mesh that simulates a viewer. While your model doesn't necessarily have to represent a real-world height, it’s a good practice to model in a real-world scale. By doing this, you'll be able to move around your scene in 3ds Max to check for obstacles, and the relative heights of other meshes.
In our example, I created this “person” who’ll have to walk through the doorway. Not only does this now act as a guide for clearing the door, but it also approximates the feeling of passing through a doorway in real life and creates a more natural feeling in VR.
Next, we can use the MAXScript exporter to export it to Sketchfab from within the 3ds Max interface.
Once we have our initial test scene in Sketchfab, we can use the 3D settings to change the height of the proxy viewer, which is the height your VR user will see at.
You’ll want to verify that the eye level feels right. Once that’s in place, your VR audience will have a consistent height set as they explore your scene. Here’s the most important thing to remember from this point on: do not scale or modify your proxy viewer in 3ds Max. If you do, it will force you to reset the scale in Sketchfab, so be sure to keep your hands off those settings!
While this example has been deliberately set to real-world scale, it can be interesting to play with scale and proportion. For example, you might want to try making your viewer very small to give your scene and outsized perspective or, on the contrary, let your viewer feel very big in a small scene.
Placement of objects
Once you've established your scale, your next consideration is your scene. VR audiences can move around in your scene and view any object from every conceivable angle. Long story short: if something is accessible in your scene, it’s best not take any shortcuts in modeling it.
Not only is it relatively simple to upload your scene to Sketchfab and verify mesh placement in VR with just your smartphone and a Google Cardboard in this early blocking phase, but it also can be helpful to simulate anticipated movement in 3ds Max. Here’s how to do that.
First, make a camera in Max, and align it with a spline like this:
Next, you'll need to create a camera (Default shortcut Ctrl + C, or go to the Create tab > Cameras > Target Camera.) The placement doesn’t matter at this point, since we’ll be changing it in the next step.
Select the Target Camera, and once again align it to the center of the mesh just as we did earlier with the spline. We’ll then place the camera on the spline and use the spline as a track for the camera to follow.
To establish your spline, start by selecting your camera. Go to the Motion tab and click on Position: Position XYZ, followed by the Assign Controller button.
Be sure to click on the position, otherwise you won’t see the path constraint.
Once you click the Assign Controller button, it will open up a window. Select Path Constraint. This will place the camera on the spline, and it will follow the path.
Click the Add Path button, and then select the spline to use it as a path.
Tada! You’re done.
Clicking on the Play button will rotate your camera around your mesh. This is also a great way to make turntable videos for your 3ds Max meshes. While this was a simple example, using more complex splines will enable you to simulate walk- or fly-throughs and better visualize VR traversal.
One final caution. Even with guided movement, your meshes are open to more scrutiny than they may be in static renders or game engines. It's important to constantly rotate your mesh, and keep checking it from all angles.
What if we don't want viewers to walk around? There are times when we may want to limit the access viewers have in a scene. In the next example, we'll look at how to set up a model from a fixed angle where the viewer can't navigate around inside the scene.
To make this scene usable in VR, we would need to complete model from all angles, and perhaps make something interesting happen in the back of the scene.
Not only should meshes look good from every perspective, but something that can really add to VR scenes is an "Easter egg". For example, on the other side of the castle, there could be a big hole where you could peek in and see some rabbits. Cool, right?
Just as we saw with movement and placement, your viewers can also get up-close and personal with your models. One way to make it more interesting for the viewer is to add more geometry to your scene to help sell it. But that geometry needs to be used strategically.
Let’s start by thinking about your target VR device, such as the Google Cardboard. It is very capable of running a VR scene, but it isn’t the most powerful. Viewers could experience slow frame rates and long load times with complex models.
You can solve this by keeping a balance between geometry and textures. The question we constantly ask ourselves is: Is the part you are working on benefiting the silhouette, or is it a minor detail? If it benefits the silhouette, it should be modeled. If it doesn’t, consider adding the detail through texturing instead. And, if you don't have a clear answer for it, we have a little trick.
Using the image below as reference, ask yourself: should you model the details that are sticking out or can you let the normal map take care of that? By making it completely black you can see the silhouette and make the call.
Texturing can be a bit of a wild card when preparing your scene, as it really depends on the style you’re going for with your scene. As with placement, bear in mind that a VR user can often get really close to your models, so efficiency is key. Try to keep your textures as high-resolution as possible.
Take this scene, for example: http://autode.sk/2qFk4cC
In this example, the creator used photogrammetry to copy a real-life environment in 3D. With texturing this detailed, you can often simplify the mesh.
Animation is vital to bringing your scene to life. But in VR you have some things to keep in mind while creating your animations, since they can easily cause motion sickness.
If the world around the VR user appears to move without them having any control over it, this will likely trigger a negative physiological response. Generally speaking, moving meshes around the viewer is fine, but unexpectedly moving the viewer’s position or the mesh on which they are standing can lead to discomfort. Imagine how you’d feel if the floor dropped out from under you!
While you can intentionally play with these sensations by putting the viewer at the center of movement, it’s best to establish an environment that communicates the expectation of movement, such as a rollercoaster experience.
Another example is a scene that keeps rotating along a cylinder, giving the feeling you're walking along an endless road. Besides moving the camera, small animations throughout the scene can also give it some life.