Difference between revisions of "HPL2/Tools/Level Editor"

From Frictional Wiki
< HPL2‎ | Tools
Jump to navigation Jump to search
(Some clean up)
m
 
(45 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
The Level Editor is our own application to build maps for HPL2-based games. It is comprised of a set of basic object creation and edition modes which make the building task a lot easier.
 
The Level Editor is our own application to build maps for HPL2-based games. It is comprised of a set of basic object creation and edition modes which make the building task a lot easier.
  
== Overview ==
+
==Overview==
  
 
When run, the first screen we get to see is like this:
 
When run, the first screen we get to see is like this:
Line 11: Line 11:
 
Each part of the screen has a specific function, as follows:
 
Each part of the screen has a specific function, as follows:
  
# [[#main_menu|Main menu bar]]: this is where every non-editor command lies, as well as some edition ones.
+
#[[#main_menu|Main menu bar]]: this is where every non-editor command lies, as well as some edition ones.
# [[#editmode_selection_bar|EditMode sidebar]]: here you will find a set of buttons used to switch the current behaviour of the editor. More on this later.
+
#[[#editmode_selection_bar|EditMode sidebar]]: here you will find a set of buttons used to switch the current behaviour of the editor. More on this later.
# EditMode window area: any helper input the current EditMode needs will appear here.
+
#EditMode window area: any helper input the current EditMode needs will appear here.
# [[#viewport_area|Viewport area]]: this area of the screen is reserved for the viewports, which are used to actually see what you are doing to the map. Every viewport has its own menu bar, to control some parameters of the visualization.
+
#[[HPL2/Tools/Viewport|Viewport area]]: this area of the screen is reserved for the viewports, which are used to actually see what you are doing to the map. Every viewport has its own menu bar, to control some parameters of the visualization.
# [[#lower_toolbar|Lower toolbar]]: some tools that are either viewport-dependent or global are located here.
+
#[[#lower_toolbar|Lower toolbar]]: some tools that are either viewport-dependent or global are located here.
  
 
Not listed above are some special windows, used pretty often here:
 
Not listed above are some special windows, used pretty often here:
  
*''' [[:hpl2:tools:editors:save_dialog|Save file dialog]]  
+
*''' [[HPL2/Tools/Save Dialog|Save file dialog]] '''
*''' [[:hpl2:tools:editors:load_dialog|Load file dialog]]  
+
*''' [[HPL2/Tools/Load Dialog|Load file dialog]] '''
*''' [[:hpl2:tools:editors:color_picker|Color Picker]]  
+
*''' [[HPL2/Tools/Color Picker|Color Picker]] '''
*''' [[:hpl2:tools:editors:texture_browser|Texture Browser]]  
+
*''' [[HPL2/Tools/Texture Browser|Texture Browser]] '''
*''' [[:hpl2:tools:editors:sound_browser|Sound Browser]]
+
*''' [[HPL2/Tools/Sound Browser|Sound Browser]]'''
  
== Main Menu ==
+
==Main Menu==
  
 
This is a menu bar, just like in any other windowed application. Available options for this particular editor are as follows:
 
This is a menu bar, just like in any other windowed application. Available options for this particular editor are as follows:
Line 44: Line 44:
 
**'''Duplicate''': This will clone the current selected objects. More details on selection later.
 
**'''Duplicate''': This will clone the current selected objects. More details on selection later.
 
**'''Delete''': This will delete the current selected objects.
 
**'''Delete''': This will delete the current selected objects.
**'''Create''' /'''Destroy compound object''': Use this to create a compound object with the current selected objects, or to destroy the currently selected compound object. More on compound objects [[:hpl2:tools:editors:level_editor:compound_objects|here]].
+
**'''Create''' /'''Destroy compound object''': Use this to create a compound object with the current selected objects, or to destroy the currently selected compound object. More on compound objects [[HPL2/Tools/Level Editor/Compounds|here]].
**'''Search for object''': This will open the [[:hpl2:tools:editors:level_editor:find_objects|Find Objects window]] window. It is useful when you want to find a particular object and don't want to actually look for it.    
+
**'''Search for object''': This will open the [[HPL2/Tools/Level Editor/Find Objects|Find Objects window]] window. It is useful when you want to find a particular object and don't want to actually look for it.
**'''Browse groups''': This will open the [[:hpl2:tools:editors:level_editor:group_window|Group window]]. This one is used to manage groups of objects.
+
**'''Browse groups''': This will open the [[HPL2/Tools/Level Editor/Group Window|Group window]]. This one is used to manage groups of objects.
**'''Level Settings''': This will open the [[:hpl2:tools:editors:level_editor:level_settings|Level Settings window]] window. This is used to add global fog and skybox to a level, also has other tools.
+
**'''Level Settings''': This will open the [[HPL2/Tools/Level Editor/Level Settings|Level Settings window]] window. This is used to add global fog and skybox to a level, also has other tools.
**'''Options''': This will open the [[:hpl2:tools:editors:level_editor:options_window|Options Window]]. You will find general settings for the editor here.
+
**'''Options''': This will open the [[HPL2/Tools/Level Editor/Options Window|Options Window]]. You will find general settings for the editor here.
  
== EditMode selection bar ==
+
==EditMode selection bar==
 
Here you will be able to switch between the different EditModes available in this editor. An EditMode describes the state the editor is going to work in when selected. These five EditModes can be found in this editor and the Model Editor.
 
Here you will be able to switch between the different EditModes available in this editor. An EditMode describes the state the editor is going to work in when selected. These five EditModes can be found in this editor and the Model Editor.
  
* [[Select EditMode]]: this mode is used to select and edit objects.
+
*[[HPL2/Tools/Select Editmode|Select EditMode]]: this mode is used to select and edit objects.
* [[Light EditMode]]: with this mode you will be able to place lights around.
+
*[[HPL2/Tools/Light Editmode|Light EditMode]]: with this mode you will be able to place lights.
* [[Billboard EditMode]]: use this to create Billboards. Light halos, light shafts, and some other
+
*[[HPL2/Tools/Billboard Editmode|Billboard EditMode]]: use this to create billboards; light halos, light shafts, etc.
* [[Particle System EditMode]]: one can add Particle systems to the map with this mode.  
+
*[[HPL2/Tools/Particle System Editmode|Particle System EditMode]]: one can add Particle systems to the entity with this mode.
* [[Sound EditMode]]: used to place sound entities in the map.
+
*[[HPL2/Tools/Sound Editmode|Sound EditMode]]: used to place sound entities in the map.
  
The following EditModes are exclusive to the Level Editor
+
The following EditModes are exclusive to the Level Editor:
  
* [[.:level_editor:StaticObject EditMode]]: this, and the Primitive EditMode, are the actual building tools. StaticObjects (aka level pieces) are placed using this.
+
*[[HPL2/Tools/Level Editor/Static Object Editmode|Static object EditMode]]: this, and the Primitive EditMode, are the actual building tools. StaticObjects (aka level pieces) are placed using this.
* [[.:level_editor:Entity EditMode]]: objects that are interactive, such as doors, boxes and NPCs are created here.
+
*[[HPL2/Tools/Level Editor/Primitive Editmode|Primitive EditMode]]: creates static geometry to be part of the map. Only Planes are currently supported.
* [[.:level_editor:Area EditMode]]: Areas are places that can be used for several ends, like linking to scripts, setting up where the player starts the map, and so on.
+
*[[HPL2/Tools/Level Editor/Entity Editmode|Entity EditMode]]: objects that are interactive, such as doors, boxes and NPCs are created here.
* [[.:level_editor:Primitive EditMode]]: creates static geometry to be part of the map. Only Planes are currently supported.
+
*[[HPL2/Tools/Level Editor/Area Editmode|Area EditMode]]: Areas are places that can be used for several purposes, like linking to scripts, setting up where the player starts the map, and so on.
* [[.:level_editor:Decal EditMode]]: give detail to objects by placing decals on them.
+
*[[HPL2/Tools/Level Editor/Decal Editmode|Decal EditMode]]: give detail to objects by placing decals on them.
* [[.:level_editor:Fog EditMode]]: similar to the Area EditMode, but will place volumes containing a fog effect.
+
*[[HPL2/Tools/Level Editor/Fog Editmode|Fog EditMode]]: similar to the Area EditMode, but will place volumes containing a fog effect.
* [[.:level_editor:Combine EditMode]]: useful for optimizing, creates groups of static geometry that will be loaded by the engine as a whole.
+
*[[HPL2/Tools/Level Editor/Combine Editmode|Combine EditMode]]: useful for optimizing, creates groups of static geometry that will be loaded by the engine as a whole.
  
== Viewport area ==
+
==Viewport area==
This area is meant to actually show what the map contains. There are four viewports in this editor, and their initial setup is shown in this picture:
+
This area is meant to actually show what the map contains. Main article: [[HPL2/Tools/Viewport|editor viewport]].
  
[[.:viewports.jpg|.:viewports.jpg]]
+
==Lower Toolbar==
 +
You can find some useful controls in this bar located at all times at the lower part of the screen.
  
=== Viewport in focus ===
+
[[File:Level-editor-lower-toolbar.PNG]]
 
 
When working on a map, only one viewport will be focused at a time. This is shown by a red highlight around the currently focused viewport (in the picture above, focus is on the lower right viewport). To set the focus on a viewport, just move the mouse into it.
 
 
 
In the Level Editor, some controls for the currently focused viewport is shown in the Lower Toolbar.
 
 
 
=== View Menu ===
 
Each viewport has a "View" menu bar, which includes the following options:
 
*'''Render Mode''': the mode that will be used by the viewport to draw objects
 
*'''Shaded''': drawing will be fully done, using lighting just like ingame. Ortho presets cannot use this mode.
 
*'''Wireframe''': only edge lines for polygons will be drawn in this mode.
 
*'''Presets''': choosing an item from this submenu will reset the viewport to a preset. An ortho preset means that it will use orthographic mode, so no perspective distortion will be seen. All presets reset the camera target to a (0,0,0) position. One out of the following presets can be picked:
 
**'''Front''': ortho preset, scene will be seen from the front.
 
**'''Right''': ortho preset, scene will be seen from the right side of the objects, pointing to the left.
 
**'''Top''': ortho preset, scene will be seen top-bottom.
 
*'''Perspective''': this is the only perspective mode, will reset the camera position to (10,10,10).
 
* '''Show Grid''': toggles showing of the helper grid.
 
* '''Show Axes''': toggles showing of the XYZ axes.
 
 
 
=== Moving and looking around ===
 
 
 
 
 
All movement and looking will be done using the mouse. In a nutshell, there are three basic movements that can be done, all need the 'view' key to be pressed (default left Alt). When this key is held, the red focus frame will turn yellow. These movements are listed next:
 
 
 
 
 
'''Linux Note:''' Left Super (aka "Windows" or Apple key) and the Z key are also the view key as the Alt key is usually bound by the Window Manager.<br />'''Mac %%OS%% X Note:''' A three button mouse is required to use the editor.
 
 
 
''' '''Tumble''': pressing the 'view' key and the left mouse button at the same time will activate the Tumble mode. This means the camera target will stay in place while the camera will orbit around it.
 
''' '''Track''': pressing the 'view' key and the middle mouse button at the same time will activate the Track mode. According to the track mode that is set, this will behave in two different ways:   
 
'''* Tracking lock to grid is disabled: the camera target will move along the current screen plane, meaning it will move left-right or up-down along with the mouse. The camera position will stay the same with respect to the target.
 
'''* Tracking lock to grid is enabled: this allows the user to click on the grid, hold and drag to get a camera displacement. Pretty useful when one wants to cover large distances. This mode is forced in ortho views.
 
''' '''Zoom''': pressing the 'view' key and the right mouse button at the same time will activate the Zoom mode. Moving the mouse forward/backward will then zoom in/out respectively. Note there are limits for zooming in and out. You can also zoom in/out by rolling the mouse wheel up/down.
 
 
 
=== Enlarging a viewport ===
 
 
 
 
 
When working in a viewport, the common thing to do is enlarging it. This can be done by clicking on the 'enlarge button' in the lower toolbar, or pressing the shortcut for it (spacebar).
 
 
 
 
 
More on key shortcuts in [[:hpl2:tools:editors:level_editor:shortcut_keys|here]].
 
 
 
== Lower Toolbar ==
 
You can find some useful controls in this bar located at all times at the lower part of the screen.
 
[[.:lowertoolbar.jpg|.:lowertoolbar.jpg]]
 
  
# Grid Controls:   
+
#Grid Controls:   
''' '''Grid Plane''': cycles through the available grid planes (XZ, XY, YZ).
+
#*'''Grid Plane''': cycles through the available grid planes (XZ, XY, YZ).
''' '''Toggle Snap''' (magnet button): enables/disables snapping for translation (over grid), rotation and scale.
+
#*'''Toggle Snap''' (magnet button): enables/disables snapping for translation (over grid), rotation and scale.
''' '''Grid Height''': height of the plane, measured on the plane normal.
+
#*'''Grid Height''': height of the plane, measured on the plane normal.
''' '''Snap Separation''': separation of snapping points.
+
#*'''Snap Separation''': separation of snapping points.
# '''Enlarge Viewport button''': will toggle enlargement of the focused viewport.
+
#'''Enlarge Viewport button''': will toggle enlargement of the focused viewport.
# Misc controls:
+
#Misc controls(Note: these are not shortcuts):
''' '''A''': toggles global ambient lighting
+
#*'''A''': toggles global ambient lighting
''' '''P''': togles global point light
+
#*'''P''': togles global point light
''' '''LT''': toggles Lock to grid for tracking in focused viewport
+
#*'''LT''': toggles Lock to grid for tracking in focused viewport
''' '''F''': focus on current selection
+
#*'''F''': focus on current selection
# Clip Plane controls
+
#Clip Plane controls
''' '''Selected clip plane''': used to select a clip plane among the available ones.
+
#*'''Selected clip plane''': used to select a clip plane among the available ones.
''' '''Add'''/'''Remove clip plane''' (+/- buttons): adds a new clip plane / removes the selected one.
+
#*'''Add/Remove clip plane''' (+/- buttons): adds a new clip plane / removes the selected one.
''' '''Actual Plane''': cycles through the available planes (XZ, XY, YZ).
+
#*'''Actual Plane''': cycles through the available planes (XZ, XY, YZ).
''' '''Plane height''': height of the plane, measured on the plane normal.
+
#*'''Plane height''': height of the plane, measured on the plane normal.
''' '''Pos'''/'''Neg Button''': sets the culling side of the plane.
+
#*'''Pos'''/'''Neg Button''': sets the culling side of the plane.
''' '''Active''': sets whether the plane should cull objects.
+
#*'''Active''': sets whether the plane should cull objects.
  
== Types of Objects ==
+
==Types of Objects==
 
These are the kinds of objects that you can create and place in this editor. Details on each one and parameter listing in the following links:
 
These are the kinds of objects that you can create and place in this editor. Details on each one and parameter listing in the following links:
  
* [[Lights]]
+
*[[HPL2/Lights|Lights]]
* [[Billboards]]
+
*[[HPL2/Billboards|Billboards]]
* [[Particle Systems]]
+
*[[HPL2/Particle Systems|Particle Systems]]
* [[Sounds]]
+
*[[HPL2/Sounds|Sounds]]
  
The following types are exclusive to the Level Editor
+
The following types are exclusive to the Level Editor:
  
* [[.:level_editor:Static Objects]]
+
*[[HPL2/Static Objects|Static Objects]]
* [[.:level_editor:Entities]]
+
*[[HPL2/Entities| Entities]]
* [[.:level_editor:Areas]]
+
*[[HPL2/Areas|Areas]]
* [[.:level_editor:Primitives]]
+
*[[HPL2/Primitives|Primitives]]
* [[.:level_editor:Decals]]
+
*[[HPL2/Decals|Decals]]
* [[.:level_editor:FogAreas]]
+
*[[HPL2/Fog Areas|FogAreas]]
* [[.:level_editor:Compound Objects]]
+
*[[HPL2/Tools/Level Editor/Compounds|Compound Objects]]

Latest revision as of 20:21, 29 December 2020

The level editor.

The Level Editor is our own application to build maps for HPL2-based games. It is comprised of a set of basic object creation and edition modes which make the building task a lot easier.

Overview

When run, the first screen we get to see is like this:

Leveleditoroverview-small.jpg

Each part of the screen has a specific function, as follows:

  1. Main menu bar: this is where every non-editor command lies, as well as some edition ones.
  2. EditMode sidebar: here you will find a set of buttons used to switch the current behaviour of the editor. More on this later.
  3. EditMode window area: any helper input the current EditMode needs will appear here.
  4. Viewport area: this area of the screen is reserved for the viewports, which are used to actually see what you are doing to the map. Every viewport has its own menu bar, to control some parameters of the visualization.
  5. Lower toolbar: some tools that are either viewport-dependent or global are located here.

Not listed above are some special windows, used pretty often here:

Main Menu

This is a menu bar, just like in any other windowed application. Available options for this particular editor are as follows:

  • File:
    • New: This command will reset the map to an empty one, and the editor to a default state as well.
    • Open: This will load a map file picked in a dialog in the editor.
    • Save: Use this to save your work to a file in disk. Will ask for a file name when no file has been created.
    • Save As: This will also save your work, but will ask for a file name everytime it is called.
    • Open Recent: This will show a list of up to 10 files that have been recently loaded or saved.
    • Import Objects: This will show a file dialog with exported object (.expobj) files. When picked, the objects in the file will be added to the map.
    • Export Selection: This will save the current selection to a .expobj file.
    • Quit: This will exit the program.
  • Edit:
    • Undo: Use this to undo the last action. Note that not everything you can do in the editor is undo-able.
    • Redo: Use this to redo the last undone action.
    • Duplicate: This will clone the current selected objects. More details on selection later.
    • Delete: This will delete the current selected objects.
    • Create /Destroy compound object: Use this to create a compound object with the current selected objects, or to destroy the currently selected compound object. More on compound objects here.
    • Search for object: This will open the Find Objects window window. It is useful when you want to find a particular object and don't want to actually look for it.
    • Browse groups: This will open the Group window. This one is used to manage groups of objects.
    • Level Settings: This will open the Level Settings window window. This is used to add global fog and skybox to a level, also has other tools.
    • Options: This will open the Options Window. You will find general settings for the editor here.

EditMode selection bar

Here you will be able to switch between the different EditModes available in this editor. An EditMode describes the state the editor is going to work in when selected. These five EditModes can be found in this editor and the Model Editor.

The following EditModes are exclusive to the Level Editor:

  • Static object EditMode: this, and the Primitive EditMode, are the actual building tools. StaticObjects (aka level pieces) are placed using this.
  • Primitive EditMode: creates static geometry to be part of the map. Only Planes are currently supported.
  • Entity EditMode: objects that are interactive, such as doors, boxes and NPCs are created here.
  • Area EditMode: Areas are places that can be used for several purposes, like linking to scripts, setting up where the player starts the map, and so on.
  • Decal EditMode: give detail to objects by placing decals on them.
  • Fog EditMode: similar to the Area EditMode, but will place volumes containing a fog effect.
  • Combine EditMode: useful for optimizing, creates groups of static geometry that will be loaded by the engine as a whole.

Viewport area

This area is meant to actually show what the map contains. Main article: editor viewport.

Lower Toolbar

You can find some useful controls in this bar located at all times at the lower part of the screen.

Level-editor-lower-toolbar.PNG

  1. Grid Controls:
    • Grid Plane: cycles through the available grid planes (XZ, XY, YZ).
    • Toggle Snap (magnet button): enables/disables snapping for translation (over grid), rotation and scale.
    • Grid Height: height of the plane, measured on the plane normal.
    • Snap Separation: separation of snapping points.
  2. Enlarge Viewport button: will toggle enlargement of the focused viewport.
  3. Misc controls(Note: these are not shortcuts):
    • A: toggles global ambient lighting
    • P: togles global point light
    • LT: toggles Lock to grid for tracking in focused viewport
    • F: focus on current selection
  4. Clip Plane controls
    • Selected clip plane: used to select a clip plane among the available ones.
    • Add/Remove clip plane (+/- buttons): adds a new clip plane / removes the selected one.
    • Actual Plane: cycles through the available planes (XZ, XY, YZ).
    • Plane height: height of the plane, measured on the plane normal.
    • Pos/Neg Button: sets the culling side of the plane.
    • Active: sets whether the plane should cull objects.

Types of Objects

These are the kinds of objects that you can create and place in this editor. Details on each one and parameter listing in the following links:

The following types are exclusive to the Level Editor: