I recently saw a simple 2D animation that rendered in a red line how a plane moved over a map. This is what you might also know as the „Indiana Jones flight map effect“. I immediately had an idea on how to do this in Blender so I went ahead and did it. Here is the result: Click to show the animation.
How to achieve the effect
The idea is quite simple: To make the red path appear on the map we move it from behind the map to front of it. The trick is that the path isn’t planar to the map but the front is „higher“ than the end of the line. This way moving it through the map will make the red line appear at the start first and reveal more and more until the line reaches the end.
So first of all you need to create the background map for your animation. I used tiles from OpenStreetMap on 3×3 planes for this, but you can use whatever background you prefer. Afterwards you need to create the line the flight will take. I thought using a straight line is boring, so I went for a curve. I created a bezier curve to move along the way you want to animate. Make sure you create a 3D curve, because we need the Z-axis for our animation. Also make sure to set the curves „Twisting“ to „Z-Up“ which is necessary that the line is flat in relation to the map. Once you are satisfied with your path, you need to add a mesh to solidify the curve. Use a simple small plane for this, set its color to red and add two modifiers:
- Array: This will convert the plane into a line. Adjust width and height until you are satisfied with your line.
- Curve: This will make your line follow the curve.
The red material must not cast any shadows. If you are using cycles to render the animation I recommend creating the material as shown in Blenderartists thread Cycles: make object cast no shadow.
After you modeled your path (the mesh and the curve) move it behind you map. Afterwards insert a location keyframe (press „I“ and select „Location“) for both, go to your target frame (e.g. 90), move the line to the front and insert another location keyframe. Blender will now interpolate between the two points for you. Press „Alt+A“ to see a preview of the animation. You might need to adjust the curve to make the animation look smooth (rotate some nodes, add some notes, etc.). Once satisfied go ahead and render the animation.
To create a GIF from the generated PNGs you can (as for most imaging automation tasks) use imagemagick:
convert $( for a in 00*.png; do printf -- "-delay 10 %s " $a; done; ) result.gif
Feel free to play with the final blend file.