Part 1 – Overview and New Features
Over the next few weeks, I will be making several posts in regards to the new animation system within Flight Simulator X. Although the content will be somewhat technical and is probably more directed at 3rd party developers, it should give the avid “flight-simmer” an idea of what can be done with the new release.
In this first post, I will not get into any technical details but just want to provide a quick 30,000 feet overview of the new features introduced by the animation.
First, you may wonder why I am talking about animation since I am a “graphics engineer” within Flight Simulator. In fact, this is my main task, but I have also dabbled in other systems as needed and since I had some experience with another animation system during my previous employment, I was the ideal candidate to implement our brand new system.
But, didn’t Flight Simulator 9 have an animation system? The answer to the questions is “yes and no”. Although Flight Simulator 9 has some support for animations, its implementation was very limited.
- Animations could only be sim-driven or ambient (tick-18).
- Sim-based animations were directly tied to the concept of aircraft and other objects could not be procedurally animated.
- Some animations, such as tire rotation, required various models to be turned on and off based on the state of the animation (i.e. transition from a simple tired to a blurred version for high-speed rotation). In addition, several of these manipulations were hard-coded within the application.
- And overall, there was not an independant system to manage and play the animations and the engine would simply play animation streams as embeded within a BGL file.
Moving away from a BGL file approach, and with the addition of different type of crafts and animated ambient object required much more flexibility that the current hard-coded approach was allowing us. With this in mind, and thinking ahead with futur needs in mind, I have developed an independant animation system which essentially replaces the old way of doing animations while significantly increasing the flexibility and possibilities within FSX.
Here is a rough list of the features offered by the new system:
- New animation system which is run independently of “what is animated”. Although animations are mostly used for animating models, the animation system could be used to animate other components, say the camera for example.
- Support for more than one animation affecting a part at runtime and from within the 3D authoring tools.
- Removing the hard-coded relationship between the name of a part and the animation which is associated to a part.
- The visibility of a model’s part can be procedurally controled through the use of a scripting system, removing built-in hard-coded behaviors for things such as tires on vehicles.
- Built-in event system allowing specific events to be triggered from within an animation. For example, this could be used to trigger a certain special effect at a specific keyframe within an animation.
- Basic support for Inverse Kinematics (aka IK). Not to go into details, but this allows the procedural animation of an object in order to reach a certain position target in the world. For example, we use this to procedurally animate jetways to the door of an aircraft.
Over my next posts, I will start drilling into specific features and explain in more detail how they work, how they can be used and what are the benefits to the overall Flight Simulator experience. Oh, and as usual, keep in mind that everything I will be discussing is always subject to change between now and the actual release of Flight Simulator X.