Objects Placement
- 4A Games
Introduction
Let's add objects from the screenshot below.
There are different types of objects that can be placed on levels. We'll cover three: entities (dynamic world objects), static props (static world objects), and effects (special versatile world objects).
Remember: you can add objects from either Entity List window or the Entities panel on the main Toolbar of the Scene Menu.
Let's use the Entities panel. It contains the list of all game objects that can be placed in the scene. By selecting an entity from this list, you can switch the scene tool to the add mode which allows you to place an object into the scene. See the example below:
Adding an Entity
Let's start with adding an entity. For example, let's add a barrel from the example above.
Look for General → entity in the Entities toolbar menu at the top of the screen.
After you place this blank entity, it will appear as a purple box until you set its 3D model property, which will tell it what 3D object to become.
- Select the recently placed entity.
- Go to the Properties window.
- Locate the Base property and rename the object into something more appropriate such as test_entity__barrel_0000.
- Locate the Model property in the list (or type the word model into the Find field of the window).
Click the |...| button to access the Select Model browser window.
- Set it to dynamic\objects\barrels\barrel_01_close
- If you want your barrel to cast shadows, make sure to set Shadow Cast property in the Properties window to TRUE.
- Now you see your barrel!
Since Select mode doesn't allow you to move, rotate, or scale selected objects, it is HIGHLY recommended to hit the "S" key from time to time when roaming around the scene to ensure you stay in the Select mode when not actively transforming objects, preventing accidental transformations and clicks.
If you launch SIMULATION with F5 or Ctrl+F5, you'll notice that the barrel has no collision with the Player and that bullets pass through it. The collision setup is a separate advanced topic but for now let's keep it as simple and basic as possible.
The screenshot above shows the section that governs an entity's Physics behavior.
We want our barrel to be dynamic, collidable, and shootable by the Player and other characters, for now.
In which case, you will want to apply these settings:
- Allow = TRUE: authorize the Physics engine to take this object into account.
- Allow On Detach = TRUE: authorize the Physics engine to take this object into account, if it ever gets detached (leave the default "TRUE" value here for now).
- Kinematic = FALSE: the object will collide and be totally immovable – this is used mostly for scripted objects, for example to prevent accidental disruptions during cutscenes; for the purpose of this lesson we don't mind the real physics of the barrel, so we'll leave it as "FALSE" for now.
- Raycast = TRUE: bullets, interaction checks and lighting will collide ("hit") the object, if set to "TRUE"; the object will essentially feel like an ethereal sprite, if this is set to FALSE.
- Raycast AI = TRUE: the AI vision will be obstructed by the objects (normally turned off just for glass objects and those alike).
Collision Group = base shell: use the standard dynamic collision shell when determining collision with the Player; note that the default value is "no collision shell" which means that the object will not collide with anything at all.
Jumpover Allowed = TRUE: authorize the Player Jumpover Mechanics to take this object into account; by default this is "FALSE" but you may want to set it to "TRUE" for this example.
Once again, the collision setup is a separate advanced topic. If you're actually looking for an in-depth documentation on the matter, be sure to check these pages:
| Game Object PhysX Options |
| Collision Groups |
Adding a Static Prop
Let's add a static prop – an armchair from the screenshot above.
Look for General → static prop in the Entities toolbar menu at the top of the screen.
After you place a blank static prop, it will appear as a red box (purple, if selected) up until you set its 3D model property, telling it what 3D object it should become.
- Select the recently placed static prop.
- Go to the Properties window.
- Locate the Base property and rename the object into something more appropriate e.g. test_static_prop__armchair_0000.
- Locate the Model property in the list (or type the word model into the Find field of the window).
Click the |...| button to access the Select Model browser window.
- Set it to static\furniture\armchair_empire_01.
- If you want your armchair to cast shadows, make sure to set the Shadow Cast property in the Properties window to TRUE.
- Now you should see your armchair!
If you launch the Simulation with F5 or Ctrl+F5, you will notice that the armchair, unlike entities, by default HAS collision with the Player and that bullets go through it.
This is because normally it is the intended behavior for Static geometry, while Dynamic geometry is supposed to be set up individually, for its own "dynamic" purposes.
Now, the collision setup is a separate advanced topic altogether but for now let's keep it as simple and basic as possible:
- Raycast = TRUE: bullets, interaction checks, and lighting will collide ("hit") the object, if set to "TRUE"; the object will essentially feel like an ethereal sprite, if this is set to FALSE.
- Raycast AI = TRUE: AI vision will be obstructed by the objects (normally turned off just for glass objects and those alike).
Override Collision Group = FALSE : use standard static collision shell when determining collision with Player; note that the default value is FALSE which, in this case with static props, means "use the collision form assigned to the model in the Model Editor", which is, 90% of the time, the intended value; if you set it to "TRUE", a separate property will pop up and let you specify which collision group to use instead, similar to how it's set up for entities.
Jumpover Allowed = TRUE : authorize the Player Jumpover Mechanics to take this object into account; by default it's "FALSE" but you may want to set it to "TRUE" for the purposes of this example.
Once again, the collision setup is a separate advanced topic. If you're looking for in-depth documentation on the matter, be sure to check these pages:
Adding an Effect
Now, let's add an effect. For example, a Metro entrance sign from the screenshot above.
Look for General → effect in the Entities toolbar menu at the top of the screen.
After you place a blank effect, it will be shown as a purple box right until you set its 3D model property, telling it what 3D object it should become.
- Select the recently placed effect.
- Go to the Properties window.
- Locate the Base property and rename the object into something more appropriate e.g. test_effect__metro_sign_0000.
- Locate the Model property in the list (or type the word model into the Find field of the window).
Click the |...| button to access the Select Model browser window.
Note that when you try to select a model for an effect type of object, it allows both dynamic and static models to be selected.
This is because effects are special versatile world objects, usually used not just for polygonal 3D art, dynamic, or static but also particles and sounds as well as scripted elements.- Set it to static\wm\plakats\for_station_only_4.
Now you should see your entrance sign!
Note that effects have neither COLLISION nor RAYCAST properties – they are like ethereal sprites by definition.
So, if you want something to be collidable with the Player, consider entities or static props instead!
Adding a Lamp / a Light Object
Look for General → lamp in the Entities toolbar menu at the top of the screen.
After you place a simple lamp, it will show as a white sphere when selected and a lightbulb icon when not selected.
Note that the proper light setup requires fine tuning of many parameters but we'll just increase the Brightness for the purpose of this tutorial to see the interior of the "cabin".
- Select the recently placed lamp.
- Go to the Properties window.
- Locate the Base property and rename the lamp to something more appropriate, e.g. test_lamp__lamp_0000.
- Locate the Brightness property in the list (or type the word bright into the Find field of the window).
Set it to 3.0.
- Now you can visibly see the light, even with the default Weather/Environment that is currently set on the level.
Object Manipulation Controls
Now let's arrange these new objects into a sensible mini-scene.
First, the controls for object interactions:
Left Mouse Button (LMB) click lets you interact with objects and the scene, according to the active cursor mode from the Edit panel:
Option | Shortcut |
---|---|
Select | S |
Add | A |
Move | T or W |
Rotate | E or Y |
Scale | R or H |
Hold and drag to select multiple objects in a rectangular frame. | LMB hold |
Selects multiple objects with each Ctrl + LMB Click changing their status between Selected or Not Selected, just like in most File Explorer applications. | Hold Ctrl + LMB click |
Toggles the Lock Selection Mode on/off while the Active Window is in focus. | Space |
Zooms camera to the selected object. | Home |
Deletes the selected object from the scene (removes it). | Delete |
Cycle through the selected objects, zoom the camera to each of them with each keypress. | Alt + PgUp\PgDn |
Brings up the context menu. Context menu options are VERY dependent on which object is Selected and which one is only Highlighted in the scene. Be sure to get the idea of these concepts below! | Right Mouse Button click (RMB) |
Selecting objects
- Press the "S" key to enter Select mode – or just hit the Select button on a Scene toolbar at the top of the screen.
- When moving the cursor over the object, it will be Highlighted by markers (bounding box). Also, the pop-up tip provides a quick display of its properties.
- To select the object, click it with a LMB click. That makes it Selected.
- It is possible and effective to select one object and then move the cursor over the other – highlighting it and accessing the Context menu with a RMB click:
This way, you can access interaction options between two (or more) objects. One popular choice is Selected → Move to Highlighted.
Since the Select mode doesn't allow you to move, rotate, or scale selected objects, it is HIGHLY recommended to keep hitting "S" key from time to time when roaming around the scene to make sure you stay in the Select mode when not actively transforming objects. This prevents accidental transformations or misclicks.
Highlight Selection
Use the Highlight Selection option in the Tool tab of the Properties window to paint the selected object with a purple color, helping you to clearly see which objects are selected.
This overlay is debug only and, as all other helper debug features, can be hidden or shown with the Ctrl+E shortcut:
Incremental Ray Select Function
Sometimes, objects may be located at the same coordinates with several objects overlapping each other, making it difficult for you to select them properly.
You can find the Incremental Ray Select option in the Tool tab of the Properties window. This option allows you to toggle through selecting the overlapping objects in the sequential order until you select the object that you want.
By default, the object closest to the camera will be selected with the LMB click.
Moving objects
Press "T" or "W" to enter the Move Mode – or just hit the Move button on a Scene toolbar at the top of the screen.
When the object is selected and the Move mode is activated, the Coordinate axis gizmo will appear. Drag the axis with your LMB in order to perform the action specifically for this axis.
Coordinate System Type
You can decide which Coordinate System to apply when Moving, Rotating an object – World, Local, or Screen.
Shortcut – numbers 1, 2, 3 on the keyboard.
Move Snap
You can snap an object to the grid while moving, i.e. move it step by step. To do this, activate the Move Snap button toggle on the Scene Toolbar.
"[" and "]" keys change grid size.
Shortcut – Alt+T.
Copy / Duplicate Object
Hold the Ctrl key while dragging the axis and moving your object. This will move a duplicate object to your desired position.
Regular Ctrl+C and Ctrl+V work, too. Even among different levels or while in SIMULATION and Editor Mode!
Ctrl+V pastes objects at the coordinates where they have been copied from.
Alt+V pastes objects at the current position of the mouse cursor.
Surface-Bound Move
Hold the F key while moving an object to move it along the surface of the geometry.
To do this, select an object, hold the F key, then click and hold LMB to start dragging. If this works correctly, any surface that the object may be placed on will be displayed (vertical axis bound). See the example below:
When the Edge Align option is on (look for the EA button on the Scene toolbar), your object will move along the edge of the surface.
Moving with a bound,that is, moving while holding F key, may prove very effective when you're copying objects from one level to another one e.g. some gameplay elements to a test level.
Say, you copy some stuff with Ctrl+C on one level, then proceed to another one and paste it with Ctrl+V. The objects you paste will retain their original coordinates from the previous level.
If you need them elsewhere, just hold F and start dragging around with LMB – and the new objects will easily travel there right away.
Rotating Objects
Press "E" or "Y" to enter the Rotate mode – or just hit the Rotate button on a Scene toolbar at the top of the screen.
When the object is selected and the Rotate mode is activated, Coordinate axis gizmo is displayed. Drag the axis with your LMB in order to perform the action relatively to this axis.
Coordinate System Type
You can decide which Coordinate System to apply when Moving or Rotating an object – World, Local, or Screen.
Shortcut – numbers 1, 2, 3 on keyboard.
Rotate Snap
You can snap the angle of rotation to 5 degree increments while rotating, i.e. move it 5 degrees at a time. To do it, activate the Rotate Snap button toggle on the Scene Toolbar.
Shortcut – Alt+Y
It's good practice to keep the Rotate Snap set to "ON". This is because, more often than not, you want your rotations to be sharp at 45, 60, 90 and 180 degrees rather than something imprecise like 178 or 36 degrees which will no doubt drive your art department crazy!
Copy / Duplicate Object
Hold the Ctrl key while rotating. As you do this, you can drag a duplicated object to its newly rotated position.
Regular Ctrl+C and Ctrl+V work too. Even among different levels or SIMULATION and Editor Mode!
Ctrl+V pastes the object at the coordinates where they have been copied from.
Alt+V pastes the object at the current position of the mouse cursor.
Scaling Objects
Press "R" or "H" to enter the Scale Mode or just hit the Scale button on the Scene toolbar at the top of the screen.
When the object is selected and the Scale mode is activated, the Coordinate axis gizmo will appear. Drag the axis with your LMB in order to perform the action relative to this axis.
Note that it might be useful to change the Scale factor numerically with the Scale property of the selected object in the Properties window.
The Scale → Uniform flag (set to True by default) will ensure that once you change the X, Y, or Z scale, the other two axes will follow and maintain object proportions.
Please note: it is generally NOT advised to scale anything except special Zone Objects like Restrictors or Scale-Friendly prototype tools such as Edit Geoms. Having said this, it is still possible to scale stuff, albeit for exceptionally rare prototype purposes.
NEVER SCALE GROUPS OR PREFABS!
The engine does "kind of" allow you to do this but 9 times out of 10 the group will become corrupted and/or disproportioned in unexpected ways during the actual SIMULATION.
If you need your objects inside the Group or a Prefab to become larger, it's always better to do it in some other way. For example, ask its creator to expose the Scale value or simply implement the changes to the scale of the objects inside – but not the actual Group object!
Now, it's time to arrange the added objects in a sensible way (for example, as suggested on this screenshot) and hit Ctrl + F5 to run around as Artyom and enjoy your work.
Selection Undo & Selection History
Note, that if you accidentally deselect something, you can easily undo this but NOT through the regular Ctrl + Z.
The editor includes an entirely independent Undo/Redo Selection mechanics which is accessible through green arrow buttons, Undo Selection and Redo Selection.
Exodus SDK © 2005-2023, 4A Games Limited. Developed by 4A Games®.
4A Games® is a registered trademark, and 4A Games Limited, Exodus SDK and their respective logos are trademarks of 4A Games Limited.
Published by Deep Silver. Deep Silver is a division of PLAION GmbH, Austria. Deep Silver and Plaion are registered trademarks of PLAION GmbH.
Metro Exodus is inspired by the internationally best-selling novels METRO 2033 and METRO 2034 by Dmitry Glukhovsky.
All other trademarks, logos and copyrights are property of their respective owners. All rights reserved.
By using this site, downloading or using the Exodus SDK or related content, you are agreeing to be bound by the terms of the End User License Agreement.