Animating from Space

Earth Studio requires us to deal with massive changes in scale. Predictably, this raises some issues in the context of animation. We counteract these issues with a feature called Logarithmic Altitude.

Overview

A camera, moving at a constant speed towards Earth, will seem to move much faster the closer it gets to Earth. This is an issue of human perception—our points of reference on the Earth seem to scale much more dramatically as we near the surface. Our brains take this to assume we're moving faster.

In most animations, that's an issue.

Earth Studio offers an experimental feature called Logarithmic Altitude to counteract the speeding-up effect. When enabled, logarithmic altitude will move the camera faster out in space and slower as it approaches the Earth. It's called logarithmic because Earth Studio uses a near-logarithmic formula to calculate these changes.

The resulting motion compensates for our perceptual deficiencies and appears perfectly linear / constant.

Left: An unadjusted, linear camera move that looks like it's speeding up.
Right: An adjusted logarithmic move that we perceive as linear.

For simple moves, Logarithmic Altitude is highly effective. More advanced usage reveals a few shortcomings and considerations, which will be covered below.

Enabling Logarithmic Altitude

In Quick Start projects, Earth Studio automatically detects when Logarithmic Altitude is needed and enables it accordingly. For other projects, you'll have to manually enable it in the Animation > Advanced menu.

Logarithmic Altitude in the menu

As explained above, Logarithmic Altitude is a necessity when animating over massive changes in altitude. When planning such a move, be sure to enable Logarithmic Altitude before you start animating. This way, it's easier to understand how attributes are being affected so you can adjust accordingly.

Accounting for Latitude / Longitude

Unfortunately, altitude isn't the only factor when creating perceptually smooth large-scale animations. A visually "linear" descent to Earth reveals the magnitude of any lateral changes (longitude and latitude).

Imagine moving thousands of kilometers a second over the Earth. In space, that doesn't feel too fast. But just a few hundred meters from the ground? Not a pleasant sensation.

Left: Camera move with logarithmic altitude, but linear lat / long
Right: Logarithmic altitude with adjustments applied to lat / long

This is why the position attributes are linked in Earth Studio—they're entirely codependent. When Logarithmic Altitude is applied, Earth Studio finds the difference in altitude values pre- and post-adaptation and uses this to adjust the latitude and longitude curves.

Adjustments are handled on a segment-by-segment basis. While altitude is always being adjusted as long as Logarithmic Altitude is enabled, latitude and longitude might not be affected. This becomes important when dealing with the curve editor, or with multi-keyframe animations.

The Curve Editor

The goal of Logarithmic Altitude is to achieve perceptually linear motion, but the position values required to do this result in non-linear curves. If these curves were displayed as-is in the editor, it would be impossible to make easing adjustments like you would in a standard move.

To keep the Curve Editor usable, Earth Studio changes how position curves are displayed and adjusted in the curve editor when Logarithmic Altitude is applied.

Altitude

Altitude is the most drastically adjusted attribute—enough so that it must be displayed on a logarithmic graph scale in the Curve Editor. This visually counteracts the logarithmic adjustments to the altitude values.

In a logarithmically scaled graph, a pixel near the top of the graph accounts for more distance than a pixel at the bottom of the graph. This is reflected in the measurements on the left side of the graph.

Comparison of standard graph scaling vs. logarithmic

Graph scaling: standard altitude vs. logarithmic altitude

A linear curve in this view represents an animation that "feels" linear. You can add and adjust easing handles as you would normally, and the animation will appear to accurately reflect the curve.

Latitude and Longitude

Latitude and longitude curves are displayed with standard graph scaling, but they're a bit trickier to work with when Logarithmic Altitude is on.

When you view either attribute in the curve editor, you'll notice that some segments are displayed as a dashed line. This represents a segment that is being affected by Logarithmic Altitude.

Affected vs. unaffected curve segments

A Latitude curve with two segments. The first (dashed) is being affected by Logarithmic Altitude.

Affected segments are accurate to the graph—any point on the curve will reflect the actual value at the point in the animation, after being adjusted. But because logarithmic adaptation is applied on top of existing curves, easing handles are effectively "broken." They'll influence the shape of the graph, but they won't affect the graph one-to-one like they would in a normal move.

The easing handles of a Longitude value curve segment affected by Logarithmic Altitude

In two-keyframe animations, this doesn't cause any noticeable issues. In animations with three or more keyframes, you might encounter problems.

Handling Multi-Keyframe Animations

Logarithmic Altitude can cause issues when used in animations with more than two keyframes, such as a swoop from space that transitions into an orbit around a building. In these cases, you might notice an unwanted stop or bump in your animation path.

If you run into issues, the best course of action is to zoom into problem areas in the Curve Editor and try adjusting the easing handles until the curve appears smooth. Any bumps in the curve, like when a curve enters a keyframe at a different angle than it exits, will cause a hiccup in your animation.

We're exploring ways to improve how keyframing large-scale animations are handled to make this feature more reliable over time.