Editing animations and transformations

The latest development release of ModelConverterX adds new functionalities to the hierarchy editor. With them you can edit animations and transformations in your model and add new animations and transformations as well.

In this video tutorial I demonstrate how it works:

I hope this new functionality makes it easier to tweak your models. If you have any questions or problems with this new functionality, please post your question on the ModelConverterX forum at FSDeveloper.

Condition variable options

Many scenery and aircraft objects contain some conditional code. For example a bit of the object that is only shown when certain conditions are met. To be able to process such conditions on import of pre-FSX objects MCX needs to know what the value of the variables in these conditions is. So when such conditions are found in the object, you will get a form where you can enter the value of the variables found in the object. See screenshot of this form you can see below.

Sometimes it can be annoying to get this additional form where you need to enter the values. Therefore ModelConverterX has different modes to work with these variables. You can set them in the options. I have now added a new option to this setting. The possible values are:

  • AlwaysTrue: the value of the variable is not checked, the condition is always true.
  • AlwaysFalse: the value of the variable is not checked, the condition is always false.
  • VisibilityCondition: the value of the variable is not checked, a FSX style visibility is made and used to represent the condition.
  • UserSpecified: the form mentioned above is shown where the user can enter the values of the variables. Then using these values it is checked if the condition is true or false.
  • DefaultValues (new): This one works like UserSpecified, but instead of showing the form it uses the default values for the different variables. This are the values that are shown in the form initially as well.

Prepar3D v4.4 PBR materials

I know I haven’t posted on this blog for a while, but it’s time for an announcement that needs to be here on this blog as well.

The development release of ModelConverterX does include support for the new Prepar3D v4.4 PBR materials. This means that MCX can now:

  • Read the material settings from a P3D v4.4 MDL file
  • Write the material settings to a P3D v4.4 MDL/BGL file
  • View and edit the material settings in the material editor

The preview image of MCX does not use the PBR settings, so the preview is still as before. For a pure PBR material it will probably look a bit weird. That’s something for a future update.

In the material editor I have added a special material view filter that will show you only the PBR related attributes. See the screenshot below. If you want to make a PBR material make sure you set the ‘Is PBR material’ attribute to true, else MCX will export as a normal P3D material.

Another thing you need to be aware of is that MCX can not automatically distinguis between the P3D v4.4 and previous v4 SDKs. This means you might manually have to check if the XtoMDL and BGLComp path for both versions are still correct. You can see them in the options.

Let me know if I forgot anything needed for PBR or if you find other issues. It was quite some refactoring to add this, so I might have broken something else by accident.

 

CreateXMLLibObj changes

In the next development release of scenProc there is a change to the CreateXMLLibObj step, it has some extra attributes. This means that you will have to update your scripts to work in the latest version.

Before the step had the following attributes:

  1. filter
  2. guid
  3. heading attribute
  4. heading offset
  5. altitude
  6. optional options

In the new build the attributes are as follows:

  1. filter
  2. guid
  3. heading attribute
  4. heading offset
  5. altitude
  6. scale
  7. optional options
  8. optional guid attribute

The new attributes allow you to specify the scale of the object (either a value or an attribute name containing the scale value). The new optional attribute for the guid allows you to read the GUID from a feature attribute, instead of the value used in the guid attribute.

All the details are in the updated manual as well.

Material conversions

Lately I have been doing a lot of experimentation with converting objects between FS, AeroFly and X-Plane. Converting objects between the different simulators is possible, but of course there are differences. For example the way materials work is slightly different in each simulator. I have now added an extra material conversion feature to the material editor that can help you with this. When using this feature all materials in the objects will be translated between the selected simulators.

Below is an overview of what the conversion currently does. I’m sure it could be extended further in the future, just let me know if there are things missing.

FS to AeroFly

  • Convert normal map from FS specific form to generic form
  • Remove unsupported textures (fresnel, environment, etc)
  • Remove alpha channel from diffuse when used to blend environment map instead of for transparency.

FS to X-Plane

  • Convert normal map from FS specific form to generic form
  • Remove unsupported textures (fresnel, environment, etc)
  • Remove alpha channel from diffuse when used to blend environment map instead of for transparency.
  • Combine specular and normal texture into one sheet, as used by X-Plane

AeroFly to FS

  • Convert normal map from generic form to FS specific form

X-Plane to FS

  • Convert normal map from generic form to FS specific form
  • Split normal map into normal map and specular map

AeroFly FS2 support in ModelConverterX

I have added two new exporters in ModelConverterX, with these you can export objects to the TGI format for AeroFly or export scenery to the TSC format of AeroFly.

If you save your object in the TGI format, you need to use the AeroFly Content Converter to put it into the sim. ModelConverterX will save the basic geometry and material settings. Animations and levels of detail are not exported, since I haven’t learned how to do that.

If you export your scenery as a TSC file ModelConverterX will also export object placement data to AeroFly. All objects and the textures they used are all saved and the AeroFly Content Converter is automatically called for your scenery. All the object and texture files are put in the folder where you select to save the TSC file. The screenshot below shows some objects I placed with ModelConverterX.

The current implementation should work fine for scenery objects. For ground polygons I probably need to adjust some settings to let them work correctly. That’s something I plan to expand later. So please give the new exporters a try and let me know if there are issues or additional features that I could implement.

X-Plane DSF support

I have just released an update of ModelConverterX that adds initial DSF support for X-Plane. You can now read and write DSF files.

If you read an X-Plane DSF file the models referenced from it and the placement of those models will be imported.

If you write an X-Plane DSF file the file save dialog will ask you for the location the DSF file. You should go to the scenery folder of your choice and then press enter. The name you enter doesn’t matter. ModelConverterX will automatically make a folder objects to save the objects and a folder “Earth nav data” with the correct subfolders to store the DSF file.

Be aware that the DSF exporter does at the moment not merge what you save with existing DSF files. So if they already exist they will be overwritten!

If an object has multiple textures than the X-Plane OBJ and DSF exporters will make sure that multiple objects are exported and that these are all placed at the same location.

I’m sure there will be some bugs remaining, I’m still learning X-Plane as well, so let me know if you find something.

Remember form states

For scenProc I already implemented a function a while ago that it would remember the position and size of the different forms when using the application. For ModelConverterX such a feature was on the wishlist for quite a while already as well.

Today I finally implemented it and compared to the way I did it in scenProc a while ago I now made a very generic implementation, so that I can use it on any form in any application. So that way I hopefully don’t forget to enable it in the future when I add new forms to ModelConverterX.

If you grab the latest development release it will remember where you put all the different forms. So that means that you can nicely organize the main windows, the material editor and the other editors side by side. And next time ModelConverterX will have remembered your layout.

ModelDef viewer improvements

I have made two improvements to the ModelDef viewer in ModelConverterX lately.

The first one is that you can now search in the ModelDef file. At the top you find a toolbar with a text box for the search string and a previous and next button to search backwards or forward for the entered search string.

The second improvement is that you can now only show the part of the ModelDef file that is being used by your model. This is selected with the checkbox in the toolbar. If you select it (which is the default value now), only the animations and part info’s that are used in your model are shown. This will greatly reduce the list in many cases.

Which Visual C++ runtime files does XtoMDL use?

A problem often reported for ModelConverterX is that XtoMDL throws some kind of error when trying to compile. These are often the result of missing dependencies on the system of the end user. For example DirectX 9.0c not being installed. But XtoMDL (and its DLL files) also depend on the Visual C++ runtime files. Unfortunately which version you need differs between the different version of FSX and Prepar3D. In the table below I have tried to create some overview:

FS versionVisual C++ version
FSXVisual C++ 2005
P3D v1Visual C++ 2010
P3D v2Visual C++ 2010
P3D v3Visual C++ 2010
P3D v4Visual C++ 2013 and Visual C++ 2015
P3D v5Visual C++ 2013 and Visual C++ 2015
FSWVisual C++ 2010 and Visual C++ 2013