# Using The Scenery Editor This page illustrates how to use the Scenery Editor. For a more general overview of the editor functions please see the following page: - [The Scenery Editor](../the-scenery-editor/)   For information about the available objects that can be placed in a scene please see here: - [Objects](../scenery-types/) ### Getting Started In this section we'll outline the general workflow for creating a new scenery package from scratch. Note that the procedure here is *not* meant to be used if you are creating airports, for that you should see the page [Creating Or Replacing An Airport](../../../../samples-tutorials/tutorials/creating-or-replacing-an-airport/). {{% tagged "internal" %}} Also note that if you are wanting to download and edit an airport from the World Hub, then you should follow the procedure outlined on the [Setting Up World Hub](../../../worldhub/setting-up/) page. {{% /tagged %}} {{< callout context="caution" title="IMPORTANT!" icon="outline/alert-triangle" >}} When creating scenery, the user aircraft must be located near or within the zone being edited otherwise you may find that placed assets won't be displayed. {{< /callout >}}   - To start with, you'll need to open the [Project Editor](../../project-editor/the-project-editor/) from the DevMode [Editors](../../../menus/editors/) menu.   - In the Project Editor, select [New Project](../../project-editor/menus/project/#new-project) from the [Project](../../project-editor/menus/project/) menu.   - Give the project an appropriate name and a location to save it to: {{< image-center src="images/2_DevMode/scenery_editor/se_new_project.png" alt="Creating A New Scenery Project In The Project Editor" >}}   - Click the {{< button "Ok" />}} button and you will be asked if you want to create a **Package** or **Import** a package. Selecting the **Package** option will open the **Package Creation wizard** where you will be asked to choose a package type to add: {{< image-center src="images/2_DevMode/scenery_editor/se_new_package.png" alt="Add A New Airport Package Window" >}} In this case you want to click on the {{< button "Custom" />}} button.   - The package wizard will expand to present you with options to give the package a **Name**, a **Content-Type**, and the **Display Name** (this is what will be displayed in the content manager and also on the Marketplace if the package is published). The important thing to note here is that the content-type should be **SCENERY**: {{< image-center src="images/2_DevMode/scenery_editor/se_define_package.png" alt="Define The Package Contents" >}}   - When you click the {{< button "Next" />}} button, you will be shown a new window asking you define an **asset group**. All packages need at least one type of asset to store the required data for the add-on, and in this case it's going to be the [BGL](../../project-editor/asset-types/#bgl) asset type: {{< image-center src="images/2_DevMode/scenery_editor/se_ov_1_createpackage.png" alt="Adding A New Scenery Package To A Project" >}}   - Click the {{< button "Create" />}} button   - In the Project Editor, click on the new package you've just created you'll see in the **Inspector** window that it's all been set up correctly, and you may edit any of the values here if required: {{< image-center src="images/2_DevMode/scenery_editor/se_ov_1_settype.png" alt="Set The Content Type For The Package" >}}   - Next, you want to select the asset group that you added to the package. This will change the contents of the Inspector window to show the **Asset Directory** and the **Output Directory**. The asset directory is where the base project files will be stored and is relative to the main project XML. The output directory is the directory within the "Package" directory where the package will compile the asset groups. Once you have checked that these paths are correct (they should have been auto-created for you, but you may want to change them, although it's not recommended), you can click the {{< button "Load In Editor" />}} button: {{< image-center src="images/2_DevMode/scenery_editor/se_ov_2_loadineditor.png" alt="Set Directory And Load In Editor" >}}   - The scenery editor will open and you can begin adding elements, however we recommend that you first save the project before continuing (from the Project Editor [Project](../../project-editor/menus/project/) menu). {{< callout context="note" title="NOTE" icon="outline/bulb" >}} At this point you would probably want to navigate to the place in the world where you want to add the new scenery, which can be done using the {{< link "../../menus/tools_info/teleport-window/" >}}Teleport Window{{< /link >}} from the {{< link "../../menus/tools/" >}}Tools{{< /link >}} DevMode menu. {{< /callout >}}   If you are loading a previously created add-on package, then you would simply select **Open** from the [Project Editor](../../project-editor/the-project-editor/) menu to open the package, then select the {{< glossterm >}}bgl{{< /glossterm >}} asset group that you want to edit and select the `Load In Editor` option from the inspector. {{< callout context="note" title="NOTE" icon="outline/bulb" >}} When loading a previously created package, you can double-click on any of the elements in the scenery editor content list and be transported to the location of the element. {{< /callout >}} When you have loaded the BGL, the camera will switch to the [Developer Camera](../../../menus/camera/#developer-camera) and the Scenery Editor will open, presenting you with the following window: {{< image-center src="images/2_DevMode/scenery_editor/se_ov_3_editor.png" alt="The Scenery Editor Window" >}} If the camera does not switch automatically to the developer camera you can enable it manually from the [Camera](../../../menus/camera/) menu. The Developer Camera is moved around the world using the mouse and keyboard controls listed below: - **To rotate**: hold the {{< input "Alt" />}} key, **left click{{< mouse-press >}}** and **drag** the mouse. - **To move**: hold the {{< input "Alt" />}} key, **middle click{{< mouse-press "middle" >}}** and **drag** the mouse. - **To zoom in/out**: use the **mouse wheel{{< mouse-press "middle" >}}** or hold the {{< input "Alt" />}} key, **right click{{< mouse-press "right" >}}** and **drag** the mouse. You can find a full list of the controls available from the [Camera Controls](../../../menus/camera/camera-controls/) page. ### Adding An Element To The Scene To add anything to a scene you will need to use the **Objects** window. This is opened from [The View Menu](../menus/the-view-menu/) in the Scenery Editor, although it may open automatically when you load a package into the editor: {{< image-center src="images/2_DevMode/scenery_editor/se_addobj_1_objeditor.png" alt="The Object Editor For Scenery" >}}   To add an item from this window to a scene, you would do the following: - Select the **type** of object to add from the *Object Type* menu at the top. - Select one of the objects of the given type from the **Objects** list, on the left. Note that the list will show objects for the packages that are installed, when appropriate (not all objects are associated with packages). These packages are shown on the right, and you can click on any package - or use {{< input "Ctrl" />}} and/or {{< input "Shift" />}} and click{{< mouse-press >}} to select multiple packages - to see only the objects associated with the selected package(s). - Click the {{< button "Add" />}} button to add it to the scene.   As an example, let's add a **Windmill** somewhere in the world. For this, simply navigate to an area using the Developer Camera then in the Objects window select the Object Type **SimObject**. Then type "windmill" into the filter to find and select the **Windmill** object, then click {{< button "Add" />}}: {{< image-center src="images/2_DevMode/scenery_editor/se_addobj_2_windmill.png" alt="Adding A Windmill SimObject To The Scene" >}} The Windmill object will be added to the scene and will also now be listed in the scenery editor: {{< image-center src="images/2_DevMode/scenery_editor/se_addobj_3_windmillscene.png" alt="The Windmill Object LIsted As Part Of The Scene In The Scenery Editor" >}} Notice that the object is listed with a star beside it (*), indicating that it hasn't been saved as part of the package yet. To resolve this you can click the {{< button "Save Scenery" />}} button at any time, and it's recommended that you do this regularly to prevent any data loss in case of issues or mistakes! Clicking this will open a file window where you can save the file. You'll want to save the file in the same scenery folder you created for the **Asset Directory**, as explained further up on this page (under the root directory for the package), eg: {{< image-center src="images/2_DevMode/scenery_editor/se_addobj_4_save.png" alt="The Scenery Folder In The Root Directory For The Package" >}} You can name the scenery file anything you want, but in general it would be something like "scene" or "scenery". {{< callout context="note" title="NOTE" icon="outline/bulb" >}} After the initial save you can use the keyboard shortcut of {{< input "Ctrl" />}} + {{< input "S" />}} to do a quick save of the current scene in the same file. {{< /callout >}} #### ModelLibs You may also use the [ModelLib](../../project-editor/asset-types/#modellib) asset group in a scenery project to add custom models that can then be used in the scene. It is important to note that when doing this, **the package should be built using the {{< button "Build Package" />}} button in the [Inspector](../../project-editor/menus/view/#inspector) before any objects that it creates can be used in the Scenery Editor.** This should be done *before* opening the Scenery Editor otherwise the new objects may not be available and you will have to close and re-open the Scenery Editor to access the new objects. Also note that if the contents of the ModelLib package sources change (ie: you add a new set of source files to the asset group), you will also need to close the Scenery Editor, rebuild the package, and then open the editor again to have access to those objects. You can find more information on how to create a ModelLib and a static scenery object here: - [Creating An Object](../objects/scenery-objects/#create_object) ### Positioning Scenery Elements Once the object has been initially added you can then fine-tune its **position**, **size** and **rotation** using the different **gizmos** that are available. You can open the gizmos window from [The View Menu](../menus/the-view-menu/) in the Scenery Editor: {{< image-center src="images/2_DevMode/scenery_editor/se_posobj_1_gizmos.gif" alt="The Different Position, Rotation And Scale Gizmos" >}} - **Translate**: This permits you to move the object on the X/Y/Z axis. - **Rotate**: This gizmo lets you rotate the axis around the X/Y/Z axis. - **Scale**: This permits you to scale the object on the X/Y axis. You can also fine-tune the position more precisely using the input fields in the Gizmo window. For more information on this, please see the [Gizmo](../menus/the-view-menu/#gizmo) section of [The View Menu](../menus/the-view-menu/) page.   Finally, the Objects window also has an option at the bottom for **One-click placing**: {{< image-center src="images/2_DevMode/scenery_editor/se_posobj_2_oneclick.png" alt="The Object Window One Click Placing Option" >}} When enabled, this mode allows you to place the same object several times on the ground at the mouse position by **left-clicking {{< mouse-press >}}** the mouse. If you click and hold the mouse, you can then hold down the the {{< input "Ctrl" />}} key and move the mouse to change the **rotation** and/or hold the {{< input "Shift" />}} key to change the scale. ### Selecting Elements Once an element has been placed in the simulation there are multiple ways it can be selected again to be edited. The most basic of these is to simply **click** on it with the left-mouse button{{< mouse-press >}} in the world, which will select it automatically. If there are multiple overlapping objects, then repeatedly clicking the same position will cycle through them so you can select the one you want: {{< image-center src="images/2_DevMode/scenery_editor/se_select_1_multiple.gif" alt="Cycling Through Object Elements By Repeatedly Clicking The Same Position" >}} When you want to select multiple elements in a scene, you can simply **click** the left mouse button{{< mouse-press >}} and **drag** to create a window around the elements. When you release the mouse button, there will be a single [Gizmo](../menus/the-view-menu/#gizmo) in the middle of the selection and any changes made using the gizmo (or in the gizmo window) will affect all of the selected elements. To select multiple *individual* elements, you can hold down {{< input "Ctrl" />}} and then **click{{< mouse-press >}}** the elements you want within the simulation, and they can then be moved/scaled/rotated as if they were a single element too. If you wish to remove an element from the selection you can use {{< input "Shift" />}} + **click{{< mouse-press >}}** on that element.   Another way to select elements is to click on an object in the scene then use the **RMB{{< mouse-press "right" >}} menu** option **Select Similar Objects**: {{< image-center src="images/2_DevMode/scenery_editor/se_rmbmenu_selectsimilar.png" alt="The Select Similar Objects Option" >}} This option will select all objects that have either the same GUID or the same container title as the selected object. You can then operate on these as a group. Finally, you can select a single element from the [The Scenery Contents List](../the-scenery-editor/#the-scenery-contents-list), which will select it in the simulation for editing, and you can double-click the element to move the developer camera to it. You can also use {{< input "Ctrl" />}} + **click{{< mouse-press >}}** to select multiple individual elements, or **click{{< mouse-press >}}** an element then {{< input "Shift" />}} + **click{{< mouse-press >}}** to select consecutive elements in this list. ### Properties Every object element - and group element - that you add to a scene has its own specific **properties** and it's important that you are aware of them, since many objects will require you to add information to the object properties for them to be valid. To open the properties window for any object or group element either use [The View Menu](../menus/the-view-menu/) option for [Properties](../menus/the-view-menu/#properties), or right click on the object in the Scenery Editor window and check the **Properties** box. For objects, a window similar to the following window will open (the exact contents will depend on the object): {{< image-center src="images/2_DevMode/scenery_editor/se_ov_4_properties.png" alt="The Properties Window For A Selected Element In The Scenery Editor" >}} Note that the exact contents of this window will change depending on the type of object element that is currently selected. The properties for each of the different objects are explained from the [Scenery Objects](../scenery-editor-object-types/) page. For a selected group, the following will be displayed (see [Scenery Groups](../the-scenery-editor/#scenery_groups) for more information): {{< image-center src="images/2_DevMode/scenery_editor/se_ov_4_groupproperties.png" alt="The Properties Window For A Selected Group In The Contents List" >}} ### Keyboard Shortcuts There are a number of keyboard shortcuts that can be used when working with the Scenery Editor, which we've listed below for your convenience: - {{< input "Ctrl" />}} + {{< input "G" />}}: Create a new group. - {{< input "Ctrl" />}} + {{< input "Shift" />}} + {{< input "G" />}}: Ungroup. Note that this removes items from the group but doesn't delete the group. - {{< input "↑" />}} and {{< input "↓" />}}: Move an object up/down in the hierarchy group hierarchy. - {{< input "Ctrl" />}} + {{< input "R" />}}: Rename the selected object. - {{< input "Ctrl" />}} + {{< input "H" />}}: Hide the selected objects. - {{< input "Ctrl" />}} + {{< input "Shift" />}} + {{< input "H" />}}: Hide the edition lines of the selected objects. - {{< input "Ctrl" />}} + {{< input "L" />}}: Lock the selected object. - {{< input "Ctrl" />}} + {{< input "F" />}}: Focus the camera on the first selected object. - {{< input "Shift" />}} + {{< input "A" />}}: Add an [Apron Object](../objects/apron-objects/). - {{< input "Shift" />}} + {{< input "L" />}}: Add a [PaintedLine Object](../objects/paintedline-objects/). - {{< input "Shift" />}} + {{< input "M" />}}: Add a [TaxiwayParking Object](../objects/taxiwayparking-objects/). - {{< input "Shift" />}} + {{< input "P" />}}: Add a [TaxiwayPoint Object](../objects/taxiwaypoint-objects/). - {{< input "Shift" />}} + {{< input "R" />}}: Add a [Runway Object](../objects/runway-objects/). - {{< input "Alt" />}} + {{< input "H" />}}: Hide all objects. - {{< input "Alt" />}} + {{< input "Shift" />}} + {{< input "H" />}}: Hide all the edition lines. - {{< input "F2" />}}: Show/Hide the "Hide-Lock by type" sub-window.