Discord

Creating Assets for MyWorld in Blender

The Basics

MyWorld uses GLB (compressed GLTF) files.

These files support AAA grade texturing, object, bone, and vertex animation, glow channels, and mesh compression. There are many more GLB features not yet supported in MyWorld.

Download the the GLTF exporter for Blender

Instancing

MyWorld objects are instanced, which means you can have hundreds of copies of the same object without affecting performance.

The downside is there are a few rules to upload custom content so that it will work with the instancing engine.

Start Simple

We highly recommend starting with a simple cube and checking that everything works as expected. Apply all transforms, use Texture Atlases, minimize amount of different textures.

If you've made 3d objects for video games you will succeed in making content for MyWorld.

Making Textures editable

By using naming conventions, you can change textures in the scene builder. This is useful when customizing objects, e.g. many identical picture frames with custom images.

UploadMat

Name your texture UploadMat to enable the design-time editor.

UploadEmissive

Enable design-time editor, but use the Emissive (bright) texture channel. Emissive textures shine brightly, glow slightly, and can be seen in the dark. e.g. a TV screen.

VideoMat

Allows you to enter an .mp4 or .webm filename to play video in the texture.

Note: For uploaded files this is limited by upload limits on your account, but you can use external urls if you have CORS policy set on the source (e.g. have videos on a CDN)

Making sub objects accessibly to MyScript

Blender models need to be exported as a single flat mesh with all transforms applied.

The exception is when you want to script subobjects, e.g. you are making a panel with a button, a game with a rotating wheel, etc.

Use a simple hierarchy for your objects:

Now you can use my.find("name"); in MyScript to find the subobject and use it.

Animations

Apply all transforms before creating animations. Because MyWorld can position objects anywhere in a scene, they need a common reference point - 0,0,0.

We prefer Bone animations for best results. Other animations may work, but check on a small example first as not all animations may be compatible with MyWorld at this time.

Optimizing Your Mesh

MyWorld can render a complex mesh fast, and it can render hundreds of copies fast, but rendering many meshes with different textures is slow.

To optimize your mesh, create a single texture atlas and use it for many meshes.

For tiling (e.g. creating grass) using a separate texture is usually unavoidable