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.
There are two ways to do this, by clicking on "Add" on either:
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 Room Toolbar
- If it's not already open, locate the Room Toolbar by right-clicking on any toolbar in HeroBlade and checking "Room".
- In the Room Toolbar, click the "Add" button
- Name the new room, according to the Room naming conventions
- Click OK
- Important: After the room has been created, select it from the dropdown menu on the Rooms Toolbar (or click on the name in the Area Panel)
- You are now ready to start populating the room with Assets.
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 Panels menu
- Click the "Add" link.
- Enter the room name
- Your room should appear in the list on the Area Panel. Select it to work in it, either by clicking on the name, or selecting it from the dropdown menu in the Rooms Toolbar
- 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"
When you delete a room, there will temporarily be a blank in the Rooms Toolbar, which means you are outside the bounds of all rooms in the area, and your viewpoint may be looking at a void. Simply choose another room in the Room Toolbar to be able to see the area's assets again.
Adjusting room visibility
- Main page: Room visibility
There are two ways to adjust which rooms can "see" other rooms:
- Via the Rooms Toolbar. This is an interactive method which allows you to see which rooms are visible from others.
- Via the subpanel in the Area panel. This provides a simple list, where rooms can be checked or unchecked.
With the Rooms Toolbar
Clicking on the yellow visibility box on the Rooms Toolbar:
- Puts you in camera mode
- Makes all rooms in the area visible, and dims everything with a reddish tint except for the current room.
- Shows the Room bounding boxes
- Dims other rooms with a reddish tint
Bounding box colors indicate the state of visibility in relation to the current room:
- Yellow: The current room
- Green: Rooms visible from the current room, that are back-connected (both rooms can see each other)
- Light blue: Rooms visible from the current room, that are not back-connected. The current room can see the blue room, but the blue room cannot see the current room.
- Magenta: A room which can see the current room, but is not visible from the current room
- Red: Rooms not visible from the current room
Visibility can then be adjusted as follows:
- Hovering the mouse over a room bounding box will cause that box to briefly "throb" white.
- Clicking on a bounding box will make that the new Active room.
- Ctrl-Click on a different room to toggle its visibility to the current Active room. This also back-connects the room
- Shift-Ctrl-Click does the same as Ctrl-Click, but does not back-connect
To exit Room Tool mode, simply click on the yellow box again, or choose another tool from the Transform Toolbar, such as Move, Rotate, etc.
With the Area panel
The second subpanel in the Area Panel displays a list of all the rooms which can be seen from the currently selected room.
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.
Note: The "Update BB" link can be used to ensure that the new Bounding Box information is updated on the server. This is a legacy link from older versions of HeroEngine, and is no longer used.
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.