What is it?
The VR Content Examples project is a collection of VR examples that can be used to get you started or learning how a certain feature/system could be built. The project is pretty much what the Unreal’s Content Examples project is with some differences in the project structure and implementation of the single systems.
What it ISN’T
The VR Content Examples project IS NOT a template, framework or plug-and-play system. The examples in the project are fully functional but just examples and nothing more. The project does not attempt to replace any full template/framework that you can get from the marketplace or on the forums. If you are looking for a framework, there is a list of incredible ones out there both free and paid.
Marketplace
I attempted to release the project on the marketplace but failed. The project went through 2 stages of quality checking by the guys at Epic and it was all looking great until we hit the third stage. Apparently, (I didn’t know) products on the marketplace cannot be uploaded and sold for free unless they are code plugins or the content that epic makes free for the month or permanently free. Even against this issue I still tried to publish it on the marketplace at the minimum possible price and was planning to add a link on the page to release it for free. During the third stage of the product review, however, the marketplace team got a concern with my description of the product and when I explained my intentions the product got declined. The reason why I really wanted this to be on the marketplace was for maximum visibility since I assume that there will be a ton of people missing out on this.
Why FREE?
This is a collection of mechanics/systems/features that over the years I had to code for personal or work projects. I had a ton of projects sitting in my library each containing one of these examples and, for the longest time, I have been thinking about putting all this into a single project to use as a reference. When I finally decided to actually do it I thought that it would have been good to actually share this with the community. Since these are just examples and not a product it makes sense that the project is just free, plus I love the idea of sharing this.
Project structure
As you open the project you will see that each example has its own folder as well as its own map. Some examples are placed in subfolders if a particular category applies to them (e.g. Locomotion systems). Each example tries to keep as much as possible within the example’s folder, but reusable assets in the project are all placed inside “Content/VRContentExamples/Content”. You will also notice that each example has its own VRPawn and MotionController blueprints, this generates a lot of repeated code but it will also keep the example’s blueprints easy and simple to read. It keeps the examples isolated from any unrelated systems that could generate unnecessary distractions. Also, with such a folder structure, you should simply be able to migrate a single example (together with the required assets) without having to migrate the entire project.
Documentation
Since this is intended as a learning material I will be slowly making youtube videos on the single systems going over how the systems are built and how they work. Even without video explanations, with each example being completely isolated from the others and the blueprints fully commented it should be easy to get an understanding of how the examples work. If you have any questions just ask.
4.24
The project is only available in 4.24 and I will be only supporting one version at the time just to make it easier for me to keep adding stuff to it. Since the project is in 4.24 (I’m sure that most of you know by now and got used to it) watch out for the SteamVRInput plugin which got merged into the engine itself. If you are using a vive or the knuckles controllers make sure that the events used by the example from the project settings input list actually fire before trying to use the example. In a few occasions, I had to actually delete all the SteamVRInput generated files manually and regenerate all of them before getting action mappings to work.
Example List
- VR Valve NEW!!!
- Force Grab Pickup NEW!!!
- HLA Slots Inventory NEW!!!
- HLA Wrist Slot Inventory NEW!!!
- Screen Space UI NEW!!!
- Look teleport locomotion
- Point teleport locomotion
- Blink locomotion
- Dash locomotion
- Walk locomotion
- Jump locomotion
- Snap rotation
- Smooth snap rotation
- Artificial rotation
- Grab rotation
- Widget laser pointer
- Object laser pointer
- Watch menu
- 3D widget
- Bow and arrow
- Door
- Drawer
- Lever
- Object snap to slot
- Object follow spline
- Virtual keyboard
- VR button
Suggestions and Feedback
I’m totally open to suggestions and feedback. Suggestions for new examples should obviously be achievable examples (bad example = implement an entire archviz project, good example = implement a basic climbing mechanic). Feedback is also welcome both in the form of improvements of the systems as well as other aspects of the entire project.
Have a great day