CONVERTING FS2004 AIRCRAFT TO FSX TUTORIAL

TABLE OF CONTENTS
Introduction and Downloads
Part 1:  Setup
Part 2:  FS2004 Import
Part 3:  Setting Up Landing and Taxi Lights
Part 4:  Conversion to FSX
Part 5:  Saving, Merging, and Animating the Props
Part 6:  Editing Materials and Textures
Part 7:  VC & Appendix
Part 8:  Quick Reference

PART TWO - FS2004 IMPORT

1.  Did you make a backup of the plane's MDL file as described in Part 1, Step 2?  If not, do it now.
2.  Click Import (menu item at the left in the image in Part 1), set the drop down box to type FS MDL, and browse to your aircraft's MDL file, in the plane's Model folder.  Click it and click Open.  Do not open the copy.  In our example I will Import the dc6b.mdl file found in the FS/SimObjects/Airplanes/DC-6B CB-16/model folder.
3.  The Set Condition Variables box will pop up.  If it does not, this is probably not an FS2004 format aircraft.

If using the DC-6B example, set  the values to the following:

Set Variables 1
set variables 3
Set Variables 2

  a.  The following (if present, not all will be there) should already be set: for the external model - see below for a Virtual Cockpit (VC).

 Variable Value Notes
 gen_model 2 Loads the external model.  If you are converting the VC, set this to 1
g_lightStates 4 retains the attachpoints for the landing and taxi lights for the external model, if loading the VC set this to 0
c_gear 100 allows the wheels to display
l_gear 100 "
r_gear 100 "
parts_visible 65535

  b.  Set these as you need to:

prop0/1/2/3_still = 0  (determines the display of still/slow/blurred props and jet fans.  For now, leave these at 0 to load the still props).
custom_anim_XXXXX (XXXXX can be anything).  In the exterior model these are usually custom visibility objects like ground equipment.  In my experience setting these to 32000 usually gets them to display, but there could be exceptions. 
Some, like crash check,damaged, rain, and wind variables, seem to disappear upon importing.

  c.  Click Set, and the plane will display.  Check the log at the bottom for any bright red entries (errors).  You can ignore most  light red warnings.  If it warns about a problem with the modeldef.xml file (usually the top line of the log - scroll up), you probably made an editing error when adding our new definitions.  Start over with your backup and try it again.
4.  I uncheck the Use Complex Shader button, which gives me a more pleasing view of the plane.  Your results may vary.
5.  Check the plane, and make sure that the props, control surfaces,and other parts animate as expected and are not displaced.  The animation slider is at the bottom of the button rows.  If they do not animate or are displaced, I don't know of a reasonably easy way to fix this, sorry.  Conversion is probably not possible using these instructions alone.

UNKNOWN ANIMATIONS

6.  Click the Animation Editor button and look for anything called usrvar, UserDefined, Unknown, or similar.  These are parts that MCX could not determine what they really are.  They will often have a red highlight, warning you that there is no such animation definition in the modeldef.xml file and these animations will be lost when Exported.  Write down these animation definitions.

Animation Editor
7.  Close the Animation Editor with the red X (all such editors are closed with the red X).
8.  Click the Hierarchy Editor button and click the Highlight Selected checkbox.  You will see a tree diagram of your plane's parts on the left.  Each time you click a line in the tree diagram, that part (or group of parts) will turn red on the aircraft display and the properties of that line will appear on the right. 

Hierarchy Editor

The tree diagram appears something like this:

SceneGraphNode       --- this is the master master node - everything is connected to this node.  It is sometimes referred to as the Tick18 or Ambient node.
   SceneGraphNode    --- This is the master node for this animated group of parts.  The animation is sometimes defined here.
      SceneGraphNode --- This node includes another SceneGraphNode (not all do) - The animation is defined here if not in the first SceneGraphNode.
         ModelPart         --- These are the parts themselves (there can be one to many ModelParts within this node).
         ModelPart         --- There can also be further SceneGraphNodes and ModelParts as branches of the second SceneGraphNode, for complex animations.
   SceneGraphNode    --- This is the master node for this (typically) non-animated group of parts.
         ModelPart         --- These are the ModelParts for this node.  Again, can be one to many ModelParts.

Let's explore how the Hierarchy Editor works.  In the DC-6B example image above, I have clicked on the prop group of parts for engine #1 (called engine0 in FS code).  You can see that in this case the master SceneGraphNode for the part contains the animation, assigned to engine0.  This is not a valid FS animation definition, and we will need to change it later to prop0_still.  The prop is a complex part with the hub the first ModelPart below the master SceneGraphNode (note the red ring behind the spinner):

Hierarchy Prop Hub

and the three SceneGraphNode/Model part groups below this are each prop blade.  These use the lever_prop_pitch animation definition so they twist as the prop pitch is adjusted.

Hierarchy Prop Blade

There are two types of properties we will be changing in the Hierarchy Editor, animations and visibility conditions.  Both are displayed in the Property box at the right, if present. Animations are often assigned to the SceneGraphNodes (but can also be assigned to ModelParts), while Visibility Conditions must be assigned to the individual ModelParts.

A ModelPart inherits the animation from the SceneGraphNodes above it.  Thus if the SceneGraphNode has an animation for the propeller (prop0_still), all the ModelParts underneath that node will also be so animated.  If a SceneGraphNode or ModelPart under that SceneGraphNode has an animation of its own, that animation will be added to the original animation.  The example above is the twisting prop blade (lever_prop_pitch) attached to the prop hub (prop0_still).  The prop both rotates and twists.  The same concept applies to visibility conditions.

9.  If you had any unknown animations in step 5, type in one of the unknown animation words you wrote down into the search box at the top middle. If nothing was unknown, skip these steps and go to step 11.  Read them though because you will need to know how the Hierarchy Editor works.   A list of ModelParts or SceneGraphNodes will appear.  Click on one, and see what lights up red on your plane. 

Unknown Parts

For the DC-6B example, I typed "userdefined" into the search box and looked for the parts.  I couldn't find them.  So I used a little trick - turn on colored render mode rather than textured render mode.  When I did that, the parts were bright red.  Turns out they were textured with a dark blue color, and turning them red only caused them to turn black!  Go back to textured render mode when finished (the button just to the right of colored render mode).

If a given unknown SceneGraphNode/ModelPart already has a correct animation in the SceneGraphNodes above it, then you can eliminate this unwanted animation.  In this DC-6B example these parts should not have any individual animation (they are part of the maintenance stairs and should remain as a solid unit) and thus the animation must be removed.   

For those nodes/parts that do need to be animated separately, refer to step 10.

  a.  Close the Hierarchy Editor and open the Animation Editor.  If all of the unknown animations using a given name need to have their animations removed, type in one of the names into the box to the right of the Select Name Containing button..  Click that button.  There should now be checkboxes next to all of the those parts.  In the DC-6B example I typed user, clicked the Select Name Containing button, and all 5 userdefined8 parts were selected.

If instead you need to select the parts one by one, click the Select None button, and then double click each line to select it.
.
Select Animations

  b.  If the parts move when the animation slider IN THE ANIMATION EDITOR is moved, slide it to the location (keyframe) where the parts should be location/rotated  (not applicable to the DC-6B example).
  c.  Click the Fix Selected Animations button.  The unknown animations will disappear.
  d.  Close the Animation Editor.

10.  If you have no unknown parts that need to be animated, skip to step 11.  If the unknown animated parts should be animated in addition to any nodes directly above them and you know what the animation and visibility name (if needed) should be used for this part, then step down through the SceneGraphNodes to highlight each part with this unknown animation name.  Click on that name and choose the correct animation from the list.  Repeat for each such part.  If you need to see the SceneGraphNode in the complete listing to understand it, click on the SceneGraphNode to highlight it and click the yellow pencil to the right of the search box.  The full listing will re-appear with your SceneGraphNode still highlighted.  When you need to go to the other parts, just type the unknown animation name into the search box again.  NOTE: If you are following along with the DC-6B we have no such  parts to fix in this way.

Animation Choices

If needed, also assign any Visibility Conditions - click the None underneath Visibility Condition and choose from the list.  Note that only ModelParts should have a Visibility Condition - it won't work with SceneGraphNodes.


SETTING CUSTOM ANIMATION VISIBILITIES

17.  In my experience, the objects that displayed the custom_anim_XXXX animations in the popup Set Condition Variables box may become displaced if their visibility conditions are not set before conversion.  These parts are typically those that appear and disappear under certain conditions.  On the  DC-6B these are the passenger and maintenance airstairs (both custom_anim_EXIT_OPEN) and the left/right chocks (both custom_anim_BRAKE_PARKING).  The name includes one of the conditions in which the part appears/disappears.  Another obvious choice is any ground equipment.  Operate the model in FSX and find out what such parts can be.  If you are using P3D, you may have to ask at a forum for the plane (or a general FS2004 forum).
18. Open the Hierarchy Editor. Since these parts have no specific animations already in place, we will have to click on each master SceneGraphNode until the desired part turns red.  Once you find one, you will need to assign the proper visibility condition to each and every ModelPart in that node.  The custom visibility definitions we added to the modeldef file are discussed in the Appendix.

For example, with the DC-6B there are 4 such parts, as described in step 17.  From the top of the list start clicking on the master SceneGraphNodes until you find the airstairs - it's often near the top of the list:

Visibility conditons

19.  Click on the ModelPart just below the highlighted SceneGraphNode and click on the None underneath the Visibility Condition.  Select the proper visibility condition from the list.  In the case of our DC-6B example, that is airstairs_4 for a 4 engine plane.  If you prefer, you can use Shift and/or Ctrl clicks to select some or all of these ModelParts and assign the Visibility Condition all at once.

hierarchy visibility 2

20.  If you have any parts left, continue clicking the ModelParts below the ones just edited and repeat this. Repeat for all ModelParts in this node.   There are a total of 10 ModelParts that need to be changed in this DC-6B example (i.e. the ModelParts that make up the entire airstairs object).  Note that the SceneGraphNodes do not need visibility conditions, only ModelParts.  Occasionally a ModelPart will escape away from its node - just find it among the single ModelParts and assign it the same Visibility Condition.
21.  Repeat this for each object that has a custom_anim_XXX definition when Imported.  For the DC-6B this is the maintenance stairs (assign the maint_pltfrm_4 visibility condition), the left chocks (assign the l_chocks_4), and the right chocks (assign the r_chocks_4).  Remember to add these conditions to every part in the node.  The maintenance platform has 11 parts, the chocks each have 2.  Note that when finding the maintenance stairs, look for the little wheels to turn red (the rest only turns black) or use coloured render mode.  Close the Hierarchy Editor.

ASSIGNING PARTS WITH DIFFERENT ANIMATIONS IN FSX VS FS2004

22.  One more task, and that's to re-assign any parts that have a different animation in FSX than they did in FS2004.  An example of this is the steerable nosewheel using the c_wheel animation definition.  The FS2004 SDK specifies it to be animated differently than the FSX SDK does (see the Appendix for details if you are interested).  So open the Animation Editor and type in c_wheel in the Select Name Containing box and press the button.  Normally there will be only one line, but I guess there could be more.  Select c_wheel_FS9 from the drop down box to the right of the Assign Animation Type and click that button.  The c_wheel entries should change to c_wheel_FS9.  (In the DC-6B example aircraft there is one c_wheel line).
23.  The other thing that needs to be changed are any water rudder animations.  These are reversed in FSX from what it was in FS2004, so we need to reverse the animation to make them move correctly.  Open the Hierarchy Editor and type in lever_water in the search box.  In the DC-6B two parts should appear (in this case two SceneGraphNodes).  Click on one of them, and then click on the word Animation in the right panel.  Then right click it, and choose Reverse Animation.  Repeat this for any other parts listed.

You must immediately continue to Part 3, because you will lose your changes if you do not.


Next:  PART THREE - SETTING UP LANDING AND TAXI LIGHTS