A Room in HeroEngine is not so much a discrete location, as a way of grouping assets to indicate what can and can't be seen from any particular location. It is a subset of an area, and is used to segregate the graphical elements of the Area. The purpose of the segregation is two-fold:
- Rooms can be "turned off" so that the graphical elements are not displayed. Each room, therefore, knows which other rooms can be seen from it (this is established by the team designing the area). The idea is to have as little turned on (i.e. being rendered) as possible at one time. This vastly improves frame rate. Care must be taken to divide areas into rooms such that they maximize this advantage without showing any artifacts (such as "popping" geometry). For more information on optimizing frame rate, please see the section at the bottom of this page on Visibility.
- Each room can have a different Environmental Scheme. This lets different areas have unique ambient, diffuse, and fog lighting settings. This is very useful for indoor vs. outdoor parts of an Area.
Although called a "Room", this grouping of 3D assets has nothing to do with being indoors. A Room is just an arbitrary collection of visuals that can be individually turned on or off (according to which room is currently active) and have unique lighting settings.
When placing graphical elements in Rooms, it is good form to keep the elements of each Room geographically separate from elements in other Rooms, so that when multiple Rooms are visible, their respective elements do not overlap with each other. Connecting with other Rooms is excellent, but elements should not overlap in the same space.
The way to do this, is by clicking on "Add" on the Area Panel
When a new area is created, it will have two rooms:
- Everywhere Room, which can be used to store assets which must be visible from all rooms
- Default Room, a starter room to get the area started. This room is a normal room in all respects, and can be used, renamed, removed, or ignored.
When naming new rooms:
- Names may NOT contain spaces
- Names are not case-sensitive
- Organizational structure of room names is up to you. One possible name is 001_start
Creating rooms with the Area Panel
- Open your Area Panel
- If you don't see it, check to make sure it's selected in the Editors Menu
- Click the "Add" button
- Enter the room name
- Your room should appear in the list on the Area Panel. Select it to work in it by clicking on the name
- You are now ready to start populating the room with Assets.
- Open the Area panel
- Select the room to be deleted
- Click on "Remove"
Note that a room cannot be deleted if there are still asset instances in it. If you try to remove the room, a warning popup will appear:
If this occurs, the instances in that room must either be deleted first, or moved to a different room. The easiest way to do this is:
- Ensure that the room is selected.
- In the Assets panel, click on the Instances Menu, and there is an option for "Select all instances in current room"
- Once the instances are selected, then select a new room for them in the "Move to Room" section of the Assets panel
- Click on "Move to"
For other ways to identify which instances are in a particular room on a more individual basis, see the documentation on the Assets panel.
Adjusting room visibility
- Main page: Room visibility
The way to adjust which rooms can "see" other rooms is via the Room Visibility tab in the Area panel. This provides a simple list, where rooms can be checked or unchecked.
Once rooms that are visible from the current room have been selected, clicking the "Back Connect All" link will make the current room visible from all of the selected rooms, as well.
The Area panel allows you to view a list of all rooms, and quickly scan through to see which rooms are visible from other rooms.