This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
gamedev:deigde:editors:world [2020/04/06 18:15] – dragonlord | gamedev:deigde:editors:world [2020/04/07 17:29] – [Height Terrain Panel] dragonlord | ||
---|---|---|---|
Line 40: | Line 40: | ||
Selects the type of world element to operate on. Supported are these element types | Selects the type of world element to operate on. Supported are these element types | ||
- | |||
==== Object ==== | ==== Object ==== | ||
Line 50: | Line 49: | ||
The interface between the mapper and the coder is solely defined by the //Object Class Name//, the //Object Properties// | The interface between the mapper and the coder is solely defined by the //Object Class Name//, the //Object Properties// | ||
- | The //Object Class Name// is the unique name used by the game code to instantiate whatever game object is providing the desired functionality. This can range from physical objects to pure virtual objects like triggers. | + | See //Selection Panel// for further information. |
+ | ==== Decal ==== | ||
- | The //Object Properties// | + | Work on instance of //World Decals//. World decals added to the world are projected onto //Object Classes// they touch. |
+ | |||
+ | //World Decals// add //Decal// resources during game loading. Game scripts are free to add //Decal// resources themselves at run-time to // | ||
+ | |||
+ | |||
+ | ==== Navigation Space ==== | ||
+ | |||
+ | Work on instance of // | ||
+ | |||
+ | // | ||
+ | |||
+ | //Height Terrain Navigation Spaces// add navigation space support to //Height Terrains// resources allow AI to navigate them. This is similar to // | ||
+ | |||
+ | In this mode you can edit the //Height Terrain Navigation Spaces// directly in the world editor in contrary to // | ||
+ | |||
+ | See the // | ||
+ | ==== Object Shape ==== | ||
+ | |||
+ | Work on //Object Properties// | ||
+ | |||
+ | You have to first use //Object Mode// to select the object whose properties you want to edit. Then switch to the //Object Shape// mode. Here you can select from the //Shape// panel the //Object Property// you want to edit. All shapes of all supported properties are shown but only the shapes of the selected property are highlighted to edit. | ||
+ | |||
+ | |||
+ | ===== Work Mode ===== | ||
+ | |||
+ | Selects the type of manipulation to apply to the selected //Element Mode//. Not all work modes are supported by all element modes. | ||
+ | |||
+ | ==== Select ==== | ||
+ | |||
+ | Element selection consists of a list of all //Selected Elements// with one of the selected elements being the //Active Element// | ||
+ | | ||
+ | | ||
+ | * < | ||
+ | * < | ||
+ | * <key>CTRL+A</ | ||
+ | |||
+ | ==== Move ==== | ||
+ | |||
+ | Moves the selected elements along the //View Plane//. | ||
+ | | ||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | |||
+ | ==== Scale ==== | ||
+ | |||
+ | Scales the selected elements along the //View Plane//. | ||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | |||
+ | ==== Rotation ==== | ||
+ | |||
+ | Rotates the selected elements along the //View Plane//. Use //Edit -> Rotation Pivot Center ...// to set how elements are rotated: | ||
+ | * //Rotation Pivot Center Active//: Rotate around position of active element. | ||
+ | * //Rotation Pivot Center Selected//: Rotate around average position of all selected elements. | ||
+ | * //Rotation Pivot Center Individual//: | ||
+ | |||
+ | These key bindings can be used: | ||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | |||
+ | ==== Add New ==== | ||
+ | |||
+ | Add new element to the world: | ||
+ | * < | ||
+ | * < | ||
+ | |||
+ | If you keep the mouse button pressed the mode temporarily switches to //Move// until you release the mouse button. While dragging you can use these additional key bindings: | ||
+ | * < | ||
+ | |||
+ | While moving the newly added element snaps to nearby //Snap Points// of object. If the newly added object also has snap points these will be used for snapping too. Hence each snap point of the newly added object can snap to any snap point of nearby objects. | ||
+ | |||
+ | ==== Height Paint ==== | ||
+ | |||
+ | Paints the //Height Image// of a //Height Terrain//. See the //Height Painting// sub panel in the //Height Terrain// panel for further information. | ||
+ | |||
+ | ==== Mask Paint ==== | ||
+ | |||
+ | Paints the //Mask Image// of a //Height Terrain//. See the //Mask Painting// sub panel in the //Height Terrain// panel for further information. | ||
+ | |||
+ | ==== Visibility Paint ==== | ||
+ | |||
+ | Paints the // | ||
+ | |||
+ | |||
+ | ====== World Panel ====== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | The **World Properties** defines properties applying the world resource as a whole. They work similar to //Object Properties// | ||
+ | |||
+ | |||
+ | //**Path Find Test**// | ||
+ | |||
+ | Allows to test // | ||
+ | |||
+ | The **Start Position** and **Goal Position** | ||
+ | |||
+ | The **Layer** and **Space Type** define which navigation spaces | ||
+ | |||
+ | The **Blocking Cost** defines the maximum cost value before a path is considered blocked and not evaluate further. | ||
+ | |||
+ | Once all parameters are set tick **Show Path** to make the path visible. While visible the path will be updated if the above parameters change. | ||
+ | |||
+ | The **Types** panel allows to define | ||
+ | <WRAP clear/> | ||
+ | |||
+ | ====== Selection Panel ====== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Shows parameters of the selected //Object Class// or // | ||
+ | |||
+ | |||
+ | // | ||
+ | |||
+ | Contains //Object Class// parameters if //Object Mode// is active | ||
+ | |||
+ | The **Selected** field shows the count of selected objects. The **Active** field shows the index of the activate element. Use the spinner | ||
+ | |||
+ | The **Classs** is the unique name of the //Object Class// used by the game code to instantiate whatever game object is providing the desired functionality. This can range from physical objects to pure virtual objects like triggers. | ||
+ | |||
+ | The **ID** is the unique identifier of the object instance. The world editor stores a next-identifier counter for each game world. Whenever a new object is added the next identifier from the counter is assigned. The counter never counts backwards. This way updating game worlds for your game keeps save-states intact. The identifier is shown as hexadecimal | ||
+ | |||
+ | The **Attach** field shows the //ID// of the object this object is attached | ||
+ | |||
+ | The **Scaling** is the scaling factor relative to the base size of the object. The **Size** is the effective size of the object. The two values are linked | ||
- | The // | + | The **Properties** defines a list of **Key -> Value** pairs. They define configurable object parameters |
- | You can change a couple of texture properties using replacements (in the // | + | The // |
The **Skin** defines a replacement skin to use for the texture. A texture replacement is ignore if no skin is assigned. Upon adding a new texture replacement the world editor fills in the skin used by the texture as defined in the object class. | The **Skin** defines a replacement skin to use for the texture. A texture replacement is ignore if no skin is assigned. Upon adding a new texture replacement the world editor fills in the skin used by the texture as defined in the object class. | ||
Line 64: | Line 200: | ||
The **Translation**, | The **Translation**, | ||
- | The **Texture | + | The **Texture |
+ | The **Light Panel** shows helper UI widgets to edit //Object Properties// | ||
+ | <WRAP clear/> | ||
- | ==== Decal ==== | + | ====== Browser Panel ====== |
- | Work on instance of //World Decals//. World decals added to the world are projected onto //Object Classes// they touch. The game scripts decide what object class they will actually affect in-game. The result shown in the editor is thus not fully representative depending on your setup. | + | {{ : |
- | //World Decals// add //Decal// resources during game loading. Game scripts | + | Shows list of //Object Classes//, //Skins// and //Sky//. Two display modes are available: |
+ | Using category display mode the category list of the selected element type is displayed as a tree list. Select a category to display all elements assigned to this category in the list below. | ||
- | ==== Navigation Space ==== | + | Using filter display mode a filter text field is shown. Enter filter to show in the list below all elements matching the filter no matter what category they belong to. The filter is case insensitive plane text. The filter string is matched anywhere inside the element name or path (for skin and sky resources). |
- | Work on instance of //Height Terrain Navigation Spaces//. This adds navigation space support to //Height Terrains// resources allow AI to navigate them. This is similar to // | + | The list below shows the elements. The list can be shown using preview images or as text list only. |
+ | //**Object Classes**// | ||
- | ==== Object Shape ==== | + | If objects are selected in the game world < |
- | Work on //Object Properties// of //Shape// or //Shape List// type. Shapes are stored in an encoded form in object properties. Using this view mode you can edit the content of such properties in a visual way. | + | //**Skin**// |
- | You have to first use //Object Mode// to select | + | If objects are selected < |
+ | |||
+ | If decals are selected < | ||
+ | |||
+ | If an active | ||
+ | |||
+ | // | ||
+ | |||
+ | < | ||
+ | <WRAP clear/> | ||
+ | |||
+ | ====== Height Terrain Panel ====== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | //**Sector**// | ||
+ | |||
+ | Height terrains are split into //Sectors// of equal square size. This allows to split up large terrains into smaller sectors. Each sector store its own image files. | ||
+ | |||
+ | The **Height Terrain** is the file storing the entire height terrain information (*.dehterrain). | ||
+ | |||
+ | The **Height Image** defines the height of sector points and is a greyscale image. The image is best using 16-bit bits per pixel. | ||
+ | |||
+ | The **Visibility Image** defines the visibility of sector faces and is a black-and-white image with pixel values of **1** for visible and **0** for invisible (hole). | ||
+ | |||
+ | The **Base Height** and **Height Scaling** define how the final Y-coordinate of the sector points are calculated. These values are the same for all sectors. | ||
+ | < | ||
+ | |||
+ | // | ||
+ | |||
+ | Defines the //Texture Layers// used by the height terrain. Texture layers are rendered in the order they are defined form the top entry in the list to the bottom entry in the list. | ||
+ | |||
+ | The **Type Number** is a custom number | ||
+ | |||
+ | The **Skin** is the skin to use for rendering the texture. | ||
+ | |||
+ | The **Mask** is the image to store the texture mask in and can be //Painted//. This image is stored to the game data directory and loaded during world loading. The mask image is a greyscale image storing the visibility of the texture at each sector point. A value of **1** paints the texture fully opaque while a value of **0** does not render it at all. Mask values are interpolate across sector faces to obtain smooth transitions. | ||
+ | |||
+ | The **Offset**, **Scaling** and **Rotation** parameters apply a //Texture Coordinate Transformation// | ||
+ | |||
+ | |||
+ | // | ||
+ | |||
+ | Defines a list of //Height Terrain Navigation Spaces// to allow AI to navigate the terrain. See [[gamedev: | ||
+ | |||
+ | Navigation spaces are define using //Convex Faces//. While in // | ||
+ | |||
+ | To delete faces you have multiple ways to do it all done by selecting navigation points then clicking the //Remove// button: | ||
+ | * 1 selected point: | ||
+ | * 2 selected points: All faces using an edge with the two selected | ||
+ | * >2 selected points: The face with all its corner points matching the selected points will be removed. | ||
+ | |||
+ | For each navigation space a list of // | ||
+ | |||
+ | The **Type** value is the same as used for other navigation spaces in-game. | ||
+ | |||
+ | The **Color** is used to distinguish in the edit view which face belongs to which type. The color is not use in-game. | ||
+ | |||
+ | |||
+ | // | ||
+ | |||
+ | Parameters for handling vegetation generation on height terrains | ||
+ | |||
+ | TODO | ||
+ | |||
+ | |||
+ | //**Height Painting**//, | ||
+ | |||
+ | Parameters for modifying the painting of //Height Images//, //Texture Mask Images// and // | ||
+ | <WRAP clear/> | ||
+ | |||
+ | ====== View Panel ====== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | <WRAP clear/> | ||