{"id":17079146,"url":"https://github.com/marginal/xplane2blender","last_synced_at":"2025-08-15T15:05:51.203Z","repository":{"id":3875875,"uuid":"4962214","full_name":"Marginal/XPlane2Blender","owner":"Marginal","description":"Blender 2.49 scripts to import and export models in X-Plane v8/v9/v10 .obj format","archived":false,"fork":false,"pushed_at":"2014-09-12T00:57:42.000Z","size":8468,"stargazers_count":19,"open_issues_count":1,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-26T14:55:50.331Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://marginal.org.uk/x-planescenery","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Marginal.png","metadata":{"files":{"readme":"ReadMe-XPlane2Blender.html","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-07-09T17:53:02.000Z","updated_at":"2023-10-31T13:42:44.000Z","dependencies_parsed_at":"2022-09-20T12:14:30.282Z","dependency_job_id":null,"html_url":"https://github.com/Marginal/XPlane2Blender","commit_stats":null,"previous_names":[],"tags_count":82,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marginal%2FXPlane2Blender","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marginal%2FXPlane2Blender/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marginal%2FXPlane2Blender/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marginal%2FXPlane2Blender/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Marginal","download_url":"https://codeload.github.com/Marginal/XPlane2Blender/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248631669,"owners_count":21136554,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T12:24:45.323Z","updated_at":"2025-04-12T20:41:31.760Z","avatar_url":"https://github.com/Marginal.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\u003e\n\u003chtml\u003e\n\u003chead\u003e\n  \u003cmeta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\"\u003e\n  \u003cmeta name=\"description\" content=\"X-Plane import/export scripts for Blender 3D\"\u003e\n  \u003cmeta name=\"keywords\" content=\"X-Plane, simulator, scenery, Blender, Blender3D\"\u003e\n  \u003ctitle\u003eXPlane2Blender\u003c/title\u003e\n  \u003cmeta name=\"author\" content=\"Jonathan Harris\"\u003e\n  \u003cstyle type=\"text/css\"\u003e\n.banner { font-family: Arial,Helvetica,sans-serif; background-color: lightskyblue; text-align: left; height: 32px; }\n.dnl { font-family: Arial,Helvetica,sans-serif; font-size: small; background-color: lightskyblue; }\nsamp { font-family: Arial,Helvetica,sans-serif; }\nh2 { font-family: Arial,Helvetica,sans-serif; }\nh3 { font-family: Arial,Helvetica,sans-serif; }\nh4 { font-family: Arial,Helvetica,sans-serif; }\nh5 { font-family: Arial,Helvetica,sans-serif; }\nul { margin: 0; }\nkbd {font-family: sans-serif; color: black; background-color: white; border: 1px solid black; -webkit-border-radius:5px; -moz-border-radius:5px; border-radius: 5px; padding: 1px 1px 0px; }\npre { border: 1px solid; padding: 8px; width: 75%; }\nblockquote { font-family: monospace; }\nem { font-style:normal; color:FireBrick; }\n  \u003c/style\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003ctable style=\"width: 100%;\" border=\"0\" cellpadding=\"2\"\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd class=\"banner\"\u003eMarginal\u0026nbsp;\u0026rarr; \u003ca href=\"http://marginal.org.uk/x-planescenery/\"\u003eX-Plane\u0026nbsp;Scenery\u003c/a\u003e\u0026nbsp;\u0026rarr; \u003ca href=\"http://marginal.org.uk/x-planescenery/tools.html\"\u003eTools\u003c/a\u003e\u0026nbsp;\u0026rarr; XPlane2Blender\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003chr\u003e\n\n\u003ch1\u003eScenery \u0026amp; Cockpit import/export scripts for Blender 2.49\u003c/h1\u003e\n\u003ch2\u003eOverview\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://www.blender.org/\"\u003eBlender\u003c/a\u003e is an open source 3D object editor for Windows, Mac and UNIX.\u003c/p\u003e\n\u003cp\u003eThese Blender scripts export models created in Blender 2.49 to X-Plane v8, v9, v10 or CSL \u003ccode\u003e.obj\u003c/code\u003e format.\u003c/p\u003e\n\u003cp\u003eThe scripts also import existing X-Plane v6, v7, v8, v9, v10 and CSL \u003ccode\u003e.obj\u003c/code\u003e files and X-Plane v7, v8, v9 and v10 \u003ccode\u003e.acf\u003c/code\u003e airplanes.\u003c/p\u003e\n\n\u003ch2\u003eRequirements\u003c/h2\u003e\n\u003cp\u003eRuns on Windows 2000 or later, Mac OS 10.4 or later, and Linux.\u003c/p\u003e\n\u003cp\u003eRequires Blender 2.49:\u003c/p\u003e\n\u003ctable style=\"width: 100%; text-align: left;\" border=\"0\" cellpadding=\"2\" cellspacing=\"2\"\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd style=\"vertical-align: top; text-align: center;\"\u003eWindows: \u003c/td\u003e\n      \u003ctd\u003eDownload and run this \u003ca href=\"http://download.blender.org/release/Blender2.49b/blender-2.49b-windows.exe\"\u003eBlender installer\u003c/a\u003e. When presented with options, use the default choices.\u003cbr\u003e\n        Some scripts also require you to install \u003ca href=\"http://www.python.org/ftp/python/2.6.6/python-2.6.6.msi\"\u003ePython 2.6\u003c/a\u003e.\u003cbr\u003e\n        \u003cbr\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd style=\"vertical-align: top; text-align: center;\"\u003eMac OS\u003cbr\u003e10.5\u0026nbsp;-\u0026nbsp;10.8: \u003c/td\u003e\n      \u003ctd\u003eDownload and open this \u003ca target=\"_blank\" href=\"http://download.blender.org/release/Blender2.49b/blender-2.49b-OSX-10.5-py2.5-intel.zip\"\u003eBlender archive\u003c/a\u003e.\u003cbr\u003e\n        Copy the \u003csamp\u003eBlender\u003c/samp\u003e application out of the archive \u003ci\u003ee.g.\u003c/i\u003e to your \u003ccode\u003e/Applications\u003c/code\u003e folder.\u003cbr\u003e\n        \u003cbr\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd style=\"vertical-align: top; text-align: center;\"\u003eMac OS\u003cbr\u003e10.4\u0026nbsp;(Intel): \u003c/td\u003e\n      \u003ctd\u003eDownload and open this \u003ca target=\"_blank\" href=\"http://download.blender.org/release/Blender2.49b/blender-2.49b-OSX-10.4-py2.3-intel.zip\"\u003eBlender archive\u003c/a\u003e.\u003cbr\u003e\n        Copy the \u003csamp\u003eBlender\u003c/samp\u003e application out of the archive \u003ci\u003ee.g.\u003c/i\u003e to your \u003ccode\u003e/Applications\u003c/code\u003e folder.\u003cbr\u003e\n        \u003cbr\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd style=\"vertical-align: top; text-align: center;\"\u003eLinux: \u003c/td\u003e\n      \u003ctd\u003eIf Blender \u003cb\u003e2.49\u003c/b\u003e is offered in your distro's package manager then download and install it from there.\u003cbr\u003e\n        Otherwise download for \u003ca href=\"http://download.blender.org/release/Blender2.49b/blender-2.49b-linux-glibc236-py26-i386.tar.bz2\"\u003ex86\u003c/a\u003e or \u003ca href=\"http://download.blender.org/release/Blender2.49b/blender-2.49b-linux-glibc236-py26-x86_64.tar.bz2\"\u003ex86_64\u003c/a\u003e and unpack it to \u003ci\u003ee.g.\u003c/i\u003e your desktop.\u003cbr\u003e\n        You will also need to obtain a copy of Python \u003cb\u003e2.6\u003c/b\u003e for your distro.\u003cbr\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003ch2\u003eTutorials\u003c/h2\u003e\n\u003cp\u003eThis document is a reference and assumes basic familiarity with Blender. You may find it easier to get started using the following tutorials, and come back to this document later:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003e\u003ca target=\"_blank\" href=\"http://marginal.org.uk/x-planescenery/tutorials.html\"\u003eUsing Blender to create X-Plane scenery\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca target=\"_blank\" href=\"http://wiki.blender.org/index.php/Doc:2.4/Manual\"\u003eThe Blender Manual\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eRun Blender to check that it is installed correctly. If the Blender window appears \u0026ldquo;blurry\u0026rdquo; turn off anti-aliasing in your video card's OpenGL settings and re-start Blender.\u003c/p\u003e\n\u003cp\u003eNow close Blender.\u003c/p\u003e\n\u003ctable style=\"text-align: left; width: 100%;\" border=\"0\" cellpadding=\"2\" cellspacing=\"2\"\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd style=\"vertical-align: top; text-align: center;\"\u003eWindows: \u003cbr\u003e\n      \u003c/td\u003e\n      \u003ctd\u003eExtract the contents of this zip file to a new (temporary) folder.\u003cbr\u003e\n        Double-click on the file \u003ccode\u003einstall.cmd\u003c/code\u003e to install the scripts.\u003cbr\u003e\n        \u003csmall\u003e(Unless when installing Blender you chose to place your data files in a system-owned location, in which case right-click on \u003ccode\u003einstall.cmd\u003c/code\u003e and choose \u003csamp\u003eRun as administrator\u003c/samp\u003e instead).\u003c/small\u003e\u003cbr\u003e\n        \u003cbr\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd style=\"vertical-align: top; text-align: center;\"\u003eMac OS: \u003c/td\u003e\n      \u003ctd\u003eDouble-click on the file \u003ccode\u003einstall.command\u003c/code\u003e to install the scripts in all compatibile copies of the Blender application that the Finder knows about.\u003cbr\u003e\n        You may be prompted for your password if you installed Blender into a system-owned location such as \u003ccode\u003e/Applications\u003c/code\u003e.\u003cbr\u003e\n        \u003cbr\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd style=\"vertical-align: top; text-align: center;\"\u003eLinux:\u003c/td\u003e\n      \u003ctd\u003eIf you obtained your copy of Blender from your distro's package manager, then extract the contents of this zip file to \u003ccode\u003e~/.blender/scripts\u003c/code\u003e .\u003cbr\u003e\n        If you downloaded Blender from the links above, then extract the contents of this zip file to the (hidden) folder \u003ccode\u003e.blender/scripts\u003c/code\u003e within the folder where you unpacked the archive.\u003cbr\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003e(Re)start Blender. Check that this file can be viewed by choosing \u003csamp\u003eHelp\u0026nbsp;\u0026rarr; X-Plane\u003c/samp\u003e in Blender.\u003c/p\u003e\n\n\u003ch2\u003eImporting\u003c/h2\u003e\n\u003cp\u003eFirst, move the 3D Cursor to where you want the imported object to be placed. Usually you'll want the object to be placed at the origin so just press \u003ckbd\u003eShift\u003c/kbd\u003e\u0026nbsp;\u003ckbd\u003eC\u003c/kbd\u003e to centre the 3D Cursor at the origin.\u003c/p\u003e\n\n\u003ch3\u003eImporting X-Plane objects\u003c/h3\u003e\n\u003cp\u003eChoose \u003csamp\u003eFile\u0026nbsp;\u0026rarr; Import\u0026nbsp;\u0026rarr; X-Plane\u0026nbsp;Object\u003c/samp\u003e, select a \u003ccode\u003e.obj\u003c/code\u003e file and press \u003csamp\u003eImport\u0026nbsp;OBJ\u003c/samp\u003e.\u003c/p\u003e\n\u003cp\u003eYou can import multiple \u003ccode\u003e.obj\u003c/code\u003e files and re-export them as a single file. But note that the X-Plane \u003ccode\u003e.obj\u003c/code\u003e file format only supports the use of one texture file, so you'll have to create a single larger file containing all required textures - see \u003ca href=\"#resize\"\u003ebelow\u003c/a\u003e. Or you can have Blender create this single file automatically by selecting all the objects and, in a \u003csamp\u003eUV/Image Editor\u003c/samp\u003e window, choosing \u003csamp\u003eImage\u0026nbsp;\u0026rarr; Consolidate\u0026nbsp;into\u0026nbsp;one\u0026nbsp;image\u003c/samp\u003e.\u003c/p\u003e\n\n\u003ch3\u003eImporting FS9 \u0026amp; FSX models\u003c/h3\u003e\n\u003cp\u003eChoose \u003csamp\u003eFile\u0026nbsp;\u0026rarr; Import\u0026nbsp;\u0026rarr; FS9/FSX\u0026nbsp;Model\u003c/samp\u003e, select a \u003ccode\u003e.mdl\u003c/code\u003e file and press \u003csamp\u003eImport\u0026nbsp;MDL\u003c/samp\u003e.\u003c/p\u003e\n\u003cp\u003eMSFS models usually use multiple textures, but the X-Plane \u003ccode\u003e.obj\u003c/code\u003e file format only supports the use of one texture file, so you'll have to create a single larger file containing all required textures - see \u003ca href=\"#resize\"\u003ebelow\u003c/a\u003e. Or you can have Blender create this single file automatically by selecting all the objects and, in a \u003csamp\u003eUV/Image Editor\u003c/samp\u003e window, choosing \u003csamp\u003eImage\u0026nbsp;\u0026rarr; Consolidate\u0026nbsp;into\u0026nbsp;one\u0026nbsp;image\u003c/samp\u003e.\u003c/p\u003e\n\n\u003ch3\u003eImporting X-Plane planes\u003c/h3\u003e\n\u003cp\u003eChoose \u003csamp\u003eFile\u0026nbsp;\u0026rarr; Import\u0026nbsp;\u0026rarr; X-Plane\u0026nbsp;Plane\u0026nbsp;or\u0026nbsp;Weapon\u003c/samp\u003e and choose whether to import the plane or weapon so that the \u0026ldquo;reference point\u0026rdquo; is located at the 3D Cursor (for making cockpit \u0026 misc objects) or so that the \u0026ldquo;centre of gravity\u0026rdquo; is located at the 3D Cursor (for making CSLs and static scenery).\u003c/p\u003e\n\u003cp\u003eThen select a \u003ccode\u003e.acf\u003c/code\u003e or \u003ccode\u003e.wpn\u003c/code\u003e file and press \u003csamp\u003eImport\u0026nbsp;ACF\u0026nbsp;or\u0026nbsp;WPN\u003c/samp\u003e.\u003c/p\u003e\n\u003cp\u003eThe script creates up to three versions of the plane or weapon in Blender, one in each of layers 1, 2 and 3. The versions in layers 2 and 3 use approximately \u003csmall\u003e\u003csup\u003e1\u003c/sup\u003e\u003c/small\u003e/\u003csmall\u003e\u003csub\u003e10\u003c/sub\u003e\u003csup\u003eth\u003c/sup\u003e\u003c/small\u003e and \u003csmall\u003e\u003csup\u003e1\u003c/sup\u003e\u003c/small\u003e/\u003csmall\u003e\u003csub\u003e100\u003c/sub\u003e\u003csup\u003eth\u003c/sup\u003e\u003c/small\u003e of the number of faces compared to the version in layer 1. See \u003ca href=\"#Level_Of_Detail\"\u003eLevel of Detail\u003c/a\u003e below for an explanation of why it does this.\u003c/p\u003e\n\u003cp\u003eImported planes need some tweaking before you can export them as scenery or as a CSL object; see \u003ca href=\"./XPlaneImportPlane.html\"\u003eTweaking Planes\u003c/a\u003e.\u003c/p\u003e\n\n\u003ch2\u003eExporting\u003c/h2\u003e\n\u003cp\u003eFirst, choose \u003csamp\u003eFile\u0026nbsp;\u0026rarr; Save As\u0026#8230;\u003c/samp\u003e and save the \u003ccode\u003e.blend\u003c/code\u003e file in the aircraft or scenery folder where you want the exported object(s) to end up.\u003cp\u003e\n\n\u003ch3\u003eExporting objects\u003c/h3\u003e\n\u003cp\u003eChoose \u003csamp\u003eFile\u0026nbsp;\u0026rarr; Export\u0026nbsp;\u0026rarr; X-Plane\u0026nbsp;Object\u003c/samp\u003e\u003c/p\u003e\n\u003cp\u003eThe object is exported in the same folder and with the same name as the current Blender file, but with a \u003ccode\u003e.obj\u003c/code\u003e extension. Blender may display some informational messages - click on one of these messages to see which object(s) the message refers to.\u003c/p\u003e\n\u003cp\u003eIf there is an error then the scripts will attempt to identify and highlight the offending Blender object(s).\u003c/p\u003e\n\n\u003ch3\u003eExporting facades\u003c/h3\u003e\n\u003cp\u003eTBD\u003c/p\u003e\n\n\u003ch3\u003eExporting autogen blocks\u003c/h3\u003e\n\u003cp\u003eTBD\u003c/p\u003e\n\n\u003ch2\u003eCreating X-Plane objects\u003c/h2\u003e\n\u003cp\u003eX-Plane objects are made using the techniques described below whether the object is intended as a scenery object, an aircraft \u0026ldquo;Misc\u0026rdquo; object, an aircraft cockpit object, or a \u0026ldquo;CSL\u0026rdquo; object for use with multi-user plugins such as \u003ca href=\"http://www.xsquawkbox.net/xsb/\"\u003eXSquawkBox\u003c/a\u003e or \u003ca href=\"http://www.ivao.aero/softdev/X-IvAp/\"\u003eX-IvAp\u003c/a\u003e. Only Lamps and Meshes are exported to X-Plane. You can use other Blender object types, \u003ci\u003ee.g.\u003c/i\u003e Curves and Surfaces, to construct your scenery as long as you convert them to meshes before exporting to X-Plane.\u003c/p\u003e\n\u003cp\u003eCockpit objects support additional functionality described \u003ca href=\"./XPlane3DCockpits.html\"\u003ehere\u003c/a\u003e, and CSL objects have some limitations described \u003ca href=\"./XPlaneExportCSL.html\"\u003ehere\u003c/a\u003e.\n\n\u003ch3\u003eTextures\u003c/h3\u003e\n\u003cp\u003eX-Plane objects support only one primary texture; in an image editor application create one texture file that is like a \u0026ldquo;\u003ca href=\"http://en.wikipedia.org/wiki/Collage\" target=\"_blank\"\u003ecollage\u003c/a\u003e\u0026rdquo; of all of the textures that you need in your model. The height and width of the texture file must be powers of two \u003ci\u003ee.g.\u003c/i\u003e 128, 256, 512, 1024, 2048 (X-Plane v9 only) or 4096 (X-Plane v10 only) but it doesn't have to be square. If you later find that you run out of space in your texture file you can use \u003ca href=\"#resize\"\u003ethis technique\u003c/a\u003e to increase the size.\u003c/p\u003e\n\u003cp\u003eExport the texture file to 32bit or 24bit PNG format (\u003ci\u003ei.e.\u003c/i\u003e with or without an \u0026ldquo;Alpha\u0026rdquo; channel) or DXT1, DXT3 or DXT5 DDS format in the aircraft or scenery folder where you want the X-Plane \u003ccode\u003e.obj\u003c/code\u003e file to end up.\u003c/p\u003e\n\u003cp\u003eX-Plane objects support a number of secondary textures. These use the same UV mappings as the primary texture:\u003c/p\u003e\n\u003cdl\u003e\n  \u003cdt\u003eAn emissive map texture to control night-time brightness.\u003c/dt\u003e\n  \u003cdd\u003eSave your emissive texture in the same folder as your primary texture file, and with the same name but with \u003ccode\u003e_LIT\u003c/code\u003e appended; \u003ci\u003ee.g.\u003c/i\u003e \u003ci\u003eprimarytexture\u003c/i\u003e\u003ccode\u003e_LIT.png\u003c/code\u003e or \u003ci\u003eprimarytexture\u003c/i\u003e\u003ccode\u003e_LIT.dds\u003c/code\u003e.\u003c/dd\u003e\n  \u003cdt\u003eA normal map texture to control \u0026ldquo;bumpiness\u0026rdquo; and shinyness.\u003c/dt\u003e\n  \u003cdd\u003eSave your normal map texture in the format described \u003ca target=\"_blank\" href=\"http://wiki.blender.org/index.php/Doc:2.4/Manual/Textures/Influence/Material/Bump_and_Normal\"\u003ehere\u003c/a\u003e and \u003ca target=\"_blank\" href=\"http://wiki.x-plane.com/Normal_Maps\"\u003ehere\u003c/a\u003e in the same folder as your primary texture file, and with the same name but with \u003ccode\u003e_NML\u003c/code\u003e appended; \u003ci\u003ee.g.\u003c/i\u003e \u003ci\u003eprimarytexture\u003c/i\u003e\u003ccode\u003e_NML.png\u003c/code\u003e.\u003c/dd\u003e\n  \u003cdt\u003eThe cockpit panel texture (aircraft cockpit objects only).\u003c/dt\u003e\n  \u003cdd\u003eDescribed \u003ca href=\"./XPlane3DCockpits.html\"\u003ehere\u003c/a\u003e.\u003c/dd\u003e\n\u003c/dl\u003e\n\n\u003ch3\u003e\u003ca name=\"lamps\"\u003eLamps\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eOnly Lamp objects of type \u0026ldquo;Lamp\u0026rdquo; and \u0026ldquo;Spot\u0026rdquo; are exported to X-Plane. Lamp objects of types \u0026ldquo;Area\u0026rdquo;, \u0026ldquo;Semi\u0026rdquo; and \u0026ldquo;Hemi\u0026rdquo; are ignored (and so can be used to illuminate your model in Blender). Lamp objects with certain words in their names have special behaviours when exported to an X-Plane object:\u003c/p\u003e\n\u003cdl\u003e\n  \u003cdd\u003e\u003ccode\u003eLamp\u003c/code\u003e - Normal (legacy) light. The colour is determined by the \u003csamp\u003eR\u003c/samp\u003e,\u003csamp\u003eG\u003c/samp\u003e,\u003csamp\u003eB\u003c/samp\u003e sliders on the \u003csamp\u003eLamp\u003c/samp\u003e panel \u003ckbd\u003eF5\u003c/kbd\u003e.\u003c/dd\u003e\n  \u003cdd\u003e\u003ccode\u003eFlash\u003c/code\u003e - Flashing (legacy) light. The colour is determined by the \u003csamp\u003eR\u003c/samp\u003e,\u003csamp\u003eG\u003c/samp\u003e,\u003csamp\u003eB\u003c/samp\u003e sliders on the \u003csamp\u003eLamp\u003c/samp\u003e panel \u003ckbd\u003eF5\u003c/kbd\u003e.\u003c/dd\u003e\n  \u003cdd\u003e\u003ccode\u003eTraffic\u003c/code\u003e - Traffic (legacy) light; cycles red, orange, green. (R,G,B settings are ignored).\u003c/dd\u003e\n  \u003cdd\u003e\u003ccode\u003esmoke_black\u003c/code\u003e or \u003ccode\u003esmoke_white\u003c/code\u003e - Not really a light; emits smoke. The size of the smoke puffs is determined by the Energy slider on the \u003csamp\u003eLamp\u003c/samp\u003e panel \u003ckbd\u003eF5\u003c/kbd\u003e (R,G,B settings are ignored).\u003c/dd\u003e\n  \u003cdd\u003e\u003ci\u003eother\u003c/i\u003e - X-Plane pre-defined \u0026ldquo;named\u0026rdquo; or \u0026ldquo;parameterized\u0026rdquo; light:\n    \u003cul\u003e\n      \u003cli\u003eThe name of the X-Plane light is taken from the value of a \u003ca href=\"#properties\"\u003eproperty\u003c/a\u003e named \u003ccode\u003ename\u003c/code\u003e if this exists, otherwise from the name of the lamp object.\u003c/li\u003e\n      \u003cli\u003eAdditional parameters are taken from the value of a \u003ca href=\"#properties\"\u003eproperty\u003c/a\u003e named \u003ccode\u003eparams\u003c/code\u003e.\u003c/li\u003e\n      \u003cli\u003eR,G,B settings are ignored.\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/dd\u003e\n\u003c/dl\u003e\n\n\u003cp\u003eCustom lights are created using the vertices from a rectangular \u0026ldquo;Plane\u0026rdquo; Mesh object:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003eIn the \u003csamp\u003eMaterial buttons\u003c/samp\u003e panels \u003ckbd\u003eF5\u003c/kbd\u003e:\n    \u003cul\u003e\n      \u003cli\u003eOn the \u003csamp\u003eLinks and Pipeline\u003c/samp\u003e panel press \u003csamp\u003eAdd New\u003c/samp\u003e to create a new material, or choose an existing material (if any) from the drop-down list.\u003cbr\u003e\n        Press the \u003csamp\u003eHalo\u003c/samp\u003e button on this panel.\u003c/li\u003e\n      \u003cli\u003eOn the \u003csamp\u003eMaterial\u003c/samp\u003e panel the \u003csamp\u003eHalo\u003c/samp\u003e button and the \u003csamp\u003eR\u003c/samp\u003e,\u003csamp\u003eG\u003c/samp\u003e,\u003csamp\u003eB\u003c/samp\u003e,\u003csamp\u003eA\u003c/samp\u003e sliders  control the light's R,G,B and A values.\u003cbr\u003e\n        Alternatively you can create \u003ca href=\"#properties\"\u003eproperties\u003c/a\u003e named \u003ccode\u003eR\u003c/code\u003e, \u003ccode\u003eG\u003c/code\u003e, \u003ccode\u003eB\u003c/code\u003e and/or \u003ccode\u003eA\u003c/code\u003e to set these values.\u003c/li\u003e\n      \u003cli\u003eOn the \u003csamp\u003eShaders\u003c/samp\u003e panel the \u003csamp\u003eHaloSize\u003c/samp\u003e slider controls the light's S value.\u003cbr\u003e\n        Press the \u003csamp\u003eHaloTex\u003c/samp\u003e button in this panel to make Blender render the light correctly.\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003eIn the \u003csamp\u003eTexture buttons\u003c/samp\u003e panels \u003ckbd\u003eF6\u003c/kbd\u003e:\n    \u003cul\u003e\n      \u003cli\u003eOn the \u003csamp\u003eTexture\u003c/samp\u003e panel press \u003csamp\u003eAdd New\u003c/samp\u003e to create a new texture for the mesh, or choose an existing texture (if any) from the drop-down list.  You should use just one texture.\u003cbr\u003e\n        Change the \u003csamp\u003eTexture\u0026nbsp;Type\u003c/samp\u003e to \u003csamp\u003eImage\u003c/samp\u003e.\u003c/li\u003e\n      \u003cli\u003eOn the \u003csamp\u003eImage\u003c/samp\u003e panel load the texture file that contains the light that you want to use.\u003c/li\u003e\n      \u003cli\u003eOn the \u003csamp\u003eMap Image\u003c/samp\u003e panel press the \u003csamp\u003eUseAlpha\u003c/samp\u003e button.\u003cbr\u003e\n        Use the \u003csamp\u003eMinX\u003c/samp\u003e, \u003csamp\u003eMinX\u003c/samp\u003e, \u003csamp\u003eMaxX\u003c/samp\u003e, \u003csamp\u003eMaxY\u003c/samp\u003e settings to select a subset of the texture.\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003eTo drive the custom light using a dataref add a String \u003ca href=\"#properties\"\u003eproperty\u003c/a\u003e named \u003ccode\u003ename\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eSpill lights (X-Plane v10 only) are created using Lamp objects of type \u0026ldquo;Spot\u0026rdquo;:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003eIn the \u003csamp\u003eLamp buttons\u003c/samp\u003e panels \u003ckbd\u003eF5\u003c/kbd\u003e:\n    \u003cul\u003e\n      \u003cli\u003eOn the \u003csamp\u003ePreview\u003c/samp\u003e panel press the \u003csamp\u003eSpot\u003c/samp\u003e button.\u003c/li\u003e\n      \u003cli\u003eOn the \u003csamp\u003eLamp\u003c/samp\u003e panel the \u003csamp\u003eEnergy\u003c/samp\u003e,\u003csamp\u003eR\u003c/samp\u003e,\u003csamp\u003eG\u003c/samp\u003e,\u003csamp\u003eB\u003c/samp\u003e sliders control the light's intensity and R,G,B values, and the \u003csamp\u003eDist\u003c/samp\u003e slider controls the light cone's length.\u003c/li\u003e\n      \u003cli\u003eOn the \u003csamp\u003eShadow and Spot\u003c/samp\u003e panel the \u003csamp\u003eSpotSi\u003c/samp\u003e slider controls the light cone's width.\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003eRotate the Lamp object to change the light cone's direction.\u003c/li\u003e\n  \u003cli\u003eTo drive the spill light using a dataref add a String \u003ca href=\"#properties\"\u003eproperty\u003c/a\u003e named \u003ccode\u003edataref\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3\u003e\u003ca name=\"Meshes\"\u003e\u003c/a\u003eMeshes\u003c/h3\u003e\n\u003cp\u003eCreate meshes consisting of triangular and/or rectangular faces:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003eIn the \u003csamp\u003eMesh\u003c/samp\u003e Editing panel \u003ckbd\u003eF9\u003c/kbd\u003e:\n    \u003cul\u003e\n      \u003cli\u003ePress the \u003csamp\u003eNew\u003c/samp\u003e UV Texture button once (X-Plane objects support only one primary texture).\u003c/li\u003e\n      \u003cli\u003eUse the \u003csamp\u003eUV/Image Editor\u003c/samp\u003e window to open this texture and control mapping of the texture to the mesh faces.\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003eIn the \u003csamp\u003eTexture Face\u003c/samp\u003e Editing panel \u003ckbd\u003eF9\u003c/kbd\u003e available in \u003csamp\u003eEdit Mode\u003c/samp\u003e:\n    \u003cul\u003e\n      \u003cli\u003e\u003csamp\u003eTex\u003c/samp\u003e button controls whether the face has a texture.\u003c/li\u003e\n      \u003cli\u003e\u003csamp\u003eTiles\u003c/samp\u003e button controls whether the face is rendered with \u0026ldquo;polygon offsetting\u0026rdquo; (\u003ccode\u003eATTR_poly_os\u003c/code\u003e) in X-Plane. Press this button for faces that lie flat on the ground to prevent Z-buffer thrashing in X-Plane. Don't press this button for other faces.\n      \u003cli\u003e\u003csamp\u003eCollision\u003c/samp\u003e button indicates that the face is \u003cu\u003enot\u003c/u\u003e \u0026ldquo;hard\u0026rdquo; (ie not \u0026ldquo;landable on\u0026rdquo;) in X-Plane. Making faces hard is very expensive, so this button should normally be pressed. Unpress this button only for things like helicopter landing pads.\u003cbr\u003e\n        You can control whether it is possible to fly under this hard face in X-Plane v9 and later; add a Bool \u003ca href=\"#properties\"\u003eproperty\u003c/a\u003e named \u003ccode\u003edeck\u003c/code\u003e and give it the value \u003ccode\u003eTrue\u003c/code\u003e.\u003cbr\u003e\n        You can specify the surface type; add a String \u003ca href=\"#properties\"\u003eproperty\u003c/a\u003e named \u003ccode\u003esurface\u003c/code\u003e and give it the value\u003ccode\u003e water\u003c/code\u003e, \u003ccode\u003econcrete\u003c/code\u003e, \u003ccode\u003easphalt\u003c/code\u003e, \u003ccode\u003egrass\u003c/code\u003e, \u003ccode\u003edirt\u003c/code\u003e, \u003ccode\u003egravel\u003c/code\u003e, \u003ccode\u003elakebed\u003c/code\u003e, \u003ccode\u003esnow\u003c/code\u003e, \u003ccode\u003eshoulder\u003c/code\u003e or \u003ccode\u003eblastpad\u003c/code\u003e.\u003c/li\u003e\n      \u003cli\u003e\u003csamp\u003eTwoside\u003c/samp\u003e button controls whether one or both sides of the face are displayed. Unless you have a lot of double-sided faces it is cheaper to avoid this button and to use two single-sided faces back-to-back instead.\u003c/li\u003e\n      \u003cli\u003e\u003csamp\u003eAlpha\u003c/samp\u003e button is a hint to Blender and to X-Plane that the face is transparent or translucent. Use this for outwards-facing transparent or translucent faces to instruct X-Plane to draw these faces last so that you can see other faces through them. Don't press this button for opaque (normal) faces.\u003cbr\u003e\n        See \u003ca href=\"#order\"\u003edrawing order\u003c/a\u003e for more fine-grained control over drawing order.\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003eIn the \u003csamp\u003eLink and Materials\u003c/samp\u003e Editing panel \u003ckbd\u003eF9\u003c/kbd\u003e  available in \u003csamp\u003eEdit Mode\u003c/samp\u003e:\n    \u003cul\u003e\n      \u003cli\u003e\u003csamp\u003eSet Smooth\u003c/samp\u003e and \u003csamp\u003eSet Solid\u003c/samp\u003e control whether to smooth edges of faces in a mesh. The effect is only visible in Blender \u003csamp\u003e3D View\u003c/samp\u003e windows when the \u003csamp\u003eViewport Shading\u003c/samp\u003e button is set to \u003csamp\u003eSolid\u003c/samp\u003e or \u003csamp\u003eShaded\u003c/samp\u003e, but the effect is always visible in X-Plane.\u003cbr\u003e\n        In \u003csamp\u003eObject Mode\u003c/samp\u003e these buttons affect the entire mesh. In \u003csamp\u003eEdit Mode\u003c/samp\u003e these buttons affect the selected face(s).\u003cbr\u003e\n        You can add an \u003csamp\u003eEdgeSplit\u003c/samp\u003e modifier in the \u003csamp\u003eModifiers\u003c/samp\u003e Editing panel \u003ckbd\u003eF9\u003c/kbd\u003e to get Blender to automatically sharpen edges on a smoothed mesh based on the angle between faces.\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003eIn the \u003csamp\u003eMaterial buttons\u003c/samp\u003e panels \u003ckbd\u003eF5\u003c/kbd\u003e you can change the way that the mesh reacts to light by specifying a material. Changing between materials in X-Plane is expensive so you should ensure that you use at most a few materials in your model.\u003cbr\u003e\n    Press \u003csamp\u003eAdd New\u003c/samp\u003e to create a new material, or choose an existing material (if any) from the drop-down list.\u003cbr\u003e\n    Only a few of Blender's many material buttons affect X-Plane:\n    \u003cul\u003e\n      \u003cli\u003eOn the \u003csamp\u003eMaterial\u003c/samp\u003e panel the \u003csamp\u003eCol\u003c/samp\u003e button and the \u003csamp\u003eR\u003c/samp\u003e,\u003csamp\u003eG\u003c/samp\u003e,\u003csamp\u003eB\u003c/samp\u003e sliders control the diffuse colour of the faces. X-Plane combines the colours that are specified by the texture (if any) with this setting.\u003cbr\u003e\n        The default X-Plane setting is \u003ccode\u003e1\u003c/code\u003e, \u003ccode\u003e1\u003c/code\u003e, \u003ccode\u003e1\u003c/code\u003e (white). However the default setting of a new material in Blender is \u003ccode\u003e0.8\u003c/code\u003e, \u003ccode\u003e0.8\u003c/code\u003e, \u003ccode\u003e0.8\u003c/code\u003e.\u003cbr\u003e\n        You should normally set this to \u003ccode\u003e1\u003c/code\u003e, \u003ccode\u003e1\u003c/code\u003e, \u003ccode\u003e1\u003c/code\u003e and control the diffuse colour of the faces by editing the texture file instead.\u003c/li\u003e\n      \u003cli\u003eOn the \u003csamp\u003eShaders\u003c/samp\u003e panel the \u003csamp\u003eSpec\u003c/samp\u003e slider controls the specularity (shininess) of the faces.\u003cbr\u003e\n        The default X-Plane setting is 0 (matt). However the default setting of a new material in Blender is 0.5.\u003c/li\u003e\n      \u003cli\u003eOn the \u003csamp\u003eShaders\u003c/samp\u003e panel the \u003csamp\u003eEmit\u003c/samp\u003e slider controls the emissive brightness of the faces. Emissive faces give off light so the effects of this setting are most obvious at night. It is usually cheaper and easy to use \u003ccode\u003e_LIT\u003c/code\u003e textures to control night-time brightness instead of using this setting. However using this setting allows you to create faces that also give off light during the daytime, \u003ci\u003ee.g.\u003c/i\u003e on overcast days, which \u003ccode\u003e_LIT\u003c/code\u003e textures do not.\u003cbr\u003e\n        The default X-Plane and Blender setting is 0 (not emissive).\u003cbr\u003e\n        On the \u003csamp\u003eMaterial\u003c/samp\u003e panel \u003csamp\u003eMir\u003c/samp\u003e button and the \u003csamp\u003eR\u003c/samp\u003e,\u003csamp\u003eG\u003c/samp\u003e,\u003csamp\u003eB\u003c/samp\u003e sliders control the emissive colour of the faces.\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eUse \u003ca href=\"http://marginal.org.uk/x-planescenery/normalise.txt\"\u003ethis\u003c/a\u003e script if you need to reset all faces in the scene to standard settings \u003csmall\u003e(\u003ci\u003ei.e.\u003c/i\u003e no polygon offsetting, not hard, single sided, not transparent)\u003c/small\u003e.\u003c/p\u003e\n\u003cp\u003eYou can add \u0026ldquo;modifiers\u0026rdquo; in the \u003csamp\u003eModifiers\u003c/samp\u003e Editing panel \u003ckbd\u003eF9\u003c/kbd\u003e to change the way that the Mesh appers. Some useful modifiers when modelling for X-Plane are:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003e\u003csamp\u003eEdgeSplit\u003c/samp\u003e - automatically sharpen edges between mesh faces \u003csmall\u003e(this only has an effect if you've used the \u003csamp\u003eSet Smooth\u003c/samp\u003e button)\u003c/small\u003e.\u003c/li\u003e\n  \u003cli\u003e\u003csamp\u003eSubsurf\u003c/samp\u003e - produce a more detailed version of the mesh by subdividing faces.\u003c/li\u003e\n  \u003cli\u003e\u003csamp\u003eCurve\u003c/samp\u003e - bend the mesh along a curved path.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3\u003e\u003ca name=\"animation\"\u003eAnimation\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eYou can make lamps, meshes and lines animate in X-Plane according to the value of any of the simulator datarefs\nlisted \u003ca href=\"http://www.xsquawkbox.net/xpsdk/docs/DataRefs.html\"\u003ehere\u003c/a\u003e that have type \u0026ldquo;int\u0026rdquo;, \u0026ldquo;float\u0026rdquo; or \u0026ldquo;double\u0026rdquo;.\u003c/p\u003e\n\n\u003ch4\u003e\u003ca name=\"basic_animation\"\u003eBasic animation\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003eCreate an \u0026ldquo;Armature\u0026rdquo; object. Make the lamps and/or meshes that you want to animate the children of the armature's \u0026ldquo;bone\u0026rdquo;:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003eClick on the lamps and/or meshes (the \u0026ldquo;children\u0026rdquo;)\u003c/li\u003e\n  \u003cli\u003eShift-click on the armature\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003eChoose \u003csamp\u003ePose Mode\u003c/samp\u003e from the Mode menu in the \u003csamp\u003e3D View\u003c/samp\u003e window's toolbar\u003c/b\u003e\u003c/li\u003e\n  \u003cli\u003eClick on the bone (the \u0026ldquo;parent\u0026rdquo;)\u003c/li\u003e\n  \u003cli\u003ePress \u003ckbd\u003eCtrl\u003c/kbd\u003e\u0026nbsp;\u003ckbd\u003eP\u003c/kbd\u003e and select \u003csamp\u003eBone\u003c/samp\u003e from the popup menu\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOnce you have assigned a parent bone to your lamps/meshes, you can specify the simulator \u003ca href=\"http://www.xsquawkbox.net/xpsdk/docs/DataRefs.html\"\u003edataref\u003c/a\u003e that will drive the animation:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003eChoose \u003csamp\u003eObject Mode\u003c/samp\u003e from the Mode menu in the \u003csamp\u003e3D View\u003c/samp\u003e window's toolbar\u003c/li\u003e\n  \u003cli\u003eSelect the child lamp or mesh\u003c/li\u003e\n  \u003cli\u003eFrom the \u003csamp\u003e3D View\u003c/samp\u003e window's menubar choose \u003csamp\u003eObject\u0026nbsp;\u0026rarr; Scripts\u0026nbsp;\u0026rarr; X-Plane\u0026nbsp;Animation\u003c/samp\u003e\u003c/li\u003e\n  \u003cli\u003eIn the \u003csamp\u003eParent Bone\u003c/samp\u003e panel, use the pop-up menu to select the \u003ca href=\"http://www.xsquawkbox.net/xpsdk/docs/DataRefs.html\"\u003edataref\u003c/a\u003e\u003cbr\u003e\n\u003csmall\u003e(or you can type in just the \u0026ldquo;leaf\u0026rdquo; name of the dataref into the text field, or the full name of a custom dataref)\u003c/small\u003e\n  \u003cli\u003eSome datarefs require you to specify a \u0026ldquo;Part number\u0026rdquo;;\u003cbr\u003e \u003ci\u003ee.g.\u003c/i\u003e the dataref \u003ccode\u003esim/flightmodel/engine/ENGN_thro\u003c/code\u003e represents the engine throttle settings, so you need to specify which engine you're referring to. Press the \u003csamp\u003ePart number\u003c/samp\u003e button and specify \u003ccode\u003e0\u003c/code\u003e for the first engine, \u003ccode\u003e1\u003c/code\u003e for the second engine etc.\u003c/li\u003e\n  \u003cli\u003ePress the \u003csamp\u003eApply\u003c/samp\u003e button\n\u003c/ul\u003e\n\u003cp\u003eUse frames to represent the desired position of the lamps/meshes at various dataref values - X-Plane will \u003ca href=\"http://en.wikipedia.org/wiki/Linear_interpolation\"\u003einterpolate\u003c/a\u003e linearly between the positions:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003eIn the Animation Frame field, in the \u003csamp\u003eButtons\u003c/samp\u003e window's menubar, select frame 1\u003c/li\u003e\n  \u003cli\u003eClick on the armature\u003c/li\u003e\n  \u003cli\u003eChoose \u003csamp\u003ePose Mode\u003c/samp\u003e from the Mode menu in the \u003csamp\u003e3D View\u003c/samp\u003e window's toolbar\u003c/li\u003e\n  \u003cli\u003eClick on a bone\u003c/li\u003e\n  \u003cli\u003eMove and/or rotate the bone\u003c/li\u003e\n  \u003cli\u003ePress \u003ckbd\u003e\u0026nbsp;i\u0026nbsp;\u003c/kbd\u003e and specify a \u003csamp\u003eLocRot\u003c/samp\u003e key (\u003ci\u003ei.e.\u003c/i\u003e location and rotation)\u003c/li\u003e\n  \u003cli\u003eRepeat for any other bones in the armature\u003c/li\u003e\n  \u003cli\u003eSelect animation frame 2 and repeat\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003csmall\u003e(Note: X-Plane's animation syntax is quite simple; so don't use IPOcurves, Vertex Groups, Deformations, Shape Keys or any other advanced Blender animation techniques since these will be ignored by the exporter - only the positions specified by keys in the first \u003ci\u003en\u003c/i\u003e frames are significant to X-Plane.)\u003c/small\u003e\u003c/p\u003e\n\u003cp\u003eX-Plane v8 only supports two frames, so if you want your \u003ccode\u003e.obj\u003c/code\u003e file to work in X-Plane v8 then you\nshould insert \u0026ldquo;LocRot\u0026rdquo; keys only in frames 1 and 2.\u003c/p\u003e\n\u003cp\u003e X-Plane v9 and later supports multiple key frames. Also, X-Plane will \u003ca href=\"http://en.wikipedia.org/wiki/Extrapolation\"\u003eextrapolate\u003c/a\u003e your animation when the dataref has a value outside of the range that you specified in the \u003csamp\u003eFrame #\u003ci\u003en\u003c/i\u003e\u003c/samp\u003e fields.\nYou can stop the extrapolation and \u0026ldquo;clamp\u0026rdquo; your animation's position by repeating the poses and \u003csamp\u003eFrame #\u003ci\u003en\u003c/i\u003e\u003c/samp\u003e values in the first two and/or the last two frames. Or you can cause your animation to loop back to frame 1 when the dataref value exceeds a certain number by specifying this number in the \u003csamp\u003eLoop\u003c/samp\u003e field.\u003c/p\u003e\n\u003cp\u003eThe X-Plane\u0026nbsp;Animation dialog renames the parent bone to the \u0026ldquo;leaf\u0026rdquo; name of the dataref. So pressing the \u003csamp\u003eDraw\u0026nbsp;Names\u003c/samp\u003e button in the \u003csamp\u003eArmature\u003c/samp\u003e panel can be helpful to see what's going on when you have lots of animations.\u003c/p\u003e\n\u003cp\u003eUse the \u003csamp\u003eAction Editor\u003c/samp\u003e window to get an overview of which bones in the selected armature have keys inserted into which frames.\u003c/p\u003e\n\n\u003ch4\u003eControlling animation response to dataref values\u003c/h4\u003e\n\u003cp\u003eBy default, X-Plane will display the meshes in the frame 1 position when the dataref has a value of 0, and in the last frame position when the dataref has a value of 1. You can change these values:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003eChoose \u003csamp\u003eObject Mode\u003c/samp\u003e from the Mode menu in the \u003csamp\u003e3D View\u003c/samp\u003e window's toolbar\u003c/li\u003e\n  \u003cli\u003eSelect the child lamp or mesh\u003c/li\u003e\n  \u003cli\u003eFrom the \u003csamp\u003e3D View\u003c/samp\u003e window's menubar choose \u003csamp\u003eObject\u0026nbsp;\u0026rarr; Scripts\u0026nbsp;\u0026rarr; X-Plane\u0026nbsp;Animation\u003c/samp\u003e\u003c/li\u003e\n  \u003cli\u003eSpecify in the \u003csamp\u003eFrame #\u003ci\u003en\u003c/i\u003e\u003c/samp\u003e fields the dataref values that correspend to each frame;\u003cbr\u003e\n\u003ci\u003ee.g.\u003c/i\u003e the yoke pitch dataref \u003ccode\u003eyolk_pitch_ratio\u003c/code\u003e takes values between -1 (forward) and +1 (back) in X-Plane. So, to make X-Plane display the position in frame 1 when the yoke is pushed fully forward specify \u003ccode\u003e-1\u003c/code\u003e in the \u003csamp\u003eFrame #1\u003c/samp\u003e field\u003c/li\u003e\n  \u003cli\u003ePress the \u003csamp\u003eApply\u003c/samp\u003e button\n\u003c/ul\u003e\n\n\u003ch4\u003eUsing multiple datarefs\u003c/h4\u003e\n\u003cp\u003eYou can animate your lamps/meshes using multiple bones, each bone representing a different dataref:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003eIn \u003csamp\u003eEdit Mode\u003c/samp\u003e add additional bones to the armature.\u003c/li\u003e\n  \u003cli\u003eStill in Edit Mode, in the \u003csamp\u003eArmature Bones\u003c/samp\u003e panel, create parent/child relationships between each bone.\n\u003csmall\u003e(Note: This panel also lets you rename bones. Don't do this - use the X-Plane\u0026nbsp;Animation dialog to name the bones after the datarefs that they represent).\u003c/small\u003e\u003c/li\u003e\n  \u003cli\u003eUse the technique described \u003ca href=\"#basic_animation\"\u003eabove\u003c/a\u003e to make your lamps/meshes the children of the \u0026ldquo;youngest\u0026rdquo; bone in the chain.\u003c/li\u003e\n  \u003cli\u003eInsert \u003csamp\u003eLocRot\u003c/samp\u003e keys for every bone in the chain (each bone can have a different number of keys).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe X-Plane\u0026nbsp;Animation dialog displays the settings for the lamp/mesh's parent bone, gandparent bone etc. \u003csmall\u003e(Note: Don't change the parent/child relationships between your lamps/meshes and their parent bones while the X-Plane\u0026nbsp;Animation dialog is being displayed).\u003c/small\u003e\u003c/p\u003e\n\n\u003ch4\u003eHiding lamps and meshes\u003c/h4\u003e\n\u003cp\u003eYou can make all of the lamps and meshes in an animation disappear when a dataref is within a certain range:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003eUse the technique described \u003ca href=\"#basic_animation\"\u003eabove\u003c/a\u003e to make your lamps/meshes the children of an armature bone\u003cbr\u003e\n\u003csmall\u003e(If you don't want to animate your lamps/meshes then don't insert any animation keys for this bone, and the bone doesn't have to be a valid dataref)\u003c/small\u003e\u003c/li\u003e\n  \u003cli\u003eChoose \u003csamp\u003eObject Mode\u003c/samp\u003e from the Mode menu in the \u003csamp\u003e3D View\u003c/samp\u003e window's toolbar\u003c/li\u003e\n  \u003cli\u003eSelect a lamp or mesh that you want to hide\u003c/li\u003e\n  \u003cli\u003eFrom the \u003csamp\u003e3D View\u003c/samp\u003e window's menubar choose \u003csamp\u003eObject\u0026nbsp;\u0026rarr; Scripts\u0026nbsp;\u0026rarr; X-Plane\u0026nbsp;Animation\u003c/samp\u003e\u003c/li\u003e\n  \u003cli\u003eIn the last panel, press the \u003csamp\u003eAdd New\u003c/samp\u003e button\u003c/li\u003e\n  \u003cli\u003eSpecify the dataref and the range of values (it's OK to use datarefs that are not otherwise used in the animation)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eYou can make hidden lamps/meshes re-appear when a dataref value is within a certain range by adding another entry, and changing the type from \u003csamp\u003eHide\u003c/samp\u003e to \u003csamp\u003eShow\u003c/samp\u003e. The dataref that you use to \u0026ldquo;show\u0026rdquo; the animation can be the same or different than the datarefs that you used to \u0026ldquo;hide\u0026rdquo; the animation. (The animation is always shown by default, so you only need to use a Show entry if you have used one or more Hide entries and you want to override them).\u003c/p\u003e\n\u003cp\u003eThe order of Hide and Show entries is significant; the animation will be hidden if any of the Hide dataref values are in range, unless a subsequent Show dataref value is also in range. You can use the Up and Down arrow buttons to change the order of the entries.\u003c/p\u003e\n\u003cp\u003eNote that the Hide and Show entries apply to all children of all bones in the armature. You can make an armature the child of a bone in a different armature; in which case all children are affected by any Hide and Show entries in parent armatures.\u003c/p\u003e\n\n\u003ch3\u003e\u003ca name=\"order\"\u003eDrawing order\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThe order in which X-Plane draws the animations, lights, lines and triangles in your scenery or cockpit object usually has no effect on the appearance. So the exporter optimises the order of animations, lights, lines and triangles in your object to minimise the number of OpenGL state changes and therefore maximise X-Plane's framerate.\u003c/p\u003e\n\u003cp\u003eHowever drawing order does become important if you use transparent and/or translucent textures on some of your faces - transparent and translucent faces must be drawn last, otherwise other faces and lights will not be visible through them.\nYou should therefore tell Blender which faces are transparent/translucent using the \u003csamp\u003eAlpha\u003c/samp\u003e button in the \u003csamp\u003eTexture Face\u003c/samp\u003e Editing panel \u003ckbd\u003eF9\u003c/kbd\u003e in \u003csamp\u003eUV Face Select\u003c/samp\u003e mode. The exporter will ensure that X-Plane\ndraws these faces last.\u003c/p\u003e\n\u003cp\u003eBut sometimes you need even more control over the drawing order - \u003ci\u003ee.g.\u003c/i\u003e modelling a cockpit with a transparent HUD and (obviously) a transparent canopy; the HUD must be drawn after the canopy.\u003c/p\u003e\n\u003cp\u003eYou can specify the relative order in which lamps, meshes etc should be drawn by assigning them to \u0026ldquo;Groups\u0026rdquo; on the \u003csamp\u003eObject and links\u003c/samp\u003e panel \u003ckbd\u003eF7\u003c/kbd\u003e:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003eObjects that don't belong to a group are drawn first.\u003c/li\u003e\n  \u003cli\u003eThe groups are sorted by alphabetical order, and then\n    \u003cul\u003e\n      \u003cli\u003eobjects that belong to the first group are drawn next.\u003cbr\u003e\n      \u0026#8230;\u003c/li\u003e\n      \u003cli\u003eobjects that belong to the last group are drawn last.\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ci\u003ee.g.\u003c/i\u003e in the case of the cockpit with transparent canopy and HUD, we could put the canopy and HUD into separate groups named \u003ccode\u003eGroupA\u003c/code\u003e and \u003ccode\u003eGroupB\u003c/code\u003e respectively. Since \u003ccode\u003eA\u003c/code\u003e is before \u003ccode\u003eB\u003c/code\u003e in the alphabet, the canopy would be drawn before the HUD (and both would be drawn after the rest of the cockpit).\u003c/p\u003e\n\u003cp\u003eTo add objects to a new group:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003eSelect the meshes that you want to be drawn late.\u003c/li\u003e\n  \u003cli\u003ePress the \u003csamp\u003eAdd to Group\u003c/samp\u003e button on the \u003csamp\u003eObject and links\u003c/samp\u003e panel \u003ckbd\u003eF7\u003c/kbd\u003e (or press \u003ckbd\u003eCtrl\u003c/kbd\u003e\u0026nbsp;\u003ckbd\u003eG\u003c/kbd\u003e).\u003c/li\u003e\n  \u003cli\u003eChoose \u003csamp\u003eADD NEW\u003c/samp\u003e.\u003c/li\u003e\n  \u003cli\u003eGive the new group a name.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eObjects that belong to a group are highlighted in green instead of pink so that you can easily distinguish them.\u003c/p\u003e\n\n\u003ch3\u003e\u003ca name=\"group\"\u003eDrawing group\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eYou can specify when X-Plane should draw your scenery object relative to other scenery elements:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003eAdd a Blender object of type \u0026ldquo;Empty\u0026rdquo; to your scene.\u003c/li\u003e\n  \u003cli\u003eAdd a \u003ca href=\"#properties\"\u003eproperty\u003c/a\u003e to the Empty object named \u003ccode\u003egroup_terrain\u003c/code\u003e, \u003ccode\u003egroup_beaches\u003c/code\u003e, \u003ccode\u003egroup_shoulders\u003c/code\u003e, \u003ccode\u003egroup_taxiways\u003c/code\u003e, \u003ccode\u003egroup_runways\u003c/code\u003e, \u003ccode\u003egroup_markings\u003c/code\u003e, \u003ccode\u003egroup_airports\u003c/code\u003e, \u003ccode\u003egroup_roads\u003c/code\u003e, \u003ccode\u003egroup_objects\u003c/code\u003e, \u003ccode\u003egroup_light_objects\u003c/code\u003e or \u003ccode\u003egroup_cars\u003c/code\u003e.\u003c/li\u003e\n  \u003cli\u003eGive the property a value between \u003ccode\u003e-1\u003c/code\u003e and \u003ccode\u003e-5\u003c/code\u003e to make X-Plane draw your object before this group, \u003ccode\u003e0\u003c/code\u003e to draw your object with this group, or between \u003ccode\u003e1\u003c/code\u003e and \u003ccode\u003e5\u003c/code\u003e to draw your object after this group.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ci\u003ee.g.\u003c/i\u003e to make X-Plane draw your object at the same time that it draws runway markings add a property named \u003ccode\u003egroup_markings\u003c/code\u003e to an Empty object and give it the value \u003ccode\u003e0\u003c/code\u003e.\u003c/p\u003e\n\n\u003ch3\u003eSlung load weight\u003c/h3\u003e\n\u003cp\u003eYou can specify the weight of an object for use in X-Plane's physics engine if the object is being carried by a plane or helicopter:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003eAdd a Blender object of type \u0026ldquo;Empty\u0026rdquo; to your scene.\u003c/li\u003e\n  \u003cli\u003eAdd a \u003ca href=\"#properties\"\u003eproperty\u003c/a\u003e to the Empty object named \u003ccode\u003eslung_load_weight\u003c/code\u003e and specify the weight in pounds.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3\u003e\u003ca name=\"Level_Of_Detail\"\u003e\u003c/a\u003eLevel Of Detail\u003c/h3\u003e\n\u003cp\u003eX-Plane has borrowed the concept of \u003ca href=\"http://en.wikipedia.org/wiki/Level_of_detail\"\u003eLevel Of Detail\u003c/a\u003e from 3D games. This works on the principle that when you're viewing an object from a large distance it can be displayed with reduced detail without you noticing the difference. By displaying distant objects with reduced detail we can simulate a more complex scene than would be possible if all objects were drawn at maximum detail.\u003c/p\u003e\n\u003cp\u003eUse Layers to create objects (but not aircraft cockpit objects or, prior to X-Plane 10, Misc objects) with multiple Levels Of Detail. Objects in layers 1-3 are visible in X-Plane at the following distances:\u003c/p\u003e\n\u003cdiv style=\"margin-left: 40px;\"\u003e\n\u003ctable style=\"text-align: left;\" border=\"0\"\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth style=\"text-decoration: underline;\"\u003eLayer\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth style=\"text-decoration: underline;\"\u003eDistance\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd style=\"text-align: center;\"\u003e1\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e\u0026lt; 1000m\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd style=\"text-align: center;\"\u003e2\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e1000-4000m\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd style=\"text-align: center;\"\u003e3\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n      \u003ctd\u003e4000m-10000m\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n\u003ch3\u003e\u003ca name=\"resize\"\u003eChanging the texture size\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eIf you run out of space in your texture file then you can increase the size. You should use the following procedure to ensure that your UV mappings and/or PlaneMaker instrument layouts are preserved:\u003c/p\u003e\n\u003cp\u003e\n\u003cul\u003e\n  \u003cli\u003eCreate a new, larger, texture in an image editor application.\u003c/li\u003e\n  \u003cli\u003ePanel texture: Paste the original texture into the lower left corner of the new texture.\u003c/li\u003e\n  \u003cli\u003eNon-panel texture: Paste the original texture into one of the corners of the new texture, or aligned on a multiple of the original texture's width and height.\u003c/li\u003e\n  \u003cli\u003eIn Blender, in the \u003csamp\u003eUV/Image Editor\u003c/samp\u003e window, select the original texture from the pop-up menu.\u003c/li\u003e\n  \u003cli\u003eChoose \u003csamp\u003eImage\u0026nbsp;\u0026rarr; Replace\u0026nbsp;and\u0026nbsp;fixup\u0026nbsp;UV\u0026nbsp;mapping\u0026#8230;\u003c/samp\u003e\u003c/li\u003e\n  \u003cli\u003eSelect the new image and press \u003csamp\u003eReplace image\u003c/samp\u003e.\n  \u003cli\u003eIn the \u003csamp\u003eFixup UV mapping\u003c/samp\u003e dialog, press the button in the cluster of buttons that represents where you placed the original texture in the new texture.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eYou can also use this technique if you want to combine 3D models that use different texture files; paste all of the textures used by the 3D models into a single new texture file, then use \u003csamp\u003eImage\u0026nbsp;\u0026rarr; Replace\u0026nbsp;and\u0026nbsp;fixup\u0026nbsp;UV\u0026nbsp;mapping\u0026#8230;\u003c/samp\u003e on each of the original textures.\u003c/p\u003e\n\n\u003ch3\u003eBlender tips\u003c/h3\u003e\n\n\u003ch4\u003eAuto-saving\u003c/h4\u003e\n\u003cp\u003eBlender can automatically archive old copies of your \u003ccode\u003e.blend\u003c/code\u003e files when you save. This is useful if you later want to revert to an older version. In the \u003csamp\u003eUser Preferences\u003c/samp\u003e window, on the \u003csamp\u003eAuto Save\u003c/samp\u003e tab, choose the number of \u003csamp\u003eSave Versions\u003c/samp\u003e. The older versions of your file will be called \u003ccode\u003e.blend1\u003c/code\u003e, \u003ccode\u003e.blend2\u003c/code\u003e etc.\u003c/p\u003e\n\u003cp\u003eBlender can also periodically save a copy of your work in case Blender or your computer crashes, or in case you quit Blender without saving. On the \u003csamp\u003eAuto Save\u003c/samp\u003e tab press \u003csamp\u003eAuto Save Temp Files\u003c/samp\u003e. Also, on the \u003csamp\u003eFile Paths\u003c/samp\u003e tab, ensure that \u003csamp\u003eTemp\u003c/samp\u003e is set to a folder that exists on your machine. This is where the auto-saved files will be created. (The default value of \u003ccode\u003e/tmp\u003c/code\u003e is fine for Mac and Linux, but \u003ccode\u003e/tmp\u003c/code\u003e doesn't exist on most Windows machines so you should change this setting).\u003c/p\u003e\n\n\u003ch4\u003e\u003ca name=\"properties\"\u003eProperties\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003e\u0026ldquo;Properties\u0026rdquo; are used to specify \u003ca href=\"#animation\"\u003eanimation\u003c/a\u003e parameters, \u003ca href=\"#lamps\"\u003e\u0026ldquo;named\u0026rdquo; lights\u003c/a\u003e and the \u003ca href=\"#group\"\u003edrawing group\u003c/a\u003e. You can see an object's properties by selecting it and pressing \u003ckbd\u003eF4\u003c/kbd\u003e to display the \u003csamp\u003eLogic\u003c/samp\u003e panel. Press the \u003csamp\u003eAdd Property\u003c/samp\u003e to create a new property.\u003c/p\u003e\n\u003cp\u003eEach property has three fields; Type, Name and Value. If you want to supply a non-numeric value, \u003ci\u003ee.g.\u003c/i\u003e the name of a \u0026ldquo;named\u0026rdquo; light, you'll first need to change the Type from \u003csamp\u003eFloat\u003c/samp\u003e to \u003csamp\u003eString\u003c/samp\u003e.\u003c/p\u003e\n\n\u003ch3\u003eLimitations\u003c/h3\u003e\n\u003ch4\u003eImport object\u003c/h4\u003e\n\u003cul\u003e\n  \u003cli\u003e\u003ccode\u003esmoke_black\u003c/code\u003e and \u003ccode\u003esmoke_white\u003c/code\u003e X-Plane primitives are ignored.\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003eambient\u003c/code\u003e, \u003ccode\u003eblend\u003c/code\u003e and \u003ccode\u003especular\u003c/code\u003e attributes are ignored.\u003c/li\u003e\n  \u003cli\u003eThe importer usually can't work out which faces are partially or wholly transparent. You should tell Blender which faces are transparent using the \u003csamp\u003eAlpha\u003c/samp\u003e button in \u003csamp\u003eUV Face Select\u003c/samp\u003e mode after import.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eImport plane\u003c/h4\u003e\n\u003cul\u003e\n  \u003cli\u003eWings are simplified to reduce polygon count. Any wing curvature \u003csmall\u003e(\u003ci\u003eie\u003c/i\u003e the \u003csamp\u003ecustomize\nchords\u003c/samp\u003e option in PlaneMaker)\u003c/small\u003e is ignored.\u003c/li\u003e\n  \u003cli\u003eAdjacent wing segments may not be exactly joined-up. If not corrected manually this can create shadow effects in\nXSquawkBox and X-IvAp.\u003c/li\u003e\n  \u003cli\u003eCockpit objects are ignored. You can use \u003csamp\u003eFile\u0026nbsp;\u0026rarr; Import\u0026nbsp;\u0026rarr; X-Plane\u0026nbsp;Object\u003c/samp\u003e\nto import cockpits.\u003c/li\u003e\n  \u003cli\u003ePlanes (and their weapons, misc objects and cockpit objects) use multiple texture files. These are not automagically merged into one file during the import.\u003c/li\u003e\n  \u003cli\u003eThe importer can't work out which faces are partially or wholly transparent. You should tell Blender which faces are transparent by pressing the \u003csamp\u003eAlpha\u003c/samp\u003e button in \u003csamp\u003eUV Face Select\u003c/samp\u003e mode after import.\u003c/li\u003e\n  \u003cli\u003eLOD algorithm can be insufficiently aggressive in layer 2.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3\u003eProblems\u003c/h3\u003e\n\u003cp\u003ePlease email any questions, problems etc to the\n\u003ca href=\"mailto:Jonathan Harris \u003cx-plane@marginal.org.uk\u003e\"\u003eauthor\u003c/a\u003e.\nIf reporting a problem, please:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003eFirst, check that you are using the\n\u003ca href=\"http://marginal.org.uk/x-planescenery/tools.html\"\u003elatest\u003c/a\u003e\nversion of the scripts.\u003c/li\u003e\n  \u003cli\u003eTry to send me the the \u003ccode\u003e.obj\u003c/code\u003e, \u003ccode\u003e.acf\u003c/code\u003e\nor \u003ccode\u003e.blend\u003c/code\u003e file (where relevant) and the\ncontents of the Console window. \u003csmall\u003e(In Mac OS X, this is the\n\"Console\" program. In Windows this the window titled \"Blender\" that\nlooks like a Command Prompt).\u003c/small\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\n\u003cp\u003e\u0026ldquo;X-Plane\u0026rdquo; is a registered trademark of \u003ca href=\"http://www.x-plane.com/\"\u003eLaminar Research\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eIncludes code \u0026copy; Ben Supnik 2012-2013, \u0026copy; Ben Russell 2010 and \u0026copy; Mike G 2010.\u003c/p\u003e\n\n\u003ch3\u003eLicense\u003c/h3\u003e\n\n\u003cp\u003eThese tools are licensed under the GNU \u003ca rel=\"license\" target=\"_blank\" href=\"http://www.gnu.org/licenses/gpl-2.0-standalone.html\"\u003eGPL v2.0\u003c/a\u003e license.\u003c/p\u003e\n\u003cp\u003eUse of these tools does not impose any requirement on you to license your work under the GPL. For the avoidance of doubt, this means that you can license any scenery that you make using these tools under commercial terms (subject to any licensing restrictions on any imported or library objects that you use).\u003c/p\u003e\n\u003cp\u003eThe author would appreciate a courtesy copy of any commercial work that you make using these tools, but you are under no obligation.\u003c/p\u003e\n\n\u003chr\u003e\n\u003ctable style=\"width: 100%;\" border=\"0\" cellpadding=\"2\"\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd class=\"banner\"\u003eVersion 3.11 \u0026copy; 2004-2013 \u003ca href=\"mailto:Jonathan Harris \u003cx-plane@marginal.org.uk\u003e\"\u003eJonathan Harris\u003c/a\u003e\n        \u003ca rel=\"license\" target=\"_blank\" href=\"http://www.gnu.org/licenses/gpl-2.0-standalone.html\"\u003e\u003cimg style=\"border: 0px solid ; width: 88px; height: 62px; vertical-align: middle;\" src=\"http://i.creativecommons.org/l/GPL/2.0/88x62.png\" alt=\"GPLv2.0\"\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n  \u003c/body\u003e\n\u003c/html\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarginal%2Fxplane2blender","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarginal%2Fxplane2blender","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarginal%2Fxplane2blender/lists"}