Game Development Reference
In-Depth Information
frame rates (pictures per second) and then projected manually, with the
projectionist responsible for hand cranking the projector. If the projection-
ist wound the handle too slowly then flickering would be very obvious and
led to films sometimes being called the 'flicks'. When sound came to the
movies, the low frame rates of the silent films had to be increased. Movie
sound is recorded optically down the edge of the film as a waveform. In
order to be able to modulate the human voice, this waveform has to have
a large number of peaks and troughs in a short space. It was found that,
with the technology that existed in the late 1920s, a frame rate of 24 times
per second was the optimum. However, you will find that the illusion of
movement starts with frame rates around eight per second; the movement
looks ever smoother up to around 50 frames per second (fps). Above
50 fps, there is little improvement discerned by most viewers. TV
animation is often done on 'twos'; that is, instead of displaying 30 fps they
use 15 and show each picture for two frames. In countries where the TV
system is PAL, the frame rate is 25 fps. Here, movies are shown slightly
speeded up over the original shooting speed of 24 fps. In the US, the TV
frame rate for NTSC is 30 fps. When showing a movie it is elaborately
converted from the original display rate of 24 fps to the transmission rate
of 30 fps using specialized telecine equipment.
For the real-time animation we are intent on producing, we will target a
display rate of 25 fps. To create the movement we want, we can create 25
new positions for the model for each second. If a character consists of 17
segments and the position, scale and orientation of these segments are
stored 25 times a second, that would be a lot of data, and a lot of work.
We want a system that lets us store an important position every, say, half
second interval and lets the computer work out where the model should
be in the intervening frames. That is exactly what keyframe animation
involves. In the next two chapters we will look at how to extract this
keyframe data from Lightwave and 3DS scene files. But in this chapter we
will look at how we will store the data in our application and how to
interpolate the result. Then we will look at how we can generate some
animation data ourselves using the supplied software, Toon3D Creator,
and the sample models.
How to store the animation data
We need the ability to animate the position, scale and orientation of an
object. The position is defined by three scalar values, x , y and z . The
scale is defined by three scalar values, which we will refer to as sx , sy
and sz , for the scale in the x -, y - and z -axes. The orientation of the