In Patch 3.5, we introduced improved functionality to the Terrain editor in the form of transform manipulators. In the most recent 3.6 Patch, we’ve further improved on these features to aid in the creative process of our amazing modding community. Today we’d like to cover these new features for those that want a brief tutorial on these tools.

If you are familiar with the Starcraft II Editor’s Cutscene Module or content creation packages, such as 3ds Max or Maya, you may have seen these before:

In the Cutscene Module, these are known as the translation, rotation, and scaling manipulators. The Editor development team has been hard at work to add new functionality to the manipulators in the Cutscene Module as well as add their functionality to the Terrain Module.

These additions and improvements do not remove any existing placement functionality within either the Terrain or Cutscene Modules. So if you’ve grown comfortable with the existing manipulator functionality, you won’t have to change a thing. However, we believe these changes will increase your productivity once you learn how to take advantage of them.

If you’re familiar with what the Starcraft II Editor currently offers, feel free to jump on ahead to the section, “New Features.” If you’re familiar with what other content creation tools offer with manipulators, feel free to jump right into the Editor and start trying things out!

In this section, we’ll outline the previous feature set within the Terrain and Cutscene Modules, and highlight some areas where we felt improvements could be made. Again if you are familiar with these features, jump ahead to the New Features section.

In the Terrain Module, placed objects (doodads, units, regions, etc) could be positioned in a few ways:

Keyboard shortcuts

Mouse clicks and drags with keyboard modifiers (shift, ctrl, alt)

The Object Properties Dialog

The first two methods create a reliance on prerequisite knowledge of keyboard and mouse click or drag combinations and other keyboard shortcuts. On top of this learning curve, they only offer a small set of positioning options, such as:

Limited to world space transforms.

Difficult to rotate around X or Y axes.

Fixed incremental scaling with no configuration on increment size.

The Object Properties Dialog allows us to position an object arbitrarily in the world without needing to know any of these keyboard commands, but suffers from:

Being a textual way to place objects visually.

A lack of context of placement alongside other objects in the map.

A cycle of trial and error for finding correct values.

In the Cutscene Module, manipulators have existed for some time. The Cutscene Module contained basic manipulator support for:

Translation in world space

Rotation in world space

Scaling in object space

It also provided modes for Eye and Target manipulation for certain types of Cutscene Nodes, such as spot lights and cameras. This allows positioning of the “eye” and “target” separately from the entire object.

Here’s an example of positioning a Game Camera in the Cutscene Module. We start in Normal mode, where the entire object is moved at once.

We then switch to Eye mode, and are able to just move the camera.

Finally, we use Target mode to position where the camera is looking.

This worked well, but it did not provide the functionality necessary for more interesting and dynamic positioning and placement like:

Rotating one object around another

Moving an object along its own axes, separate from world coordinates

Now let’s go over the new functionality introduced with patch 3.5 and 3.6. At this point, there are very few differences between the Terrain and Cutscene Modules, so we won’t worry about distinguishing between them.

There are three manipulator types available in the Terrain and Cutscene Modules. Each performs one of the major transformation types. They are:

Translation

Rotation

Scale

You can change the manipulator type using the toolbar:

Or through the menu under Tools > Manipulator Type:

We’ve formalized the definition of three spaces the manipulators can operate in. Spaces act as the basis coordinate system for transforms. Our goal here was to emulate other common content creation software, such as 3ds Max and Maya.

In world space, we use the level’s local space as the basis for transform. Think of the level as the world, wherever the level’s up, forward, and right vectors are, that’s your basis for transforms in world space.

You can use world space in all manipulator types.

Local Space – Transforms happen relative to the last selected object’s local space.

You can change between these three manipulator spaces by using the toolbar:

Or through the menu under Tools > Manipulator Space

As we added new functionality to the Terrain Module that overlapped with the Cutscene Module, we ran into issues with conflicting keybinds. All of the pre-existing keybinds for the manipulators in the Cutscene Module were assigned away onto other tasks in the Terrain Module!

For our internal team, neither Terrain or Cutscene Module users wanted to give way, so we created the “Command Profiles” system. A Command Profile allows us to create a distinct set of default keybinds. Any custom keybinds will override the defaults from the command profiles. For now, we have created two profiles – Classic and Modern.

The Classic Profile preserves the experience that users in the Terrain Module had prior to 3.5. The manipulator keybinds were moved to unused keybinds in the Terrain Module.

The Modern Profile preserves the experience that users in the Cutscene Module had prior to 3.5 with the existing manipulators. Conflicting keybinds in the Terrain Module were moved to unused keys.

On your first run of the Starcraft II Editor after Patch 3.5, you will be presented with a dialog to choose your default controls:

If you ever change your mind, you can always go into File > Configure Keybinds to change your selection. Just pick your desired option in the dropdown, and click apply. Your changes should take effect immediately, without needing to restart the editor.

Manipulator modes change the default position of the manipulator.

You can change the Manipulator mode through the menu under Tools > Manipulator Mode:

Normal mode is the default mode for the manipulators. In Normal mode, the manipulator is positioned at the origin of the last selected object, and transforms are applied to the selected objects.

Pivot mode allows you to translate and rotate the pivot of the last selected object to an arbitrary position in the world. The arbitrary pivot means that we can rotate objects around a static object or static terrain features.

The pivot can be reset to the original position for the last selected object using Tools > Manipulator Mode > Reset Selected Pivot:

The behavior of Eye and Target mode are unchanged in the Cutscene Module. However, you can now use manipulator spaces when transforming the Eye and Target positions.

When you are not using the translation, rotation, or scaling manipulator, we call this “Selection mode”. We have added an additional option in the Terrain Module specifically for Selection mode. In other content creation tools, such as 3ds Max or Maya, when you do not have an active transform manipulator, you cannot drag the selection to move it.

Since the Terrain Module did not have manipulators prior to the 3.5 patch, left click + drag with the mouse translated objects along the XY plane. The “Enable Drag Move in Selection Mode” option preserves this behavior. It is enabled by default.

You can toggle the option through the menu under Tools > Enable Drag Move in Selection Mode:

If you disable this option, the Terrain Module will no longer allow left click + drag to translate objects along the XY plane when in Selection mode. Disabling the option could be desirable if you want your Terrain Module to behave more like the Cutscene Module and other content creation tools. It will also prevent you from accidentally moving objects while attempting to select them!

We hope you find these changes as helpful as we have found them to be internally. Let us know if these changes have helped in your map-making endeavors and what else you’d like to see.