Positioning and movement strategies
The purpose of this section is to expose the existing ways of positioning and moving objects in the 3D space of the stage, compare their forces and weaknesses and see how they can be used together.
For the sake of simplicity, we will focus only on positioning the “performer + platform” ensemble, which I will refer to as the “performer”, but the same strategy can apply to the Camera.
The position of a performer in the 3D stage is first and foremost defined by the ensemble_pos_x, ensemble_pos_y and ensemble_pos_z parameters available in the performer module. In the end, any existing or to-be-created way to move the performer will end up changing these three parameters.
They can be controlled:
- by setting their value directly in the performer module
- remotely using Open-stage-control or a MIDI controller, as long as these parameters are assigned to macros in the mixer
- by moving (click + drag) the sphere representing that performer in the 3D panner window
- by recalling various performer presets with different position values stored for each preset
- by playing or evaluating a path for that performer
It is important to remember that all these methods control the same parameters in the end. As a consequence, only one of these methods can be used at any given time. For example, you cannot drag the performer in the panner while an interpolation is ongoing between two performer presets. Or one cannot control the performer position through a MIDI controller while someone else does it from the performer module. Or you cannot interpolate between two stored performer positions while a path is playing.
Generally speaking, the use of two methods simultaneously would provide conflicting position data and result in unpredictable positions/movements. This said, there are ways to make all these methods work in tandem, one after the other.
We can regroup these various methods in 3 categories: manual control, preset control and path control, detailed further down below. But before, here is a short memo showing which general strategy to adopt depending on the desired effect:
- Static positioning: instant recall of presets
- Trajectory in a straight line: preset interpolation
- Curved trajectory or complex movement in one go: path animation
- Complex curved movement involving the evolution of multiple parameters: path animation + preset interpolation
Manual control
Section titled “Manual control”Manually setting each x, y, z parameter, or using a remote controller or the panner can be considered as direct, real time controls.
These methods are the one to use for quickly testing a mise en scène, or precisely positioning performers for preset creation, or doing small quick adjustments during a show or rehearsal.
They are more suited to define static positions rather than drawing movements, since it is extremely difficult, if not impossible, to produce smooth, continuous trajectories in a 3D space only by dragging the mouse on the screen or by using 3 knobs or faders.
The 3D panner is more intuitive since you control all three x, y, z parameters at the same time simply by moving the object on screen with the mouse, but it can be less precise since the direction of the movements will depend on the panner’s camera angle. For example if you want to make sure all performers remain at the same elevation (y position), you need to make sure to move them only from the top view, which allows movements only in the X and Z directions. Otherwise, you might get fooled by the perspective.
Preset control
Section titled “Preset control”Once a purposeful position is set with manual controls, it can be stored in a preset, either for instant recall of that position, or for smooth interpolation from the current state toward a given preset.
Instant recall
Section titled “Instant recall”Instant preset recall (no interpolation) will instantly teleport the performer from one position to another. This can be useful:
- for setting the initial position at the beginning of a scene while lights are off or the performer out of sight of the camera (i.e. “off-stage”)
- for an actual teleportation effect, or immediate apparition or disappearing in or out of sight of the camera
- for pure mise en scène purposes. Using the presets grid to instantly teleport several performers and the camera at the same time can be useful for having multiple views of the same scene with different dramatic effects, without making the public think that the performers did actually move. Similarly to what can be done in cinema, where distance between two actors can be changed between two shots with different view points just to accentuate a separation, or them getting closer, without making the public think that the character did actually move.
Preset interpolation
Section titled “Preset interpolation”Preset interpolation, in the way it is set up in the Visual Stage, works in a specific way that is worth detailing in the context of this note. Let’s say we want to go to preset 3 in 5 seconds. We can trigger this interpolation from the Presets grid or directly from a specific preset control interface. When you do so:
- first the current state is saved as preset 0 (which is a specific preset slot used only for temporary storage)
- then the actual interpolation starts between presets 0 and 3, and will last for 5 seconds
In other words, we interpolate toward a specific preset from the current state of the parameters, regardless of what this state could be. It could, for example, simply be the last recalled preset, or that last recalled preset but with some modified parameters (like some changed gains or positions), or even completely random values, if we had the ability to randomize parameters.
So we never really “interpolate from preset 2 to preset 3”. Instead, we interpolate from the current state to preset 3. The distinction is important since some presets can make some parameters to change with time, like if the preset is meant to start animating a position along a path, but we’ll get to this later.
In the regard of setting performers positions, preset interpolation is immensely useful since it creates movements in straight lines between the current position and the one stored in the target preset. Duration of the movement is set by the interpolation duration, and change in speed is set by the interpolation easing function.
Path control
Section titled “Path control”A path can be defined as a trajectory defined by points connected either by straight lines or curves.
Thanks to the Path creator, an entire path can be visualized in the panner, and multiple paths (for multiple performers and possibly the camera) can be visualized at the same time in the same window.
Duration and curvature between points can be edited, as well as the global speed. The trajectory can be inverted using negative speed, and can be looped.
Paths are very practical to create complex movements that need to be played in one go (in one scene), or simple curved trajectories between two points.
Animating an object through a path can be done in a few ways thanks to the various Preset recall modes available in the Path Creator. Generally speaking, it is good practice to stop a playing path before saving a preset with that path, so you can precisely set either the object position to be stored in the preset (important when you want a preset not using a path, or with the “Start after interpolation” preset recall mode), or the progress slider position when using “Interpolate progress slider” preset recall mode. Below are a few scenarios showing how paths and presets can work in tandem.
- From a static position to another static position (no path involved): just keep the Path disabled, or Preset recall mode to “Stop path” or “Do nothing”, assuming you know the path is already stopped for the latter
- From a static position (not on a path) to the beginning of a playing path: set Preset recall mode to “Start after interpolation”, stop the path if it is playing, move the object to the paths starting point (using “jump to point”), and save the preset. Recalling that preset interpolation will make the object move toward the path starting point during the interpolation period, and the path to start once the interpolation ends.
- From an existing point in a path to another point in that path: assuming the object is already at the correct starting point, you can either constrain the path to end at a given point and use Preset recall mode “Start with interpolation”, or use “Interpolate progress slider” mode. With the first method, the object will move according to the paths play rate and time values set for each point, while in the second method the animation will last for the duration of the preset interpolation. In either case, stop the path if playing and put the object at its starting position in the path before saving the preset.
- From an arbitrary position in a path to another arbitrary position in that path: use “Interpolate progress slider” mode. The animation will last for the duration of the preset interpolation. Again, stop the path if it is playing and put the object at its starting position in the path before saving the preset.
- From an arbitrary position in a path to a static position (not on a path): this one could be done either in one step (preset recall mode set to “Stop path”, put the object at the desired end position, save the preset and recall it with interpolation), or two steps (one preset to slowly stop the ongoing path: preset recall mode set to “Do nothing (keep going)”, play rate set to 0. Interpolating to that preset will make the object to progressively slow down on the path until it stops. Then a second preset, identical to the one step approach, which will interpolate from whatever position the object stopped at to the desired end position.)
- Slowing down on a path until stop: assuming a path is already playing, the next preset should have preset recall mode set to “Do nothing (keep going)”, and play rate set to 0. Interpolating to that preset will slow down the object until it stops at the end of the interpolation.
- From an arbitrary position in a path to an arbitrary position of another path: this kind of transition cannot be done straight away without a jump in position. If you want a smooth transition without the object teleporting from one path to another, you’ll either need to make sure that the first path ends where the next path starts, or use some intermediary presets to stop the current path (see “Slowing down on a path until stop”), move to the starting position of the new one, and start playing it (see “From a static position (not on a path) to the beginning of a playing path”)