Leveleditor (WIP)
Comming soon!
Prerequisites
The first thing to do is to create a folder named 'export' in your project directory. This is the root directory for your assets. If you export a mesh from Blender the addon exports all filepaths (for example a .tex file referenced in a .material file) relative to the 'export' folder.
Exporting assets from Blender
In Blender go to 'File -> Export -> ChrisslyEngine-Mesh (.mesh)'. Select the 'export' folder (or any subfolder of it), check any options you wish, and click 'Export ChrisslyEngine-Mesh'.
Creating a level
Go to 'File -> New Level'.
Adding entities
Right click a SceneNode in the World Outliner and choose 'Add Entity'. This opens the asset root directory ('export'). Double click the .mesh file you want load or select it and click 'OK'. Press 'F' to focus the entity.
Adding lights
Right click 'Lights' in the World Outliner and choose 'Create Light'.
Adding collision geometry
Right click 'Static Collision' in the World Outliner and choose 'Add Collision Mesh'.
Keyboard Shortcuts
Shortcut | Action |
---|---|
Del | delete selected Entity, Scenenode, Light or Collision Mesh |
LCtrl + S | save current level |
F | focus camera on selected object in the World Outliner |
LCtrl + Z | undo the last Scenenode transformation |
RAlt + P | play |
Gamepad Shortcuts
Button | Action |
---|---|
Start | play |
Level-Format
world_settings
{
shadow_technique none|texture
shadow_colour "0xe9e0cd"
}
materials
{
"dir/name.material"
"dir/another.material"
...
}
node // this is the root node "current_level"
{
position <x y z>
orientation <x y z w>
scale <x y z>
entity
{
mesh "dir/name.mesh"
cast_shadows true|false
receives_shadows true|false
cull_frustum true|false
animation "AnimationName"
{
enable true|false
loop true|false
weight <f>
}
animation "AnotherAnimation"
{
...
}
}
entity
{
...
}
node
{
...
}
}
light
{
type point|directional|spot
position <x y z>
direction <x y z>
diffuse "0xffffffff"
specular "0x0"
attenuation <range constant linear quadradic>
cast_shadows true|false
shadow_distance <distance>
}
collision
{
"dir/name.mesh"
}
game
{
spawn_point <x y z>
spawn_velocity <x y z>
hero_light_cast_shadows true|false
world_bounds <min_x min_y min_z max_x max_y max_z>
}