Space Building Reference
Getting started with MagicaVoxel
MagicaVoxel is a free 3D pixel art creation tool that can run on Windows and Mac (or under Wine on Linux). It is currently the only way to build content for Cyberdoof.
- First you need to download and install from ephtracy.github.io
- If you are installing on a Mac and experience a blank screen when first opening, follow these instructions to fix
- If you want to jump straight in, download a template space from the publish page, and open it in MagicaVoxel and have a play around
- However, you'll probably want to watch some tutorial videos about how the software works. Check out these awesome tutorials by Pedro Casavecchia
- Once you have something you want to try out in Cyberdoof, click Host Party and under Upload Custom Space select Choose File and browse to your MagicaVoxel project
Building at correct scale
Cyberdoof uses a fixed scale of 10 voxels (volumetric pixel or vx) per meter. This means that a single voxel in your build will be equivalent to 10cm world size.
The maximum build size supported by MagicaVoxel is 2048vx wide by 2048vx deep by 1024vx high. Cyberdoof also supports up to this size, however depending on build density, you may encounter performance issues on builds this size. Please email hello@cyberdoof.com to report any such issues.
Adding video screens and audio sources
To create a screen:
- Create an object inside of MagicaVoxel (using + button in world view)
- Select this object by double-clicking and then change the dimensions of the object and position where you want the screen to be (the actual voxel content will be ignored and replaced with a box with video on all sides)
- Find the object using Project > Show Scene Outline
- Name the object with prefix
video:
followed by whatever you would like the target to be named inside of the Cyberdoof Stream Panel (e.g.video:Main Screen
)
Adding an audio source is very similar:
- Name the object with prefix
audio:
followed by whatever you would like the target to be named inside of the Cyberdoof Stream Panel (e.g.audio:Stage
) - Unlike a video target, this object will render normally, except you will be able to stream spatial audio from the position. You can choose to leave it empty or make an object design that represents an audio source (e.g. speaker)
Lighting and atmosphere
Cyberdoof tries to match the sky, sun position and lighting of your MagicaVoxel scene as much as possible. However, since they use very different rendering systems, there will be a number of differences that will require experimentation to get just right.
The following environment and scene options are supported:
- Sun Angle and Intensity
- Sky modes Uniform (intensity and color) and Atmospheric Scattering (Rayleigh and Mie options, but currently not color or ozone)
- Display Settings > Ground Color and Ground Material (Alt+Click on ground in Render Mode to edit material)
- Fog Density (this effect is quite different in Cyberdoof, so you'll need to experiment to get the desired result in your space)
- Color palette materials Metal and Glass materials have limited support (the individual settings don't do anything right now, but selecting metal will make things shiny and glass will make it semi-transparent)
- If ground material is set to Metal, the ground will be rendered and treated as water (including ripples, reflection and swimming avatars)
Emissive materials cast light much like they do in MagicaVoxels and you can set the brightness of the light source using Emission option. However there are a few differences:
- The power (radiant flux) option is not currently supported. All lights will render at a power level of 2 no matter what has been selected.
- Cyberdoof uses a simplified lightfield model where light has volume but not direction (whereas MagicaVoxel does full raytracing for all emissive materials).
Controlling where avatars spawn
By default avatars will spawn in a random location near the center of your space. However if you prefer, you can use special objects to set locations for avatars to spawn.
- Add a new object to the scene representing the location you would like avatars to spawn
- Find the object using Project > Show Scene Outline
- Name the object
spawn:default
(in the future, you will be able to create named spawn points which can be linked to in the invite URL) - Create as many objects named
spawn:default
as you like -- when people join using the invite link, they will spawn randomly at one of these locations
Making interactive and wearable items
Turning an object into an item is much like adding other types of special objects:
- Find the object using Project > Show Scene Outline
- If you just want to go with the defaults, add
item:
to the start of the objects name- The text after
item:
will appear to guests when they hover their mouse over the item (e.g.item:Magical Sword
) - this item will attach to your hand by default, but can be moved to head or back
- it will be scaled to half of the voxel size (so it will appear oversized in MagicaVoxel)
- The text after
Add a /type
option to customize the item behavior:
item/stick:
hold the item like a glowstick and wave it arounditem/glove:
item wraps around hand and can be waved arounditem/lantern:
the avatar will hold the item up in front of them like a lanternitem/helmet:
the item will cover the entire head of the avatar like a helmet and be attached to head by defaultitem/face:
the item will attach to the face of the avatar like a mask (and can be placed on walls)item/backpack:
item is attached to avatar's back by default (and can be placed on walls)item/wall:
a regular item but can be attached to wallsitem/fixed:
a regular item but cannot be picked upitem/jetpack:
attaches to back by default, emits fire emoji and allows avatars to fly whenspawn=grounded
option active
Items default to 0.5
size, however you can set any scale you want using =SCALE
option
- e.g. if you want to scale to one quarter you would name your object
item=0.25:Display Name
- if you want to set the scale and an item type, you'd do this:
item/lantern=0.1:Display Name
Adding palette color animations
- Open the notes panel by clicking the â–¶ twirl button under Palette on the far left of MagicaVoxel's user interface
- Setup the 8 colors you want as part of your cycle on any row in the palette
- Use these 8 colors as slots in your scene, with each color in the row acting as a step offset in the cycle
- Add a note on the chosen row:
cycle:
cycle in order through your 8 colorsrandom:
cycle randomly through your 8 colorsfreeze:
no animation- these more advanced animations are best used with multiple cycle columns in your scene:
offset:
animates filling all slots with the same color before moving to next color in sequence, best used withchase:
cycles through each slot only allowing one to be emissive at a time (like a light chase)
- If you want to add a fade to the animation:
- add
/fade
for smooth transition between colors (e.g.cycle/fade:
) - or
/ping
for emissive flashing ramp effect (e.g.cycle/ping:
)
- add
- Step duration time defaults to 500 ms, but you can change this adding an
=DURATION
option- e.g.
cycle/fade=2000:
for 2000 ms (2 second) delay between animation steps with fade - e.g.
cycle=50:
for 50 ms (0.05 second) delay between animation steps
- e.g.
Customize collisions and climbable surfaces
collider:
makes the vox fully solid regardless of what is in it (invisible walls!)no_collider:
makes the entire vox not solid (opposite of collider)climbable:
makes an object's vertical surfaces climbable (good for ladders, vines etc)slippery:
makes any slope on an object unclimbable, the avatar will slide down whenever attempting to walk/jump up surface