📜 ⬆️ ⬇️

Beginner's Guide to VR Developers



This guide contains basic links and recommendations that can serve as a starting point for you to master VR development.

1. We study equipment


Ask yourself: are I interested in developing for desktop devices, like the HTC Vive, or are I more attracted to mobile devices like the Samsung Gear VR or Google Cardboard? If you have not yet decided, then read the reviews and think about what is best to choose for your market. If your ideas require motion controllers or high-quality graphics, then focus on VR glasses connected to the computer. Models that today are supported by the Unity, Unreal, and Web engines:

Computer VR:
')

Mobile VR: (a smartphone can be used as a base device)


Web-based virtual reality implementation: (a smartphone can be used as a base device)


Not yet released:


2. We study software


The design for VR is very similar to the design of video games, since in both cases we are dealing with an interactive 3D experience. The difference is that in VR you need to pay special attention to the effect of presence, immersion, non-linearity of the narrative, non-nauseous movement and graphic optimization.

Most VR developers prefer to use game engines (unless they create for VR web, as described below), and from the very beginning they have to choose what to work on. The most popular engines are Unreal Engine 4 (UE4) and Unity . Both have very wide opportunities and are reliable tools. Around both formed active communities with numerous information resources. Both engines allow you to control the 3D environment, import your own content (3D models, images, sound, video), as well as program interactivity and gameplay. There are a huge number of tutorial videos on YouTube, and online tutorials created by both the authors themselves and fans.

Among VR developers, there is no generally accepted opinion that one of these engines is better than the other. Each has its own characteristics. UE4 is considered more optimized in terms of computing, gives a more reliable picture, but has a steeper learning curve. Unity was created at the expense of its capacity to create commercial games, but at the same time it remains more intuitive and effective for novice developers. Unreal Engine 4 can be downloaded and used for free, but the authors will have to detach quarterly 5% of the revenue from the game if it exceeds $ 3000. Unity has several versions of different cost, but you can stop at free Unity Personal. It is advisable to try both engines in order to understand which one suits you best, although it’s hard to be mistaken here, because you always get an excellent and powerful tool.

In addition to the game engines, you can turn to the development of interactive VR web pages. This can be done using the Mozilla's A-Frame markup language, using JavaScript (look in Three.js !), HTML5 and / or WebGL. Similar experiments are underway in Chrome and Mozilla . Web development allows you to display VR content directly on users ’smartphones, so you don’t need expensive additional hardware. Also, you do not have to compile or package the code, you can easily share your creations with friends. If all this seems too time consuming to you, you can start with the simplest editor of Vizor VR scenes, which allows you to draw on a computer and view it from mobile devices.

After you decide on the engine or web application, you need to learn more about your choice. Start with the basics of the programming language your tool uses: C ++ and Blueprints Visual Scripting (UE4), C # (Unity), or custom markup language for web applications. If you are developing for Android, then download Android Studio and try to deploy a training application . In the case of Google Cardboard and Unity, refer to the Google SDK .

The / learnVRdev wiki has links and materials useful for those learning to use engines. It is better to get acquainted with the engine for some leadership, to better feel it, how to manipulate objects in space, and so on. Unity and Unreal have a built-in preview, so you can see at a glance what you did!

3. Create or find art materials.


So, you chose the engine and got a VR device. Now you need graphic content, audio materials, 3D models and animations to fill the virtual world. All this can be found on the net, from popular games (if you do not plan to sell your product), do it yourself or modify the finished materials. Remember that virtual reality requires the most realistic visual and sound design for close research, from different angles, even if the object is stylized or abstract.

3D models


Beginners have two options.

  1. The easiest: use openly available 3D models while you study other aspects of VR development. You can use the contents of the asset stores Unity and Unreal, or search on third-party sites. The beginner has a lot of new information in his head, so it’s better to simplify the learning process for yourself.

  2. Another option: learn how to make 3D models yourself. It's harder, but better in the long run. After all, over time, your projects will become more complex, and sooner or later you will need your own art materials.

Even if you decide to take ready-made sources, you may want to fix them in a 3D editor as a result. Fortunately, there are enough online resources for this. Professional tools can be used for a monthly subscription, comparable to the subscription fee for MMORPG. And there are online guides on all 3D modeling issues (primarily on YouTube ). Use the search on each site! If you need better educational materials, you can subscribe to PluralSight . A lot of useful information can also be found on Reddit, in discussions of various VR communities.


Photogrammetry (3D scanning)


Like VR, three-dimensional photo scanning is another futuristic technology already available for use in cheap mobile solutions. Photogrammetry is the use of numerous photographs of real objects from different angles to build their models. Photos are imported into applications like Agisoft Photoscan , or one of the many solutions from Autodesk, and based on them are generated detailed mesh models. Then, along with color / diffuse texture maps, they can be exported and used as a regular resource in the game engine. The whole process is well shown on YouTube .


Audio and music


Working with sound effects in VR is not too different from working on music and effects in movies and traditional games. As in the case of graphics, you need to focus on realism and quality. The greatest degree of immersion is achieved by placing the sound sources relative to the position of the player, the direction of his gaze. In order for Unity and UE4 to function correctly in terms of sound, they will have to be configured.


4. Implement interactivity


Once you are familiar with the engine and prepare art materials, you will need to figure out how to make your project interactive. I highly recommend first reading about the principles of building UI and UX in virtual reality. Otherwise, your users may get sick of their eyes from bad stereoscopic rendering solutions, or they will be impressed. This can be avoided by simply discarding the text binding to the viewing field, or by placing the player’s camera while driving in a visible capsule (car, spacesuit, cab). And if you want to implement manual control, then I recommend doing everything as realistic as possible - your research and prototyping efforts will be rewarded with a sense of presence.

Useful resources for UI / UX in virtual reality


You will need to master a kind of scripting language. The Unreal Engine 4 uses an intuitive, schematic scripting system Blueprint Visual Scripting . By the way, it will be useful for those who are not too confident in programming at all. A general introduction to Blueprint , this system is powerful enough to make an entire project with it, without writing a single line of code (although you will use a number of programmer's techniques). In general, Unreal uses C ++, and Unity uses C #. Many of those who seek to enter VR development have very little programming experience, so this stage becomes especially difficult.

5. Some last tips


If you are an independent developer, remember - it’s better to start small . When you master the basic things, you can move on to bigger ideas. But start better with the most primitive project . Develop in stages, having created several projects, you will be able to storm more complex tasks much more confidently.

Source: https://habr.com/ru/post/316024/


All Articles