This page gives a brief overview of the terminology of what types of content that exist in Nebula, and how it is created.
Art content: the content browser
- Mesh – geometry information, such as a cube or an advanced sculpture. Created in an external application and imported as .fbx.
- Shader – shaders are not only pixel shaders (defining the material attributes) but also define vertex and geometry shading, such as the Skinned shader which needs to be applied for a model to be deformed by a skeleton. Shaders can do many things, such as the Vegetation shader (which adds wind-like deformations to the geometry) or the Animated Texture shader (which gives you control over animating the UVs of textures). Shaders are assigned in the Content Browser.
- Model – models connect meshes, shaders and textures together and are edited in the Content Browser.
- Textures – can be applied to a model’s shader material attributes, such as albedo and normal maps. Created in an external application and can be imported as most of the commonly used image file formats.
- Character – holds skeleton and animation data. When a .fbx with skeletal information is imported, a character node is created to store the information about the joints and their animation. One can import multiple meshes skinned to the same skeleton (character Skins). When importing animations, you also define which frames constitute an Animation clip – frame 10-20 might be a walk cycle, for instance, and frame 21-30 might be an idle pose.
- Particles – (?) particle emitters use meshes’ vertices to emit particles into the scene, giving you control over their movement, shading, lifetime, and more. Combining multiple particle emitters through scripting can create interesting effects.
- Physics mesh – physics handles collisions and dynamics in the game. To optimize calculations, the graphics mesh is seldom used in-game, and a simpler mesh (the bounding box cube or a capsule) is used instead. One can also import custom ones through the .fbx import, provided the physics mesh is saved correctly in a folder named “physics” within the .fbx file.
- Exported/converted – while it is intuitive to think of the data viewed in Nebula in terms of the source files used as input (for instance: .fbx files for meshes, and .jpg and other file formats for textures) all such data is converted to Nebula-friendly formats by the Batch Exporter/the Import windows. These files are converted to a different file format – .dds for textures, for instance – and saved in a parallel file structure to the user-created files.
- Post Effects – in the content browser, all light is controlled from here.
Game content: the level editor
- Environment entities – static models which you can place in the level editor to build your level. They are created from the Place Environment Entities window, which is populated with the list of Models created in the Content Browser.
- Light entities – lights, such as point and spot lights, which you light your scene with. They are created from the Light Entities window. The Post Effects settings also
- Game entities – objects with functions the user can modify, such as a character with the functionality to get input from the user to move in the scene. They also include trigger volumes and other, more specialized, functions. Game entities can be created and assigned different graphical models in the Level Editor, and their core functionality is created by Blueprints.
- Blueprints – are a list of properties which can be combined for a certain functionality in-game. There are both specialized properties and more generalized. Piecing together multiple properties can give you a Blueprint with functionality for things like receiving keyboard input from a player, for detecting collisions and simulating physics, or for being able to have Scripts attached to it. Templates are presets of Blueprints with assigned values, such as which graphical mesh to use and which value certain settings should have, etc. Blueprints can be created from within the Level Editor, while creating new Templates require you to work with the .xml files directly.
- Scripts – using the Lua language, this allow you to create custom events and other effects. Scripts are attached to a Game entity in the Level Editor and can, for instance, be triggered when the entity collides with another object.
- Levels – are essentially an .xml list of all the different entities that have been placed in the scene, along with any extra information – such as their positioning, or custom scripts – which have been attached to them.