Author: Ted Greene

XPlane2Blender v4.0.0-alpha.5, aka LODs

Download it here: XPlane2Blender v4.0.0-alpha.5, aka LODs

XPlane2Blender v4.0.0-alpha.5, aka LODs

As always, make backups! This includes making backups before saving a 2.79 file in 2.80. There is no going back from that!

Override LODs feature and backwards compatibility

A quick LODs recap

This release includes the last must-have feature for 2.80 – LODs. For those who haven’t used LODs before, it stands for (Levels of Detail). It is a way of defining what to draw when the camera is a certain distance away from an OBJ. In XPlane2Blender we call those ranges “buckets” and put Blender Objects (meshes, lights, armatures, empties) “inside them”. For instance, suppose an OBJ of a hanger with 2 defined ranges (buckets) 0 to 200 and 200 to 400. It has two meshes “HangerDetailed” (bucket 1) and “HangerLowPoly” (bucket 2).

When the camera is close (0 to 199 meters), only the “HangerDetailed” mesh will be drawn. When it is far (200 to 399), only “HangerLowPoly” will be drawn. At 400 meters and above, nothing will be drawn. This is very useful for increasing the performance by not drawing what is too far away for the pilot to see.

There are two styles of Level Of Detail: Additive (where every bucket starts at 0) and Selective (where the end of one bucket and start of the next are equal (see example above)). Use one or the other depending on what you need to draw when; don’t mix between them.

LODs Mode in XPlane2Blender

Using LODs in XPlane2Blender is very easy: Define the ranges (buckets) in the OBJ settings, and tell Blender Objects which buckets they should go in.

“LODs Mode” is considered On when you have specified a number of LOD buckets in the OBJ settings.

image

This means that:

  • LOD validations are on (see later section)
  • Objects must be placed into defined buckets or they will not be drawn. This is where the new “Override LODs” checkbox on Blender Objects comes into play.

[Picture]

The LODs feature works just like 2.79’s Layers Mode LODs, with a new time saving feature and some very small backwards compatibility notes.

Override LODs
  1. In the Object Properties Tab of the Properties Editor, you’ll see a new “Override LODs” checkbox.
  2. When checked, the familiar 4 LOD bucket choice checkboxes will appear.
  3. Specify which buckets an Object will go into. All children below it will also go into the same buckets. Children who also override LODs will pass their new choices on instead.
image


In this picture HangerDetailed has its “Override LODs” checkbox checked, and has been placed into bucket 1. Its child, WindowDetails, will automatically be placed into bucket 1 too.

An Object’s LOD choices will only be used if “Override LODs” is checked.

The idea is that just a few objects in the Blender Hierarchy will need to override the LOD choices, and old projects can be quickly reorganized to take advantage of this new feature. Inheritance will greatly reduce data entry.

Backwards Compatibility

There are only a few differences from 2.79 to be aware of

Backwards Compatibility ConcernResolution
In 2.79 “No buckets chosen = Write to every LOD“. In 2.80 “No buckets chosen = Object not writtenUse the new feature to quickly specify which objects should be in all buckets
2.79 Layers Mode projects did not have an “Override LODs” checkbox, LOD choices hiddenYour old choices are remembered. Use the new Override LODs feature to quickly get the OBJ correct again
2.79 Root Objects Mode used layers 1-4 to put Objects into bucketsQuickly restore your project like this: Make an Empty for each layer used, override the Empty’s LOD buckets, and re-parent the objects so that all Objects are in their former buckets. If an object was used on more layers, make more empties to organize these cases
LOD Validations

For mistakes like not starting the first bucket at 0, having gaps or overlaps between ranges, and etc, an error will be emitted in the log.

Other Bug Fixes

  • #518 – When Export Type is “Cockpit” LOD buckets is now shown.
  • #512 – “Deck” (a rarely used Material property which controls how planes collide with this surface and the area beneath it) is now renamed to “Only Slightly Thick” implying that this collide-able surface is “Only Slightly Thick” as opposed so something that “extends the earth up to that surface”. Imagine a bridge that could not be flown under because under it is “an invisible mound of rock and world surface” vs a bridge that can be flown under because “its deck is only slightly thick”. Get it? Well, maybe the new name will make more sense to everyone without needing to know this example.
  • #511 – People will now be able to use a Particle System File again
  • #276, #525 – Some UI cleanup. “Scenery Properties” will no longer be shown when Export Type is Aircraft or Cockpit, “Autodetect Textures” is no longer drawn because it doesn’t do anything and confuses people on how to use an essential feature: specifying texture paths. The value isn’t removed and one day we’ll have that feature back in some form.

Many thanks to all the people who e-mailed me and helped me design the new LOD feature. This is an alpha feature so if the overall response is “this isn’t doing what we need” it can be ripped out, but, I think it will meet expectations. Also, especially tell me if it difficult to take a 2.79 project with LODs and make it work again. The goal is that it an artist should be able to do it in about 5 minutes without the use of an updater for most projects.

I’m so glad to be working on a project with users who are very willing to send in good bug reports and great constructive feedback and criticism! Very refreshing! As always, if something goes wrong write a bug report (preferable) or e-mail me!

Posted in Aircraft & Modeling, Modeling, Scenery, Tools by | 2 Comments

XPlane2Blender v4.0.0-alpha.4

Download from GitHub here!

XPlane2Blender v4.0.0-alpha.4

As always, make backups!

Over the past month people have reported to me all sorts of weird things:

  • OBJ geometry moving with every export
  • Blender Objects moving after every export
  • Animations spiraling out of control
  • Even simple renaming Blender Objects and restructuring of the Blender hierarchy might trigger a bad export.

And the only cure was to apply all transformations or restart Blender!

Thanks to your bug reports and e-mails I was able to track down the source: all these problems were facets of the same bug!

To make a long story short: I have a fix for XPlane2Blender, but other Blender exporters and users may not be so lucky. I’ve filed a bug with Blender itself, but that is nothing to worry about for X-Plane artists.

Please continue to send me your bug reports! I do read every one of them, even if I don’t get back to you right away.

Posted in Aircraft & Modeling, News, Scenery, Tools by | Comments Off on XPlane2Blender v4.0.0-alpha.4

XPlane2Blender v4.0.0-alpha.3, aka Exportable Collections!

Visit the Github release page to download!

XPlane2Blender for 2.80 has crossed a new milestone! Exportable Collections are in! They work just like root objects (which we are now calling Exportable Objects), the settings for them are just where Layers Mode settings used to be, and Layers Mode projects keep their OBJ settings automatically. More details down below.

As always, make backups! This is still an alpha and how collections work could change!

New Name For Root Objects

As mentioned, Root Objects – the concept – has been renamed to “Exportable Objects”. Everything is the same, it is only the name that is changing in the UI and the docs. This was done to let people know there really isn’t much difference between using the new Collections and the old Root Object system. Half the name is the same! Otherwise it sounds like “Root Objects vs Exportable Collections” are as different as how it used to be with “Root Objects Mode” vs “Layers Mode”. From here on I will use the new names – Exportable Collections and Exportable Objects.

New Features

Exportable Collections

We’re very excited about this: Collections are in! Many thanks to the people who talked about it on #450. I think the feature will be able to do all or most of what you wanted. Here’s how to use them.

  1. When you open a 2.79 file in 2.80, the contents of Layer 1 will be put into a collection called “Layer 1_{the scene’s name}”, the contents of Layer 2 will be put into a collection called “Layer 2_{the scene’s name}” and etc.
  2. Blender has new and exciting ways of using Collections and the 3D View. If Show is on but you can’t see the contents of a collection, try right clicking on it in the outliner, go to Visibility and ensure Render and Viewport are enabled.

I highly recommend reading
New Outliner Controls
Collections Overview. Complex instancing is planned but not supported: #495 and #452.
View Layers

  1. You’ll find the exact same OBJ settings in the exact same layout where Layers Mode used to put them.
  2. The updater will have copied the previous settings if the layer had some object in it or the OBJ settings was changed in some way.
  3. Collections can be marked as “Exportable” or not. Non-Exportable Collections can be used as a way to organize your project, similar to using Empties. Unlike empties
    • An important terminology note: Datablock Objects (Meshes, Lights, Armatures, Empties) can have 1 Object parent and many Object children. Collections can have 1 Collection parent and many Collection children. This means a datablock objects can have 1 parent and be in multiple collections. When an object is linked to a collection, it is in that collection and all that collection’s chain of parents.
    • Collections do not have a location or rotation.
    • A mesh, armature, or other objects can have a blender parent and be in multiple collections. A great opportunity for re-use that XPlane2Blender supports. Also key for another new feature called “Split Animations”.
    • Every object inside the exportable collection and its chain of child collections is collected and exported together as one OBJ. Any children of those objects found outside the exportable collection are ignored, just like how Layers Mode used to work.
    • Each object is included once. Attempting to make duplicates by putting an object in multiple sub-collections of the exportable collection won’t work. In this example Cube only appears once in the OBJ.
  4. What is exported only depends on what objects are in what collection and the value of that collection’s Exportable Collection checkbox. Viewport visibility doesn’t matter.
  5. Everything inside the exportable collection and any of its child collections will be exported. If any object has a child that is outside of the exportable collection, that child and all its children will be silently ignored.
  6. There is no more “Layers Mode vs Root Object” divide, and projects can use Exportable Collections and Exportable Objects at the same time (just not nested).

Here is a picture showing a side by side comparison of the relevant UI in 2.79 and 2.80, using the BD-5J Microjet. After opening the file I hit export and it just worked!

image

In this picture I’ve unchecked Exportable Collection on Layer 2_Scene. Now it won’t export.

Split Animations

Split Animations is one of our most exciting new features – something never before possible in XPlane2Blender! See the guide in the manual, click here to find more.

Other Bug Fixes

  • #493 Unit test system slowly healing and getting back to usable.

Caveats

Things Move On Every Export

There appears to be a Blender bug in 2.80 where sometimes after every export (of any exporter) the objects drift apart. It is unknown why this happens but there are two ways to fix it.

  1. Restart Blender and try again and hope it works
  2. Select all objects and bones and use Apply > Transformations > Scale. And if that doesn’t work, Apply > Transformations > All Transformations. These are drastic, but, if it works, please e-mail and help confirm this bug that we can report to Blender.

Updater Changes

The updater has had some changes and not all of them tested 100 times over like I normally like. I don’t think it will be a problem however. Please e-mail me if you have trouble. If you have a multi-scene project, double check your updated OBJ settings and tell me if you see an automatically made collections with names like “Collection.001”. They should have been renamed.

For those of you patiently waiting for an e-mail back from me about a problem you’ve had with your .blend file, thank you for your patience. I’m going to try to respond to all of them this week!

Posted in Aircraft & Modeling, Scenery, Tools by | 1 Comment

XPlane2Blender v4.0.0-alpha.1

XPlane2Blender v4.0.0-alpha.1, aka Time To Try Blender 2.80!

This is the first release of XPlane2Blender for Blender 2.80! As always, make backups, because there is no going back from overwriting your 2.79 .blend file with Blender 2.80.

The goal of this release was to having something people can play with right now without worrying about the design decisions coming down the line about Collections and LODs.

Features

  • XPlane2Blender UI is preserved!
  • Root Objects is the only useable mode (despite Layers being left in the enum). Attempting to use Layers will cause the exporter to fail.
  • Since Texture Slots are removed and use of EEVEE hasn’t been decided, the only method of specifying texture paths is the Root Object’s Texture Paths fields. Uncheck “Autodetect Textures” to see it.
  • Files with LODs won’t crash – but probably won’t work well. Since this feature’s future is undecided my goal was to just make things export instead of making something that worked correctly. The quick hack is supposed to be this

The 1st LOD bucket is the contents of the first collection (alphabetically), the 2nd LOD bucket is the contents from 2nd collection, etc. The list of collections is taken from every single scene Again, the goal was “make it export” not “make it export perfectly”. I don’t recommend trying to use LODs when trying out Blender 2.80.

aaa_gun_249_280_proof
F-4_cockpit_249_280
F-4_exterior_249_280

Even with just these limitations, I was able to successfully export several scenery objects and two of Laminar Research’s planes. As you can see, the converter is doing its job well!

(F-4 process from 2.49 to 2.79 then 2.80 going from left to right. Ignore the odd geometry under it. I simply forgot to take it out for the picture.)

Things to watch out for:

  • I spent a while trying to figure out the difference between “Hide In Viewport” vs “Enable In Viewport”. Tip: Old layers that weren’t visible are “Shown In Viewport” but “Disabled In Viewport” – “They would be shown in the viewport, if they weren’t disabled”. Right Click the collection > Visibility > Enable In Viewports to see it in the 3D View.
  • It seems that sometimes if an image block in 2.79 had a filepath to a file that doesn’t exist, Blender 2.80 removes said image datablock on load.
  • In order to view a mesh’s UV mapped textures, you’ll first need to give that mesh a material, turn on Nodes and give it an image texture node connoted to the principle BSDF’s shader’s color input. Pick the same image texture that the UV texture is.
  • One file I tried had a weird thing where a yoke was excessively shiny as if it’s normals were messed up, and when it’s manipulator associated with it was deleted, panel textures went black. I think this is very very very project specific, but, keep an eye out for weird Shade Smooth/Shade Flat issues or bad normals.

Thank you so much for your patience while the converter got its last push during September! I can’t wait to see those Blender 2.80 screenshots!

Posted in Aircraft & Modeling, Scenery, Tools by | 5 Comments

XPlane2Blender 3.6.0-alpha.1, aka, The 2.49 Converter

After some unfortunate delays, the 2.49 converter is released! The instructions for installation, configuration, and use are quite long, so I won’t copy them here as usually do. To download the files, scroll down to the bottom of the page to “Assets”.

The GitHub page has an updated copy of our the 2.49 scripts. Download and install them.

The converter will only get better from real world examples, so please send me your feedback and screenshots so I can fully understand the world of 2.49.

And don’t worry, it was designed to work without Blender 2.49 if needed.

Download here! I can’t wait to see life breathed into these old projects!

Posted in Aircraft & Modeling, Tools by | 3 Comments

Status Update For XPlane2Blender!

We have a lot of exciting news for XPlane2Blender users on three fronts: the Blender 2.49 Converter, Blender 2.8 support, and v3.5.1-beta.2!

Firstly I want to say a huge thank you to all the community for all your patience, advice, and support during this time of heavy development and slow releases. One of the biggest changes, I think, to XPlane2Blender in the last few months has actually been all of you! I’ve asked for advice and gotten constructive comments in droves, I’ve asked for projects and I’ve gotten example files to work with! I even asked for help with contributions to the project and gotten several pull requests to merge! Your passion for Blender and X-Plane inspires my passion for making the tools you want and need!

Now for the details!

The 2.49 Converter

The XPlane2Blender 2.49 converter has been in development for nearly a year, and the alpha is almost here. Some doubted if it was even possible to save these old projects, but the results speak for themselves. Observe these screenshots of Laminar Research’s KingAir C90B, F-4, and Boeing 737 that have been converted and exported with XPlane2Blender for 2.79!

KingAir C90B

KingAir C90B Cockpit Lit Up At Night
KingAir C90B Exterior, Showing Flaps Animating
KingAir C90B Interior Seating

McDonnell Douglas F-4

F-4 Cockpit Showing Panel Textures And Dials Rotated

Boeing 737

737 Main Gear, Beginning Retraction Animation

These are not proofs of concept, they actually work very well! Animations, manipulators, panel textures, meshes, lights, OBJ directives like shading, no shadow, DISABLE_DRAW, ATTR_light_level, and more, autodetecting textures, and preserving workflow features like picking the same OBJ file names and BULK export vs Regular export are all in the alpha. Basic scenery objects also convert, but some directives aren’t included yet.

We are not feature complete, and it will never be perfect: pre-conversion and post-conversion fixes will likely be necessary. However, spending only a day or two for the conversion is far better than redoing years of work!

Getting Your Old Projects Ready

The alpha is about two weeks away from release. In that time I HIGHLY recommend finding your old projects and doing the following

  1. Make backups of your files, because there is no return if you accidentally save over a 2.49 file after opening it in 2.79
  2. Ensure that ALL the OBJs in your project exports correctly with Blender 2.49b2 (the last version ever released) and our version of the 2.49 XPlane2Blender scripts.

    If you are able to do so and it can run in X-Plane 11.36, the converter has a very good chance of bringing it forward with few things to fix post conversion.

    The big thing I’ve noticed is that DataRefs usually need to be fixed as future versions of X-Plane added more that made unambiguous Datarefs ambiguous.

    I’ve noticed that some Blender 2.49 Datablocks have become “haunted” – where it crashes Blender 2.49 if clicked on or changed. I have no idea why or how. I can’t see a pattern or do anything about it, so take notes as these objects may need special attention post-conversion. If you have ideas, let me know!

    Also be on the look out for game properties with bad values, like an “litlevel” that is missing a dataref, or a “GLOBAL_tint” that doesn’t have two numbers separated by a space. X-Plane may fill in defaults, but the converter doesn’t. Don’t worry, the converter will help find some of these – as long as the property names are spelled correctly!
  3. If you are unable to run Blender 2.49, the converter may still work but you won’t get a chance to clean up the file and correct mistakes – it may require a lot more work post-conversion if you even get the chance. I highly recommend finding an old computer in the attic if needed.
  4. Most importantly, make sure you have the DataRefs.txt that 2.49 was or is using during export. Otherwise it may be impossible to correctly convert animations.

The cleaner the input file, the cleaner the conversion, the better the 2.79 file. That is why I’m releasing this guide before releasing the alpha – so that some of this work can be done beforehand and day 1 questions will be about the converter and not 2.49 problems.

One last note: Releasing our internal version of XPlane2Blender for 2.49 does not indicate support for it. It is merely there to help prepare your project for use with the converter. Remember, we’re trying to run away from 2.49 as fast as possible.

Blender 2.8 Support

A person recently e-mailed me: “Will Blender 2.8 have support before the New Year?” My answer: Yes! Yes it will! Don’t lose hope!

During the alpha cycle for the converter I will be finishing the alpha for Blender 2.8 as fast as possible. We’re very close – the UI is working and I’m about half way through figuring out which API calls need to be replaced and how.

XPlane2Blender’s UI and Custom Data in Blender 2.80

Before September is over you will start seeing more commits on the 399-blender-28-support branch. To keep up the hope, check out this screenshot of the BD-5J Microjet in XPlane2Blender in 2.8!

v3.5.1.beta.2 + Pull Requests

When I put out a desperate plea for some help developing the project I was gladly surprised by Kim Brandwijk, who has made several high quality pull requests that are small enough in scope to be added to v3.5.1.beta.2. I regret that I did not have time to merge them in a timely matter, but now with both alphas releasing soon all users can look forward to some excellent optimizations and speed increases soon. Hopefully the pull requests and community development can pickup some energy again.

I hope you all are as excited about this as I am! It has been a long summer of lots of coding, but I think people will be very happy with all the new features! Stay tuned for more news!

Posted in News by | 12 Comments

XPlane2Blender v3.5.1-beta.1

Download it here!

It has been some time! I have been working as hard as I can on the converter (to great applause so far!), but, there have still been some features and fixes developed along the way. By now it was time to collect and release them!

As always This is a beta. It makes data model changes which may still have bugs. Make backups!

Features

“Cast Shadow (Local)”

Previously, you could only set “Cast Shadow” to be on or off for “Scenery” and “Instanced Scenery” export types. This would, for the whole object, turn on and off shadows. Now, “Cast Shadow” has been removed from the OBJ settings and “Cast Shadow (Local)” has been placed in the material settings. With this, individual meshes can have shadows or not and it works for Aircraft and Cockpit objects too!

Read More
Posted in Aircraft & Modeling, Scenery, Tools by | 8 Comments

Blender 2.49 files needed!

The Problem

As some of you may be aware, Blender 2.49 is old unsupported software that is becoming increasingly less usable on modern computers. To make matters worse, authors have large projects that are currently stuck on this platform, jeopardizing their work!

The Solution

We are creating a 2.49 XPlane2Blender converter inside of XPlane2Blender 2.7x, so that opening a 2.49 Blend file in 2.7x will automatically convert meshes, animations, materials, lights, textures, and XPlane2Blender properties into a modern format. This isn’t just an idea, we currently have a strong proof of concept that animations can be converted from old to new!

The 2.49 Converter Needs Your Help

The goal is

That if it exports in 2.49, it exports in 2.7x as similarly as possible.
That the conversion process is hassle free and also transparent.
That your work is safe and won’t be lost if there is a problem.

To accomplish this we’re going to need a lot of test .blend files and projects – to make it work for artists in the wild we need projects in the wild! We’ll take anything working and not working.

  • All source files will be kept secure and confidential within Laminar Research, and only used for this feature of XPlane2Blender, unless you make it open source.
  • Given that we’re trying to convert EVERYTHING, including materials and textures, it would also be extremely nice to have all files referenced as well.
  • Any description you’d like to include (preferably in a text block) would be nice too.

Again, just as with any other time someone sends me a sample to debug, it is kept secure and private, kept only for as long as needed, you can ask me to delete it at any time, and is only used for the development of that specific bug or feature of XPlane2Blender. They would never be used to develop any Laminar Research asset.

If you’re willing to submit a project to me, please get in contact via e-mail, DM, comment, or especially Github bug #397.

Please ask any questions!

Posted in Aircraft & Modeling, Modeling, Scenery, Tools by | 8 Comments

XPlane2Blender v3.5.0-rc.1 is out!

XPlane2Blender v3.5.0-rc.1

XPlane2Blender is now X-Plane 11.30 ready! Not much has changed since beta.3, just some fixes to the particle stuff.

Bug Fixes

#373 – Test Script’s –filter flags now needs less escaping for its regexes
#377 – Show/Hide animations on empties is now being exported again
#384 – Particle follow non-colocated animations

Sound Emitter has been removed from the Empty Special types menu. One day it will be back in!

Posted in Aircraft, Aircraft & Modeling, Cockpits, Modeling, Panels by | 26 Comments

XPlane2Blender v3.5.0-beta.2 is out!

This beta brings in many new bug fixes and heavily requested new features! As with any beta, be aware that this could break your project SO MAKE BACKUPS! We don’t think there are any drastic changes to the data model, but, better safe than sorry.

Bug Fixes

  • #355 – A small UI fix relating to too many manipulator fields being shown
  • #360 – A bug fix for Drag Rotate manipulators giving false negatives
  • #353, #363, and #260 – All relate to warning people and correct what was allowed with NORMAL_METALNESS and BLEND_GLASS. Previously Blend Glass was in the same drop down menu as Alpha Blend, Alpha Cutoff, and Alpha Shadow. Now it is a checkbox allowing you to correctly specify a Blend Mode and apply Blend Glass to it. Existing materials with Blend Glass will see this new checkbox automatically checked. Blend Mode will be set to Alpha Blend or, if your plane is old enough to have been worked on during X-Plane 10, it will be set to whatever it was back then.
    3_5_0_beta_2_blend_glass_checkbox

See the internal text block “Updater Log” for a list of what got updated, including this. You may see, for example:
INFO: Set material "Material_SHADOW_BLEND_GLASS"'s Blend Glass property to true and its Blend Mode to Shadow

  • #366 – An Optimization! Useless transitions in the OBJ were being written, now they’re not. Custom Properties still work, there won’t be any visual changes to your OBJ. We haven’t done any profiling but it might have decreased OBJ loading time by a small amount too.

Features

Command Search Window

Thanks to #361, just like the Datarefs.txt Search Window, we now have the same capabilities for searching Commands.txt (for manipulators). We are shipping with X-Plane’s latest Commands.txt file, but of course you can replace it with your own (as long as you keep the name the same). One day we hope to make it much more flexible.
3_5_0_beta_2_command_search_window

Particle Emitters (not very useful to most yet, I know)

Thanks to #358, some people who have access to X-Plane’s cutting edge particle code can use XPlane2Blender to specify particle emitters. Don’t worry, we’re all working as hard as we can to get these into the hands of others. Fortunately, XPlane2Blender users can hit the ground running the minute it drops!
3_5_0_beta_2_particle_screenshot

Build Scripts And Test Runners

  • #302 and #307 – Are you a professional XPlane2Blender maintainer and developer (if so we should probably talk!) Then you need a better build script, and a test script to match! Introducing mkbuild.py, the build script for the modern developer! It creates, it tests, it renames without messy mistake prone human intervention! To top that off, how about a testing script that doesn’t give false positives!
Posted in Aircraft, Aircraft & Modeling, Cockpits, Development, Modeling, Panels by | 8 Comments