Thursday, April 27, 2006

New Animation System for FSX

I am getting very excited about the new capabilities that are going to be available to 3rd party developers, such as myself, with FSX. Sebastien St. Laurent (a.k.a. Sebby) has been gracious enough to start a series of blog posts reflecting some explanations of exactly what is being changed and why. Ultimately, why they have changed the animation structure is to give much more flexibility to those that design "outside the box" from those that the team uses for default aircraft animations.

Sebby has written 3 articles so far, and I have some comments regarding each:

(Flight Simulator 10 Animations 101) - Part 1 - Overview and New Features

I'm glad that Sebby took the time to give a "30,000 ft. view" of the animation system, where we are now, and where we will be. The current stock animation code, otherwise known as tick18, is exactly what Sebby suggests - it's either driven by the sim or ambient condition. Therefore its use has been quite limited. It was either a part of the model (.mdl) or it wasn't. The new system is completely reworked, with built-in flexibility from the start, and animations are not tied to the 3-D model.

Another thing to be eliminated is animation based solely on part naming. For example (Sebby used this example as well), the tires of an aircraft are named c_tire, l_tire, and r_tire (center, left, and right). As long as the axis for the tire is correctly set, the tire will show appropriate "animation" of spinning as the aircraft rolls across the ground (and proper diameter is set in the aircraft.cfg). I honestly have liked this approach thus far, because I am not having to create the animation keyframes within the 3-D program for each of these parts. I just make it, name it, set the axis correctly, and export - it works! But I understand that this "canned" approach has made a lot of custom parameters impossible.

(Flight Simulator 10 Animations 101) - Part 2 - Animation Basics, tools and ModelDef.XML

Sebby basically gives an outline to the .xml file that will be used by the compiler tool to define animations for a particular part based on the conditions set forth within the XML code. As he states, this is much like the makemdl.parts.xml used now in accordance with makemdl.exe. I have to admit that when I first began using makemdl.parts.xml, I was intimidated by the code. I'm a visual guy - that's why I design aircraft in a real-time, 3-D environment. Any type of coding has often left me scratching my head. But thanks to much support of the community, I have learned a lot about how to make code do things I want to accomplish in the sim. Really powerful stuff - and it's about to get even more powerful!

(Flight Simulator 10 Animations 101) Part 3 - controlling Model Part Visibility

Sebby goes into more detail of the visibility section of the ModelDef.xml - again explaining how powerful and complex you can make the details of part visibility. His example of the prop animation is a great one, as I have often wanted to change at what RPM the props on an aircraft went from the solid to blurred state - and perhaps had a bit of overlap to them too. This should now be possible.

Another exciting development that has come out of all of this recoding of the animation system is a whole new means of attaching effect files to the aircraft. No longer are effect files "stationary" versus the aircraft's reference datum - as they are now through coordinates in the aircraft.cfg. Now they will be dynamic, or at least, capable of being dynamic. So for those who like to put flexing wings on their aircraft - the navigation and strobe lights no longer have to be hard coded into the model for them to remain in the correct position, no matter how much flex is being experienced. I'm sure the heavy iron die-hards are excited about this!

FSX: Questions About The Export Process

In addition to the 3 articles, Sebby wrote this blog entry based on some of the feedback he received from the readers of the articles. He goes into an explanation of why they are moving away from the BGL file format to one that is more capable with the technology of today's graphics engines. The BGL format is one that is dynamic in nature, thus requiring a lot of processor power to function. The new file format is mostly static, using outside control ( like the ModelDef.xml file) to control how the object behaves within the sim. I'm particularly excited to see that makemdl.exe is being replaced with a new exporter - it's about time! Another positive note - the format of the makemdl.parts.xml structure will be similar enough that conversion of custom parts won't be so much a headache - I bet Fr. Bill will be happy to hear that!

When Sebby posts more articles in the future, you can bet to read a bit of commentary here about them!

No comments: