Open World Kit

****Introducing you some work which I do for my current project. For the most part, the **OWK **is related to a procedural world, editing the environment in real time, working with files, and 3D interface.

I’m going to make flexible and very simple system which based on sandbox model. All to create a tool for building a virtual universe. So the name is VR Constructor. Development is still at the stage of testing the hypotheses, functionality and architecture of the platform. I’m sure that almost all of you can handle gray cubes style. Anyways, most of the planned models on my machine could not even load)) Most of the code is written on BP, because the speed of code editing and visibility are priority in my case.

Can’t promise you tutorials (especially video), because I hate this format of information, but I will answer all the questions with pleasure and try to explain how I achieved any feature. As soon as the features are ready I’ll post them in this topic.

**1) Procedural 3D UI. **

With this, I started working on the Open World Kit. In general, it is supposed to be used with a VR headset and haptic gloves. But since I do not yet have the opportunity to test the work in this configuration, I did something universal. Buttons can be made as follows:

(Leap Motion)

(my UE4 realiazition)

A good designer would turn the rest of the menu into something cute, like a holographic interface from a sci-fi movie, but for the sake of functionality it’s enough.

2) Procedural thumbnails for spawning meshes.

To place objects, you first had to load them into the interface. But I was terribly lazy to create my own picture for each model, and the essence is not in the models. So I just generated thumbnails automatically based on the list of objects that are in the props folder.

3) Procedural mesh database.](

4) Runtime Terrain Generator](

5) Procedural Voxel Terrain.](

6) Building system.

A core system of Open World Kit, allowing the user to place objects, both from database, and their own. Mesh pivot must be placed at the bottom to build correctly. I have not done the switching of the snapping and checking for the overlap yet, but this is a trivia compared to the rest of the algorithm. When placing an object, the mesh material dynamically changes.

7) Snapping building.](

8) Material edit system based on procedural 3D widget.](

9) Procedural Foliage System.

10) Foundation mesh. Terrain changing system.

11) Portals

12) Procedural/runtime Scattering
13) 3D cursor. VR emulation**

This looks cool, although I am not quite clear on what this is going to be useful for (except for Virtual Reality)?

And you may want to change the name, when people hear ‘open world’, they think about an open, large scale environment, not a virtual interface.

I haven’t shown my open world features yet) Today I’m gonna finish terrain editing and after polishing I will post it in a few days :slight_smile:

Look forward to it :slight_smile:

3) Procedural mesh database.

Actually, the database consists of the main menu, for which you can specify pictures and names, and objects for placement. The longest I was busy with the creation of a procedural database for the Constructor, which differs from most open world solutions, in that the user should be able to import their meshes into the engine in the simplest possible way: by copying the fbx model into a special folder. The work is still far from complete, since fbxsdk, and the source code of the engine is still a swamp, but something works… In the near future I want to add more meshes and decompose them into categories depending on the mesh tags.

Oh okay, looking forward to it then! :slight_smile:

4) Runtime Terrain Generator

There are already several similar implementations on our forum, and some of them with free access, but they are all so complex that it’s not so easy to understand the details of algorithm, and even more difficult change them for my purposes. Therefore, I decided that it would be easier to write my own vertex generator, calculate triangles and create a Runtime Mesh based on them. It turned out quite well. Lags and FPS dropping are more likely due to the recording program.

In the future, I want to implement the cherished feature of many developers: the procedural placement of pre-created areas in the middle of the random terrain.

5) Procedural Voxel Terrain.

Since everyone loves voxels so much, it’s not so difficult to remake heightmap into the Minecraft-like world)

This looks pretty nice so far. :slight_smile:

Thanks, man) I forgot to mention that the world is infinite. Once you get away from far chunks, they are removed until you turn back.

7) Snapping building.

This is the most common thing in the building systems. All meshes must have appropriate sockets.

In a good sense, of course, I need to add a predictive snapping here in addition to trace mode)

Added rotation and scaling features for building system.

8) Material edit system based on procedural 3D widget.

Apotheosis of procedural laziness) 3D widget is filled with textures for each material found in the materials folder. Widget location is calculated depending to the size of the mesh being edited. All descendants of the edited mesh inherit the selected material. The widget disappears at a distance from the user.

In my opinion it looks very cool))

A small update while I’m working on magic system: added GUI scroll and zoom feature.

9) Procedural Foliage System.

Maybe this will be useful someday)

10) Foundation mesh. Terrain changing system.

It’s very sad, that you can get all instanced meshes only in the 4.15)

Here you can watch gif at big screen:

  1. Portals are more about VRLD stuff, but maybe I’ll put this in OWK.

love the vr buttons <3

Easiest thing I made for this project :smiley:

12) Procedural scattering.

A crazy tool for runtime level creation which, I think, deserves to be separate project.
Platform scattering.png

You can use masks on any type of mesh, even caves!
0928f223d8439b3279cecead4a54ad757cf6b728.png 7276ccb78439b1e73cfd61e6126a748e9cd1b610.jpeg

I’ve decided to implement blend feature for any amount of masks too.

Other parameters are familiar to any designer)

Please contact me if you are interested in my work: