As your map grows in size and complexity, the viewports become cluttered and a nightmare to work with. Placing and aligning BSP brushes or props begins to be near impossible.
What do you do?
How do you work on a large map and keep everything organized?
In Hammer Source, you must use VisGroups.
What are VisGroups?
VisGrouping is the ability to place objects (props, brushes, entities) onto a layer then be able to hide/unhide the display of that layer and all the objects that were placed into it.
VisGroups are similar to layers in Photoshop, Maya/MayaLT and 3dsMax.
The power of VisGroups comes from being able to place various sections of your map into a VisGroup and then hide/unhide those sections from being displayed inside the viewports.
With VisGroups you are able to:
- Hide/unhide any object that you placed inside that VisGroup
- Choose what gets compiled (hidden VisGroups do not get compiled)
- Manage large and complex maps
- Place various sections of your map into their own VisGroups to work on one section of the map at a time
- Detailing maps becomes a lot easier
You can find VisGroups panel on the right hand side of the editor:
If you do not see VisGroups panel, go to View > Screen Elements and check Filter Control:
User and Auto VisGroups
Any prop, brush and entity you create/place in Hammer editor automatically becomes assigned to a VisGroup. You can access automatically created VisGroups under Auto tab:
These VisGroups are named World Geometry, Tool Brushes, World Detail, Entities and Instance.
It is nice that Hammer does this by default, but it does not help to define specific sections of the map. You want to create your own custom User VisGroups. Once you create a custom VisGroup, it will appear under User tab:
Create VisGroups and Assign Objects to Them
Creating VisGroups is simple and there are two primary methods of doing so.
Click on Edit in the VisGroups panel, this will bring up Edit VisGroups window:
Click New Group:
Select "new group" and under Name:
Name the group. Press Enter or click Close:
Double-click on the object inside perspective viewport that you want to place into a created VisGroup. This will open up to open up Object Properties window.
For BSP brushes you will see VisGroup tab by default:
For Entities, click over to VisGroup tab:
With Object Properties window open and object in viewport selected, check the VisGroup you want to place the object into and click Apply:
Keep Object Properties window open and continue to select objects in the viewport. Check the VisGroup you want to place those objects into. Remember to click Apply.
For adding multiple objects at the same time, hold Ctrl and Left Mouse Click to add or remove from a selection.
Close the Object Properties window when you are done.
Now you can Hide/Unhide that VisGroup using the VisGroups panel:
In the viewport, double-click on the object (BSP brush or entity) to open up Object Properties and click on Edit Groups.
For BSP brushes click on Edit Groups in VisGroup tab:
For Entities, click over to VisGroup tab and then click on Edit Groups:
Click "New Group":
Name the New Group and Close:
Now with Object Properties window open and object selected in the scene, check the VisGroup you want to assign that object to and then hit Apply.
Hide/Unhide that VisGroup in VisGroups panel:
Make sure to assign an object to a VisGroup right away, otherwise that VisGroup will be deleted automatically.
Valve also recommends that you have no more than 128 VisGroups or the editor will begin to function improperly.
Remove Objects From VisGroups
Double click on the object to open Object Properties and under VisGroup tab uncheck from which group you want to remove the selected object from:
One Object in Multiple VisGroups
You can assign one object to multiple VisGroups.
Double click on the object to open Object Properties window and under VisGroup tab, check multiple VisGroups you want to place selected object into:
In the VisGroups panel, Left Mouse Click and drag a VisGroup onto another:
The first VisGroup will be merged with the second VisGroup. The VisGroup you dragged into (second VisGroup) will retain the name:
To delete/remove VisGroups, click on Edit to open Edit VisGroups window:
Select the VisGroup and click Remove:
Deleting VisGroups will not delete objects from your map, only the VisGroup.
A quicker way to delete/remove is to Left Mouse Click and drag a VisGroup out of the VisGroup Filter Control panel:
It will ask if you want to delete that VisGroup, click Yes:
Create Subcategories or Parent VisGroups
One of the best ways to organize various VisGroups is to place them under another VisGroup to create subcategories or parent them.
Right Mouse Click and drag a VisGroup onto another VisGroup. First VisGroup will become a subcategory or parent of the second:
To remove or un-parent the subcategory VisGroup from another, Right Mouse Click and drag the VisGroup onto white space at the bottom of the VisGroup list:
Select All Objects Inside a VisGroup
Make sure the VisGroup is visible and select it, then click on Mark.
All objects inside that VisGroup will be selected in the viewports:
Moving VisGroups Within the Panel List
You can move and organize the VisGroups list by selecting a VisGroup and clicking on Up/Down arrows to move it within the list:
If you have a lot of VisGroups and some are hidden, you can temporarily enable Show All to see your entire map. Click on Show:
What to Compile or what Not to Compile
Hidden VisGroups do not compile. This helps to quickly playtest an area of the map without having to compile the entire level.
Although you still need a skybox around your section, otherwise the map won't compile.