<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.trainzsimulator.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mjolnir</id>
	<title>TrainzOnline - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.trainzsimulator.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mjolnir"/>
	<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/wiki/Special:Contributions/Mjolnir"/>
	<updated>2026-11-05T04:21:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Attachment_point&amp;diff=9834</id>
		<title>Attachment point</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Attachment_point&amp;diff=9834"/>
		<updated>2017-04-06T08:20:58Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* 3D Studio Max Guidelines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Attachments are the means of specifying how sub meshes or other effects are placed or attached in a model.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Attachments=&lt;br /&gt;
An attachment point is located in the model and reference is made from the [[Config.txt_file|config.txt]] file, to define its use and function.&lt;br /&gt;
&lt;br /&gt;
Attachment points use the &#039;&#039;&#039;a.name&#039;&#039;&#039; convention, to be recognised in Trainz. For an attachment point to move with an animated dummy, there is a special naming convention for the point in 3dsmax, e.g. &#039;&#039;&#039;a.r.dummy/a.name&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Attachment points should be created in top view, and the orientation of the axis will then be consistent. Sometimes the attachment point may not be facing the correct direction, and has to be rotated (realigned). Refer to other sections for advice on any special orientation required for different attachment points, for track, names, bogeys, coupler points and effects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;a.bog&#039;&#039;&#039;, &#039;&#039;&#039;a.limfront&#039;&#039;&#039; and &#039;&#039;&#039;a.limback&#039;&#039;&#039; are some of the important attachments for rollingstock models. As these have specific placements, it may be helpful to save a file of these points as a template, so you can merge it with your next model. With a few adjustments, you can quickly incorporate the template into the model and be sure the point names and orientation are correct.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=3D Studio Max Guidelines=&lt;br /&gt;
In 3dsmax: ‘Create’ tab, ‘Helpers’, ‘Point’.&lt;br /&gt;
&lt;br /&gt;
[[Image:attachmentpointcreation.jpg]]&lt;br /&gt;
&lt;br /&gt;
To maintain correct alignment, attachment points should be created in the TOP viewport. The front end of the train body should be on the Left hand side when displayed in the RIGHT viewport in 3dsmax (ie, in TOP view, the loco should face down the page).&lt;br /&gt;
&lt;br /&gt;
Any object in the scene that has to move (ie. levers and dials), or animate, will need to be ‘detached’ from the main model. To do this, select the polygons or elements you want detached and through the 3dsmax modify panel, press the detach button and name the new object.&lt;br /&gt;
&lt;br /&gt;
To make life a heck of a lot easier later on, it pays to move the pivot point of each new object to it’s logical position. Ie. For needles and levers the pivot point should be the centre of rotation (with the rotation around the Z axis). Align lever shaft in the Positive Y direction.&lt;br /&gt;
&lt;br /&gt;
To do this, access the 3dsmax Hierarchy panel, and press Affect Pivot Only. From here you can centre and align the pivot to the object and move it to the preferred&lt;br /&gt;
location.&lt;br /&gt;
&lt;br /&gt;
[[image:3dsmaxpivotpoint.jpg]]&lt;br /&gt;
&lt;br /&gt;
Be aware that the point itself must be rotated correctly, not the axis of the point. The &#039;&#039;&#039;Hierachy&#039;&#039;&#039;...&#039;&#039;&#039;Affect Pivot Only&#039;&#039;&#039; option may be turned on to determine the orientation of the point, it must then be turned off before rotating the point (click on the Affect Pivot Only box to toggle on/off). Turn on the axis information again to verify the rotation of the point has been done correctly.&lt;br /&gt;
&lt;br /&gt;
Once the pivot points have been set for all your new objects, now is the time to start adding attachment points. Add these through the 3dsmax create panel (see image below). Remember to use the &#039;&#039;&#039;a.name&#039;&#039;&#039; naming convention. Attachment points are simply points in 3D space where another mesh can inserted (through [[Config.txt_file|config.txt]] reference).&lt;br /&gt;
&lt;br /&gt;
Since you have already worked out the pivot points of all your objects, all you have to do is align the attachment points to your object pivot points. Press the icon (above) and select the object to align to....&lt;br /&gt;
&lt;br /&gt;
These attachments are exported as part of the default mesh (or the main mesh). Objects for attachment must not be included in the export as they are each exported from their own 3dsmax files and attached to the default mesh separately (through [[Config.txt_file|config.txt]] reference).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Remember to save a backup of the 3dsmax file!!&#039;&#039;  Select each object from the scene and save each one as its own 3dsmax file, (command panel, file - save selected). You may delete the object from the main mesh scene after you save it.&lt;br /&gt;
&lt;br /&gt;
[[Image:3dsmaxmoveandrotate.jpg]]&lt;br /&gt;
The next step is to open each 3dsmax file you have just created (of the movable objects), and move the object to 0,0,0 and make the rotational values 0,0,0 (press and right click these 3dsmax icons). This makes the object (and it’s pivot) aligned correctly to the origin of the scene.&lt;br /&gt;
&lt;br /&gt;
Now is the time to export the object to a Trainz mesh file (.im).&lt;br /&gt;
&lt;br /&gt;
=Naming=&lt;br /&gt;
&lt;br /&gt;
==Moving attachment points for other models==&lt;br /&gt;
Attachments use the &#039;&#039;&#039;a.name&#039;&#039;&#039; convention and allow the attachment of a submesh to a specific point in a mesh. If the attachment point in the main mesh is to move with an animation of that mesh, the special naming convention above must be used for the point to follow the animation, and allow the submesh to then follow the point.&lt;br /&gt;
For example, a submesh is to be attached to a main mesh using the attachment name &#039;&#039;&#039;a.lever&#039;&#039;&#039;. This attachment point in the main mesh must be linked to a helper point called &#039;&#039;&#039;b.r.pivot&#039;&#039;&#039;, that is animated.&lt;br /&gt;
The attachment point in the 3dsmax model must be named &#039;&#039;&#039;a.r.pivot/a.lever&#039;&#039;&#039;. In the [[Config.txt_file|config.txt]] file the attachment point will be entered as &#039;&#039;&#039;a.lever&#039;&#039;&#039;. Note the helper point in 3dsmax will be called &#039;&#039;&#039;b.r.pivot&#039;&#039;&#039;, &#039;&#039;&#039;not a.r.pivot&#039;&#039;&#039;!&lt;br /&gt;
The submesh will now follow any animation in the main mesh. It can be useful for moving coronas, and animated nightwindow meshs.&lt;br /&gt;
&lt;br /&gt;
==Level Of Detail Meshes==&lt;br /&gt;
From a &#039;&#039;&#039;.lm.txt&#039;&#039;&#039; configuration file:&lt;br /&gt;
  attachmentCutOff = 0.1;&lt;br /&gt;
Attachment cutoff specifies the level where attachments with the flag &#039;&#039;&#039;:Cull&#039;&#039;&#039; are dropped.&lt;br /&gt;
&lt;br /&gt;
ie To stop drawing the bogeys of the trains at a specific level of detail, append &#039;&#039;&#039;:Cull&#039;&#039;&#039; to the bogie attachment point. (ie &#039;&#039;&#039;a.bog0:Cull&#039;&#039;&#039; )&lt;br /&gt;
&lt;br /&gt;
Where the above applies (bogeys culled) the body mesh will need a low poly representation of the bogeys.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Special Attachment Points==&lt;br /&gt;
A number of [[Vehicle Attachment Points]] are reserved for predefined use in Trainz.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling]]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=9170</id>
		<title>HowTo/Export from Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=9170"/>
		<updated>2016-10-31T08:15:15Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FUN-beg}}&lt;br /&gt;
== Introduction of Blender ==&lt;br /&gt;
&lt;br /&gt;
{{plain link|http://www.blender.org |Blender}} is an open source free {{Wp|3D graphics|3D modelling}} application or tool supported by the contribution of programming and development time by the user community.  For more information on Blender and its capabilities, please visit the {{plain link|http://www.blender.org |Blender website}}.  Blender evolves rapidly and it is not uncommon to see releases about every two months or so. As of 31 October, 2016, the current version is 2.78a. For those working with a tutorial written based upon an older version of Blender, all past versions of Blender can be downloaded on the [http://download.blender.org/release// Blender past releases] page. &lt;br /&gt;
&lt;br /&gt;
Blender is extendable through the use of &amp;quot;add-ons&amp;quot; produced either by the Blender Foundation or by Blender users.  One of those add-ons is the Trainz Blender exporter that was built and is maintained by USCHI0815 (Torsten).  Torsten usually announces updates to the Exporter through the Trainz Content Creation Support forum.  As of 24 April, 2014, the current version of the Blender exporter is V0.96.&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
===Caveat===&lt;br /&gt;
[http://www.blender.org Blender] is not currently supported by N3V as an officially sanctioned modeling platform for producing Trainz assets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== About This Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The scope of this tutorial has been extended to include installation of Blender and installation of the Blender Exporter since this has been an issue discussed several times in the N3V Content Creation forum.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
To export to Trainz you need the following:&lt;br /&gt;
&lt;br /&gt;
:*  Trainz (TS09 or later preferred)&lt;br /&gt;
:*  [[Downloads|TrainzMeshImporter.exe]].   This is provided by N3V.&lt;br /&gt;
:*  [http://www.blender.org/download/ Blender] (v. 2.57 or later is recommended).&lt;br /&gt;
:*  [https://bitbucket.org/uschi0815/blender-exporter-for-trainz/downloads/ The Blender Exporter]. &lt;br /&gt;
:*  Windows XP, Vista, Windows 7 (32 or 64 bit) or Windows 8 (32 or 64 bit) or Mac OS X (32 or 64 bits).&lt;br /&gt;
&lt;br /&gt;
=== Blender Installation Notes ===&lt;br /&gt;
&lt;br /&gt;
Blender is available for a number of operating systems including Windows XP, Windows Vista and Windows 7.  Both 32 bit and 64 bit versions are available.&lt;br /&gt;
You can choose either the installer version or a zip archive.  Please read any notes on the Blender.org download page: particularly if you are upgrading from a previous version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installer Version ===&lt;br /&gt;
&lt;br /&gt;
The Installer Version is the easiest way to install Blender but there can be complications.  If you install Blender into the default directory you should choose &amp;quot;Use Application Data Directory&amp;quot; during installation of Blender. Otherwise it might not be possible to save your preferred Exporter options due to insufficient permissions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blender Zip Archive Version ===&lt;br /&gt;
&lt;br /&gt;
The zip archive version allows you to unzip the entire Blender folder structure and locate it in any location that suits you.  The only drawback is that you will need to set up your own links to the Blender executable (Blender.exe).&lt;br /&gt;
&lt;br /&gt;
== Installing the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Blender exporter add-on must be installed in the &amp;quot;scripts\addons&amp;quot; area of the Blender data space. The following process will install it in the correct location.&lt;br /&gt;
&lt;br /&gt;
=== Install Blender Exporter for Trainz ===&lt;br /&gt;
&lt;br /&gt;
:* Download the exporter.&lt;br /&gt;
:* Start Blender.&lt;br /&gt;
:* Open a new project(File -&amp;gt; New).&lt;br /&gt;
:* Open User Preferences(File -&amp;gt; User Preferences...).&lt;br /&gt;
:* Select Add-Ons panel and press button &amp;quot;Install from file...&amp;quot; down at the panel button bar.&lt;br /&gt;
:* Select and install downloaded file: you don&#039;t need to extract it.&lt;br /&gt;
:* Enable &amp;quot;TRAINZ Exporter&amp;quot; in Add-On list and press button &amp;quot;Save As Default&amp;quot; to keep it enabled for all subsequent Blender starts.&lt;br /&gt;
&lt;br /&gt;
=== Install the N3V TrainzMeshImporter ===&lt;br /&gt;
&lt;br /&gt;
:* Download the [http://online.ts2009.com/mediaWiki/index.php5/Downloads TrainzMeshImporter.exe].  The file is in the RAR format that can be extracted by most zip file management programs.&lt;br /&gt;
:* Before using the exporter you must copy the TrainzMeshExporter.exe to the same location as the Blender Exporter add-on.  The following will help find that location:&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and leave the default cube mesh in place.&lt;br /&gt;
:* If necessary, open the console window so you can read the error messages. In versions 2.5 through 2.63a, the console window is opened using the &amp;quot;toggle system console&amp;quot; menu entry in the &amp;quot;help&amp;quot; menu in the Blender menu bar. Beginning with version 2.64, the &amp;quot;toggle system console&amp;quot; menu has been moved to the &amp;quot;window&amp;quot; menu in the Blender menu bar. Those running a Blender version 2.49 or earlier can disregard this step, as the system console is in a window that is open whenever Blender is active. &lt;br /&gt;
:* Go to File-&amp;gt;Export and select &amp;quot;Trainz Mesh and Animation&amp;quot;.  Use the default settings but make sure that the save location is a temporary or working space.&lt;br /&gt;
:* The Exporter will complain about a missing file in a specific folder.   The missing file is TrainzMeshImporter and the folder name is the location you need.&lt;br /&gt;
:* The location is usually in the form of &amp;quot;ERROR&amp;quot;  file &amp;quot;C:Users\your name\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons\TrainzMeshExporter.exe&amp;quot; not found&amp;quot;.  This example is typical of using the default Blender Installer.  If you chose to install Blender using the zip archive then the location will be different.&lt;br /&gt;
:* Copy TrainzMeshExporter.exe to the location provided.  If you cannot access the AppData folder see the [http://online.ts2009.com/mediaWiki/index.php5?title=HowTo/Export_from_Blender&amp;amp;action=submit#Additional_Notes Additional Notes] section for help.&lt;br /&gt;
:* Once you have copied TrainzMeshExporter.exe to the correct location retry the export.&lt;br /&gt;
&lt;br /&gt;
== Exporting an Asset ==&lt;br /&gt;
&lt;br /&gt;
The creation of an asset suitable for Trainz is a long and complex process.  For the purposes of this tutorial we will only export the standard Blender cube.  Some knowledge of Blender and creation of assets for Trainz purposes is assumed.&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and save the default cube as &amp;quot;cube.blend&amp;quot; in your preferred working location.&lt;br /&gt;
:* Create a simple material such as &amp;quot;cube.m.onetex&amp;quot; and allocate a simple colour texture file. For the purpose of this tutorial leave the default mapping technique to &amp;quot;generated&amp;quot;.  This will cause an error.&lt;br /&gt;
:* UV map the cube to the texture.&lt;br /&gt;
:* Save the Blender file.&lt;br /&gt;
:* Go to File-&amp;gt;Export and select Trainz Mesh and Animation.&lt;br /&gt;
:* The dialog box that appears gives a output save location for the XML, log, texture description and other files produced by the process.  Select your preferred location.&lt;br /&gt;
:* All the other options can be left as default.  If you were exporting a mesh that included animation, then you would also select &amp;quot;Export Animation Data&amp;quot;.&lt;br /&gt;
:* When you are ready, select &amp;quot;Export Trainz&amp;quot; in the top right hand corner.&lt;br /&gt;
:* This export process will fail with an error since the &amp;quot;generated&amp;quot; mapping option for textures is not supported when using an image file.  Go back to the Texture section and change the mapping option to UV and then export again.  This time it should export correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporter Output ==&lt;br /&gt;
&lt;br /&gt;
=== Files Created ===&lt;br /&gt;
The Exporter produces:&lt;br /&gt;
&lt;br /&gt;
:* An XML file.  This is used by TrainzMeshImporter.&lt;br /&gt;
:* The IM mesh file required by Trainz.&lt;br /&gt;
:* The texture description files (nnn.texture.txt) required by Trainz.&lt;br /&gt;
:* The KIN animation file required by Trainz if animation is used.&lt;br /&gt;
:* A log of the export process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error Reporting ===&lt;br /&gt;
Errors are reported in the Blender System Console and the Exporter log. Errors will prevent the production of the target IM file and therefore must be addressed.&lt;br /&gt;
Typical errors are:&lt;br /&gt;
&lt;br /&gt;
==== Mesh Errors ====&lt;br /&gt;
&lt;br /&gt;
:*Objects without a parent where a root bone exists.&lt;br /&gt;
&lt;br /&gt;
==== Material Related Errors ====&lt;br /&gt;
&lt;br /&gt;
:* No UV layer for UV mapped objects. Blender usually creates a default.&lt;br /&gt;
:* Use of the same material for both single and double sided meshes.  Recommend only using single sided meshes.&lt;br /&gt;
:* Objects without an assigned material.  Recommend assigning a material for each object.&lt;br /&gt;
:* Faces without a material in an object.  The faces will have been collected into a Vertex Group to enable correction. This error can also be caused by material slots in blender to which no material is assigned.   &lt;br /&gt;
:* Use of similar material names if character case is ignored.  i.e. &amp;quot;Black&amp;quot; and &amp;quot;black&amp;quot; are considered the same by Trainz.&lt;br /&gt;
:* Not using UV mapping for textures that are either using alpha, normal or specular.&lt;br /&gt;
:* Not using UV or reflect mapping for diffuse textures.&lt;br /&gt;
&lt;br /&gt;
==== Animation Errors ====&lt;br /&gt;
&lt;br /&gt;
:* More than one root bone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
Warnings are basically flaws or possible flaws that the user may wish to address.  Warnings do not prevent production of the IM output files. Some typicals warnings include:&lt;br /&gt;
&lt;br /&gt;
==== Animation Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Possible incorrect location and rotation of root bone.&lt;br /&gt;
:* Bones not found or no animation data found.&lt;br /&gt;
:* Events not found or unrecognised.&lt;br /&gt;
:* Event frame numbers in wrong positions.&lt;br /&gt;
&lt;br /&gt;
==== Mesh Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Vertices influenced by more than four vertex groups.&lt;br /&gt;
&lt;br /&gt;
==== Name Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Unrecommended characters.  Material, texture, object and path names should only be composed of a-z, A-Z, 0-9 or -_./\ characters.  A typical error is use of a space character in a path name.  The Exporter will change Blender file names that include upper case letters to lower case letters.  Generally, it is recommended you avoid the use of upper case characters in names.&lt;br /&gt;
&lt;br /&gt;
==== Material Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Surfaceless faces in an object.  The Exporter will gather these faces and put them into a Vertex Group to aid identification. The Vertex Group can be found in the triangle panel associated with the Safety Valve object.&lt;br /&gt;
:* Objects exported with double sided faces.   This will become an error if a material is used for both single and double sided objects.&lt;br /&gt;
:* Material renamed.  If the name does not match one of the standard Trainz material names then the Exporter will try and effect a solution.  Typically a name such as &amp;quot;black&amp;quot; will be renamed &amp;quot;blackm.onetex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Export Log ===&lt;br /&gt;
&lt;br /&gt;
The Exporter Log contains a record of events during the export process including errors and warnings.  The numTriangles report is the number of polygons (aka polys) in the mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Material Recognition by the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Exporter tries to identify materials in use by the asset mesh and will provide a warning if the detected material decoration varies from that declared in the Blender file.  The term &amp;quot;material decoration&amp;quot; is one of the standard Trainz material names such as &amp;quot;m.onetext&amp;quot; or &amp;quot;m.tbumptex&amp;quot;. The following decision process, provided by Torsten, may be useful for developers.&lt;br /&gt;
&lt;br /&gt;
The decision which material name is used is made by the texturing schema used for the material:&lt;br /&gt;
&lt;br /&gt;
: no texture used -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: one texture used:&lt;br /&gt;
:: invalid texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: reflection texture  -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: two textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse &amp;amp; reflection -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: three textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha &amp;amp; reflection -&amp;gt;&#039;&#039;&#039; m.gloss&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: normal texture used:&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; alpha &amp;amp; no reflection -&amp;gt; &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; reflection &amp;amp; no alpha -&amp;gt; &#039;&#039;&#039;m.tbumpgloss&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; no alpha &amp;amp; no reflection-&amp;gt; &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As material &#039;&#039;&#039;m.notex&#039;&#039;&#039; can cause problems with some assets&#039;&#039;&#039;, m.onetex&#039;&#039;&#039; is used instead. It also works perfectly without any texture.&lt;br /&gt;
The problem with &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039; and &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is that, besides the usage of an alpha texture (which is not used for &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039;), both use a diffuse and normal texture. In this case &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is chosen.&lt;br /&gt;
&lt;br /&gt;
Generally, you can use any material name you want. The script does not change a syntactically correct material name (e.g. Material&#039;&#039;&#039;m.billboard&#039;&#039;&#039; would pass unchanged).  It only drops a message to remind you that you either use an unsupported material (as warning) or that it had chosen another material (as info).&lt;br /&gt;
&lt;br /&gt;
If you check the issue and find it to be OK than you can safely ignore those messages.&lt;br /&gt;
&lt;br /&gt;
Blenders texture influences are nearly equivalent to MAX material maps. Because diffuse textures and reflection textures both influence diffuse color, the decision between them is made by checking texture mapping coordinates to:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;MAX map -&amp;gt; Blender texture influence&#039;&#039;&#039;&lt;br /&gt;
: Ambient Color -&amp;gt; Shading Ambient&lt;br /&gt;
: Diffuse Color -&amp;gt; Diffuse Color &amp;amp; UV mapping&lt;br /&gt;
: Specular Color -&amp;gt; Specular Color&lt;br /&gt;
: Specular Level -&amp;gt; Specular Intensity&lt;br /&gt;
: Glossiness -&amp;gt; Specular Hardness&lt;br /&gt;
: Self-Illumination -&amp;gt; Shading Emit&lt;br /&gt;
: Opacity -&amp;gt; Diffuse Alpha&lt;br /&gt;
: Filter Color -&amp;gt; Diffuse Translucency&lt;br /&gt;
: Bump -&amp;gt; Geometry Normal&lt;br /&gt;
: Reflection -&amp;gt; Diffuse Color &amp;amp; Reflection mapping &lt;br /&gt;
: Refraction -&amp;gt; not available(not found?)&lt;br /&gt;
: Displacement -&amp;gt; Geometry Displacement&lt;br /&gt;
&lt;br /&gt;
== Torsten&#039;s Hints  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These hints are reproduced from the Exporter script since many will not want to edit or view the actual script contents.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Trainz models you can have two kinds of special objects: attachment points and bones. For attachment points, the exporter expects objects of type &amp;quot;Empty&amp;quot;. For bones, objects of type &amp;quot;Lattice&amp;quot; and &amp;quot;Armature&amp;quot; will be accepted.  All of them need to be named according the naming conventions in effect for attachements( a.* ) and bones( b.r.* ). Objects of other type and objects with proper type but names not matching this conventions will be ignored as attachment points or bones.&lt;br /&gt;
&lt;br /&gt;
If you want to export animations with events, than you have to create a Blender TX object and enter the lines as you would do to create an event file. By renaming this object to &amp;quot;events&amp;quot; you ensure the exporter will not ignore your event list.&lt;br /&gt;
&lt;br /&gt;
It is possible to make parent-child-relations between meshes to simplify the design process. However, the chain must be end with a valid parent bone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Blender Data Files ===&lt;br /&gt;
 &lt;br /&gt;
Blender keeps certain data files, such as add-on utilities, in a special location. This has given Trainz content creators some difficulties due to access rights. If you used the Blender Installer then this is usually in the Windows logged on user space.&lt;br /&gt;
&lt;br /&gt;
Say, for example, your user name is Patrick, then the location is likely to be similiar to &amp;quot;C:\Users\Patrick\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you cannot see this folder in the user folder then it is likely the folder has been hidden by Windows.  You can unhide folders in the Windows Explorer by going to Tools-&amp;gt;Folder Options-&amp;gt;View and selecting &amp;quot;Show hidden files, folders and drives&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under The Hood or, How the Exporter Works ==&lt;br /&gt;
&lt;br /&gt;
Basically the Blender export process works in three phases:&lt;br /&gt;
&lt;br /&gt;
:* Phase 1 is the checking process where the Exporter does some validation.  Where it can, the Exporter will make minor corrections and just issue a warning.  Warnings do not stop the process but an error will.  The warnings and errors should provide enough information to enable correction.&lt;br /&gt;
:* Phase 2 is the creation of the XML file required by the TrainzMeshImporter.  The XML file is a text file using a common language used by many applications.  It is also N3V&#039;s preferred import format.&lt;br /&gt;
:* On succession completion of the first two phases, the Exporter passes control to the TrainzMeshImport program which takes the XML file plus other information and produces the IM mesh file used by Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
Many thanks to USCHI0815 (Torsten) for his time and effort that went into producing and supporting the Blender Exporter.  Without it there would be no Blender models in Trainz.&lt;br /&gt;
&lt;br /&gt;
Thanks to Mick_Berg and Jananton for their comments, and to Mick_Berg for his [http://www.mickberg.com/blenderexport1.html Blender installation tutorial].&lt;br /&gt;
&lt;br /&gt;
== Tutorial Updates ==&lt;br /&gt;
Please feel free to update as necessary and correct errors in this tutorial.  It is a WiKi contribution and intended to be maintained this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Material Types]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
{{FUN-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Talk:HowTo&amp;diff=8995</id>
		<title>Talk:HowTo</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Talk:HowTo&amp;diff=8995"/>
		<updated>2016-07-19T07:49:22Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is getting rather large and perhaps too complex.  I suggest splitting the grouped items into separate pages and just leaving the group titles as links.&lt;br /&gt;
&lt;br /&gt;
I&#039;m happy to do that if someone from N3V agrees. --[[User:Pcas1986|pcas1986]] ([[User talk:Pcas1986|talk]]) 14:49, 20 August 2014 (EST)&lt;br /&gt;
----&lt;br /&gt;
With respect to the suggestion for a documentation page on the topic &amp;quot;Build a house&amp;quot;, may I suggest that building a house is done by implementing straightforward modeling techniques and people who have spent time learning to use their platform of choice, probably already know how to make the house. Where most of these aspiring content creators need help is in getting the house to work in trainz, and constructing a sarisfactory config.txt file.[[User:Mjolnir|Mjolnir]] ([[User talk:Mjolnir|talk]]) 17:49, 19 July 2016 (AEST)&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo&amp;diff=8994</id>
		<title>HowTo</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo&amp;diff=8994"/>
		<updated>2016-07-19T07:45:21Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists available &amp;quot;How To&amp;quot; Guides which describe how to achieve certain tasks related to Trainz. &lt;br /&gt;
&lt;br /&gt;
Users are encouraged to add their own guides to this page in a similar fashion, or expand on existing guides. Please keep in mind that this site is dedicated to the current version of Trainz and that techniques used should relate to this version. Editors note: all pages here should fit the pattern &amp;quot;How to X&amp;quot;, as in &amp;quot;How to place signals&amp;quot;. Pages and topics which cannot be phrased in this manner do not belong on this page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Trainz Channel==&lt;br /&gt;
There are many tutorial videos that have been recorded for Trainz users to watch and learn from. Below are some of the videos which you might find interesting. To keep up to date with all streams and videos visit [https://www.twitch.tv/trainz_simulator TheTrainzChannel] on Twitch TV.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #16.1 - Materials - Rust (using tbumpgloss)&#039;&#039;&#039; - [https://youtu.be/ymfWeaPLIEk Video]&lt;br /&gt;
&lt;br /&gt;
This is a sequel of tutorials that show how to create certain types of materials in Trainz. This material is a &amp;quot;Rust&amp;quot; style material. You can use these materials on your content creations in the hope that you might achieve a better look using all the available material variables in Trainz.&lt;br /&gt;
&lt;br /&gt;
Download the Material Rust Asset [http://download.trainzportal.com/tutorials/16_1_trainz_material_rust.zip Here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #15 - Advanced Track Laying Tools&#039;&#039;&#039; - [https://youtu.be/CEzSmYe70IA Video]&lt;br /&gt;
&lt;br /&gt;
This tutorial explains how to easily create smooth prototypical track using the advanced track laying tools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #14 - Driver Commands&#039;&#039;&#039; - [https://youtu.be/hEE_8aE1KOI Video]&lt;br /&gt;
&lt;br /&gt;
This tutorial explains how to use Driver Commands in your session creation and also to drive your trains in Driver. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #13 - Creating / Saving Consists&#039;&#039;&#039; - [https://youtu.be/D3KGb2lSAxw Video]&lt;br /&gt;
&lt;br /&gt;
This tutorial explains how to create your own Consists in Trainz so that you can avoid having to place individual vehicles down over and over again to make up your Train.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #12 - Portals&#039;&#039;&#039; - [https://youtu.be/rmUHZ6z40Y8 Video]&lt;br /&gt;
&lt;br /&gt;
This tutorial explains how to use Portals to spawn trains into your sessions. The portals explained are the built-in portals, central control rule and the un-portal 2 rule. We also show how the CPC Emit Trigger rule works to emit trains when a trigger is hit. &amp;lt;kuid:-25:1070&amp;gt; Portal, &amp;lt;kuid2:30501:22006:3&amp;gt; Portal Basic, &amp;lt;kuid2:96914:22000:1&amp;gt; Portal Basic Short, &amp;lt;kuid2:117746:1013:9&amp;gt; Central Portal Control, &amp;lt;kuid2:400260:100645:2&amp;gt; Un-Portal 2, &amp;lt;kuid2:117746:1044:11&amp;gt; CPC: Emit Train On Trigger&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #11 - Creating Speedtrees Assets for Trainz&#039;&#039;&#039; - [https://youtu.be/oe7fu7g_yUU Video]&lt;br /&gt;
&lt;br /&gt;
This tutorial is a long one but goes into all aspects of creating Speedtrees for Trainz. From setting up your tree lighting, materials, color sets, LOD and wind to creating single trees or trees from a Speedtree library where each new tree references the same textures saving on performance and memory. All config.txt setup is explained and also full seasonal support.&lt;br /&gt;
&lt;br /&gt;
Speedtree Tutorial Files are [http://download.trainzportal.com/TANE/speedtree_tutorial_files.zip HERE]. Please not they are the tree assets referencing a tree library as that is the best way to create your Speedtree Assets for Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #10 - Introduction into Interlocking Towers&#039;&#039;&#039; - [https://youtu.be/fc12ILNf_o0 Video]&lt;br /&gt;
&lt;br /&gt;
This tutorial gives you an introduction into how to set up an Interlocking Tower Path.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #9 - Understanding trainz settings &amp;amp; Level of Detail on assets&#039;&#039;&#039; - [https://youtu.be/iZiVvZgYvW0 Video]&lt;br /&gt;
&lt;br /&gt;
This tutorial gives you an understanding on what the Trainz Settings do and how to configure them. The video also (in the beginning) talks about Level of Detail (LOD).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #8 - How to use triggers, change and lock junctions and change signals via rules in your sessions&#039;&#039;&#039; - [https://youtu.be/CfFyxhitSnI Video]&lt;br /&gt;
&lt;br /&gt;
This tutorial shows you how to find out how to use Triggers in Trainz to add great gameplay to your sessions!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #7 - Understanding Layers in Surveyor and what to use them for&#039;&#039;&#039; - [https://youtu.be/KoXvafsMC3k Video]&lt;br /&gt;
&lt;br /&gt;
This tutorial shows you how to use layers in Surveyor and the benefits of setting them up correctly to get the most out of your route and session creation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #6 - How to update color, lighting and fog in a route or session&#039;&#039;&#039; - [https://youtu.be/UHnvotzQ2Ds Video]&lt;br /&gt;
&lt;br /&gt;
This tutorial shows you how to update the color, lighting and fog for certain times of the day within your route or session. We also show you how to change your water effects and date for seasonal change to.&lt;br /&gt;
&lt;br /&gt;
This video should help you tweak your route or session to represent the look and feel you&#039;re going for with color, lighting, fog, water and day/night cycle for your route.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #5 - Bulk replace assets in surveyor to save hours of time!&#039;&#039;&#039; - [https://youtu.be/awtY2LlVQjY Video]&lt;br /&gt;
&lt;br /&gt;
Got an old route you want to update but think “There is no way I’m replacing 20,000 trees, that is going to take me a lifetime!” Never fear, we will show you some time saving ways to update your route in this video!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #4 - Part 1 - HTML Assets - Text - String Table Entries&#039;&#039;&#039; - [https://youtu.be/3jGWGH3zQTw Video]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #4 - Part 2 - HTML Assets - Pages with Images and Sounds&#039;&#039;&#039; - [https://youtu.be/SphgKdl8Lk8 Video]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #3 - Finding Content on the Download Station&#039;&#039;&#039; - [https://www.youtube.com/watch?v=BrqdwSBsVTo Video]&lt;br /&gt;
&lt;br /&gt;
This video explains the process of using TrainzContent to find assets on the Download Station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #2 - Part 1 - Turning an old track asset into a procedural track asset&#039;&#039;&#039; - [https://youtu.be/MOtwNdLcwtc Video]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #2 - Part 2 - Turning an old track asset into a procedural track asset&#039;&#039;&#039; - [https://youtu.be/P9oCpLtWnv0 Video]&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #2 - Part 3 - Turning an old track asset into a procedural track asset&#039;&#039;&#039; - [https://youtu.be/oOv7XZgyCLA Video]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trainz - Content Creation - #1 - Create a ground texture to match a track spline&#039;&#039;&#039; - [https://youtu.be/v0u2Gvd6tHk Video]&lt;br /&gt;
&lt;br /&gt;
==Using &amp;quot;Manage Content&amp;quot; in TANE==&lt;br /&gt;
* [[/Download an Asset from the Download Station/]]&lt;br /&gt;
* [[/Configure and use Columns in content windows/]]&lt;br /&gt;
* [[/Use the &amp;quot;Status&amp;quot; column in content windows/]]&lt;br /&gt;
* [[/Edit and Submit content/]]&lt;br /&gt;
* [[/View by thumbnail images/]]&lt;br /&gt;
* [[/Fix Errors and Warnings/]]&lt;br /&gt;
* [[/Use Search Filters/]]&lt;br /&gt;
&lt;br /&gt;
==Content Creation: Routes==&lt;br /&gt;
* [[/Create a Route in 10 Minutes/]]&lt;br /&gt;
* [[/Add Bumpy Track/]]&lt;br /&gt;
* [[/Make a Track Cutting/]]&lt;br /&gt;
* [[/Place Signals/]]&lt;br /&gt;
* [[/Build a Bridge/]]&lt;br /&gt;
* [[/Build a Tunnel/]]&lt;br /&gt;
* [[/Build a Crossing/]]&lt;br /&gt;
* [[/Build Catenary/]]&lt;br /&gt;
* [[/Use Superelevation/]]&lt;br /&gt;
* [[/Use Trig Stations/]]&lt;br /&gt;
* [[/Configure an iPortal/]]&lt;br /&gt;
* [[/Configure An Interlocking Tower/]]&lt;br /&gt;
&lt;br /&gt;
==Content Creation: Assets==&lt;br /&gt;
* [[/Make your first Trainz Asset/]]&lt;br /&gt;
* [[/Export from Max/]]&lt;br /&gt;
* [[/Export from Blender/]]&lt;br /&gt;
* [[/Export from Blender using FBX/]]&lt;br /&gt;
* [[/Solve Blender Modelling Problems/]]&lt;br /&gt;
* [[/Scaling setup in Blender/]] &lt;br /&gt;
* [[/Build normal maps in Max/]]&lt;br /&gt;
* [[/Localize an Asset/]]&lt;br /&gt;
* [[/Build a scripted asset/]]&lt;br /&gt;
* [[/Reskin an Asset/]]&lt;br /&gt;
* [[/Reskin an Asset using an alias/]]&lt;br /&gt;
* [[/Build a Car for Traffic (stand-alone version)/]]&lt;br /&gt;
* [[/Build a Car for Traffic (mesh library version)/]]&lt;br /&gt;
* [[/Build a cab interior/]]&lt;br /&gt;
* [[/Build a drivable car/]]&lt;br /&gt;
* [[/Render to Texture/]]&lt;br /&gt;
* [[/Build a simple animated scenery asset in Blender/]]&lt;br /&gt;
* [[/Build Passenger Enabled Assets/]]&lt;br /&gt;
* [[/Create a High Voltage Power Line Spline/]]&lt;br /&gt;
* [[/Create transparent windows in Blender/]]&lt;br /&gt;
* [[/Create a Fence Spline Featuring LOD and Random Meshes/]]&lt;br /&gt;
* [[/Create a Neon Font Effect with PhotoShop C4/]]&lt;br /&gt;
* [[/Build an animated Neon Sign/]]&lt;br /&gt;
* [[/Configure a spline for collisions/]]&lt;br /&gt;
* [[/Build Procedural Track for T:ANE/]]&lt;br /&gt;
* [[/Update your auto-generated next KUID/]]&lt;br /&gt;
&lt;br /&gt;
==Content Creation: Scripting==&lt;br /&gt;
* [[/Your first Trainz Script/]]&lt;br /&gt;
* [[/Hide- &amp;amp; Unhide Meshes/]]&lt;br /&gt;
&lt;br /&gt;
==Creating and Configuring Content In-game==&lt;br /&gt;
* [[/Create an Interactive Session/]]&lt;br /&gt;
* [[/Add Carz Traffic to a Route/]]&lt;br /&gt;
* [[/Tune a Steam Locomotive Enginespec/]]&lt;br /&gt;
* [[/Configure an Interactive Industry/]]&lt;br /&gt;
* [[/Implement a Destination Sign System/]]&lt;br /&gt;
* [[/Upload a new asset to the DownloadStation/]]&lt;br /&gt;
* [[/Update an existing asset on the DownloadStation/]]&lt;br /&gt;
&lt;br /&gt;
==Documentation Suggestions==&lt;br /&gt;
&lt;br /&gt;
* [[/Build normal maps in Blender/]]&lt;br /&gt;
* [[/Build a house/]] - See discussion page&lt;br /&gt;
* [[/Build a tree/]]&lt;br /&gt;
* [[/Build a track/]]&lt;br /&gt;
* [[/Build a tunnel/]]&lt;br /&gt;
* [[/Build a hedge/]]&lt;br /&gt;
* [[/Build a fence/]]&lt;br /&gt;
* [[/Build a road/]]&lt;br /&gt;
* [[/Build a road crossing/]]&lt;br /&gt;
* [[/Build a train car/]]&lt;br /&gt;
* [[/Build a bogey/]]&lt;br /&gt;
* [[/Build a ground texture/]]&lt;br /&gt;
* [[/Build an interactive industry/]]&lt;br /&gt;
* [[/Add attached track/]]&lt;br /&gt;
* [[/Add an intro page to a session/]]&lt;br /&gt;
* [[/Register with Planet Auran/]]&lt;br /&gt;
* [[/Create an Achievement/]]&lt;br /&gt;
* [[/Use a map to create a baseboard/]]&lt;br /&gt;
* [[/Create a displacement map/]]&lt;br /&gt;
&lt;br /&gt;
== See Also==&lt;br /&gt;
&lt;br /&gt;
* [[Content Configuration]] - &#039;&#039;A reference manual covering all content types.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to guides| ]]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Saving_and_Restoring_Data,_Using_Properties.&amp;diff=8891</id>
		<title>Saving and Restoring Data, Using Properties.</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Saving_and_Restoring_Data,_Using_Properties.&amp;diff=8891"/>
		<updated>2016-05-31T06:04:48Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Added link to previous tutorial */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Apart from &#039;&#039;Init()&#039;&#039; there are several other standard methods which you can include which will be called at the appropriate time by the game. Two of the most important are &#039;&#039;GetProperties()&#039;&#039; which is called when Trainz needs to retrieve any useful data which your object might wish to save to the session file, and &#039;&#039;SetProperties()&#039;&#039; which is called when your object might want to read or update any data which has been saved by the game.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;SetProperties()&#039;&#039; is called at the start of a Surveyor or Driver session and whenever the Object Property dialogue is saved. It is also used by the Undo system.  &lt;br /&gt;
* &#039;&#039;GetProperties()&#039;&#039; is called when the Object Property dialogue is opened and when the current session is saved and exited.&lt;br /&gt;
&lt;br /&gt;
To demonstrate this we have a further script:&lt;br /&gt;
&lt;br /&gt;
 include &amp;quot;MapObject.gs&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 class Tutorial isclass MapObject {&lt;br /&gt;
 &lt;br /&gt;
    string Now;&lt;br /&gt;
    string Then;&lt;br /&gt;
 &lt;br /&gt;
    string GetTime(float GameTime) {&lt;br /&gt;
       string result = &amp;quot;Good Afternoon&amp;quot;;&lt;br /&gt;
       if (GameTime &amp;gt;= 0.25) result = &amp;quot;Good Evening&amp;quot;;&lt;br /&gt;
       if (GameTime &amp;gt;= 0.5) result = &amp;quot;Good Morning&amp;quot;;&lt;br /&gt;
       return result;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public void Init(void) {&lt;br /&gt;
       inherited();&lt;br /&gt;
       Now = GetTime(World.GetGameTime());&lt;br /&gt;
       AddHandler(me,&amp;quot;Reminder&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;ReminderHandler&amp;quot;);&lt;br /&gt;
       PostMessage(me,&amp;quot;Reminder&amp;quot;,Now,5.0);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public void SetProperties(Soup soup) {&lt;br /&gt;
       inherited(soup);&lt;br /&gt;
       Then = soup.GetNamedTag(&amp;quot;last&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public Soup GetProperties(void) {&lt;br /&gt;
       Soup soup = inherited();&lt;br /&gt;
       soup.SetNamedTag(&amp;quot;last&amp;quot;,Now);&lt;br /&gt;
       return soup;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    void ReminderHandler(Message msg) {&lt;br /&gt;
       if (Then != &amp;quot;&amp;quot;) {&lt;br /&gt;
          Str.TrimLeft(Then,&amp;quot;Good &amp;quot;);&lt;br /&gt;
          Then = &amp;quot;\nLast time we met was in the &amp;quot; + Then;&lt;br /&gt;
       }&lt;br /&gt;
       Interface.ShowPopupHelp(&amp;quot;Hello World, &amp;quot; + msg.minor,GetAsset(),Interface.GetTimeStamp())&lt;br /&gt;
       //Exception(&amp;quot;Hello World, &amp;quot; + msg.minor + Then + &amp;quot;\n\n&amp;quot;);// use this in old versions&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;string Now;&#039;&#039;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;string Then;&#039;&#039;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* The declaration of &#039;&#039;Now&#039;&#039; has been moved from &#039;&#039;Init()&#039;&#039; to the body of the script.&lt;br /&gt;
* A second declaration, &#039;&#039;Then&#039;&#039; has been added in the same place. &lt;br /&gt;
* Declaring them here makes them &#039;&#039;global&#039;&#039;, meaning that they can be used by any method within the script.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;public void SetProperties(Soup soup) {&#039;&#039;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* This is the standard declaration of &#039;&#039;SetProperties()&#039;&#039;&lt;br /&gt;
* The method is public, since it needs to be called from outside the current script.&lt;br /&gt;
* It requires one parameter of type Soup (a Trainz database), which is supplied by the game.&lt;br /&gt;
* This database contains all the data about our object which has previously been saved to disc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;inherited(soup);&#039;&#039;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* As with &#039;&#039;Init()&#039;&#039; the equivalent function in the parent &#039;&#039;MapObject&#039;&#039; must be called first.&lt;br /&gt;
* The &#039;&#039;Soup&#039;&#039; which the game has supplied is passed on to allow the parent to extract any data that it might need.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Then = soup.GetNamedTag(&amp;quot;last&amp;quot;);&#039;&#039;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* We need to know whether it was morning, afternoon or evening the last time that the session was saved.  &lt;br /&gt;
* &#039;&#039;GetNamedTag(&amp;quot;last&amp;quot;)&#039;&#039; retrieves this data from the &#039;&#039;Soup&#039;&#039; by specifying the key that will have been used to save it.&lt;br /&gt;
* The first time that we place our asset the tag will not contain any data and will return an empty string.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;public Soup GetProperties(void) {&#039;&#039;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* This is the standard declaration of &#039;&#039;GetProperties&#039;&#039;&lt;br /&gt;
* This is a public function which returns a &#039;&#039;Soup&#039;&#039; but requires no parameters.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Soup soup = inherited();&#039;&#039;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* The equivalent function within the parent MapObject class must be called first.&lt;br /&gt;
* A &#039;&#039;Soup&#039;&#039; database is declared and the contents of the parent&#039;s &#039;&#039;Soup&#039;&#039; are assigned to it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;soup.SetNamedTag(&amp;quot;last&amp;quot;,Now);&#039;&#039;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Once the parent has provided its data we need to add our own information to the database.&lt;br /&gt;
* We can do this by creating or updating information referenced by the tag name &amp;quot;last&amp;quot;, so we set this item to be the current value of &#039;&#039;Now&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;return soup;&#039;&#039;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Having added our data we send the modified database back to the game to be written to disk.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;ReminderHandler&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* This method has been amended to look at the value of the global variable &#039;&#039;Then&#039;&#039; which has been retrieved from the session files via the &#039;&#039;SetProperties()&#039;&#039; method. &lt;br /&gt;
* If the value of &#039;&#039;Then&#039;&#039; is not an empty string it is chopped and formatted so that it can be included in our &#039;&#039;ShowPopupHelp()&#039;&#039; or &#039;&#039;Exception()&#039;&#039; message.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To test this out:&lt;br /&gt;
* Modify the script as before.&lt;br /&gt;
* Load TRS and start a new map in Surveyor.&lt;br /&gt;
* Place a copy of your object, wait for the message which will be the same as before.&lt;br /&gt;
* Quit the map making sure to save the Surveyor session.&lt;br /&gt;
* Reload and wait for the message.&lt;br /&gt;
* This time it should look like this:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:The Last Time.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From now on every time the session is saved and reloaded your object will remember the time of day when it was last saved.  Rather than just saving Morning, Afternoon and Evening we could have updated the actual game time throughout the session and used the same mechanism to save the time when the session is closed down.  We could also use similar techniques to reset the clock on reloading the session.&lt;br /&gt;
&lt;br /&gt;
You have now used the most important of the standard method calls and learned how to send messages and how to save and retrieve data. Now we can move on to creating an asset and making it do something useful.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Previous Tutorial:  [[Talking_to_Yourself,_Sending_Messages.]]     Next Tutorial: [[Setting Up the Asset.]]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Setting_Up_the_Asset.&amp;diff=8890</id>
		<title>Setting Up the Asset.</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Setting_Up_the_Asset.&amp;diff=8890"/>
		<updated>2016-05-31T06:03:13Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Added link to previous tutorial */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Now we will examine the creation of a simple scripted asset and will deal with managing messages sent by other objects, with handling animations, corona and name effects and with playing sound files via script. We will be setting up methods to react automatically to events in the Trainz environment and we will be scripting a simple interface to allow the user to edit some of the object&#039;s properties.&lt;br /&gt;
&lt;br /&gt;
We will need a simple mesh asset to hang all of this script on and here is the asset we will be using. In case it&#039;s difficult for you to tell, this is an engine shed with animated opening doors, a flashing light and a name written on the pediment above.  If you want to texture it properly and add windows and drainpipes, be my guest.  It will have a roof mesh which can be hidden, so that we can see what is going on inside, and we will be arranging for bells to ring when the doors open.&lt;br /&gt;
&lt;br /&gt;
Since the asset will need attached tracks and a scenery trigger we will make it as a &#039;&#039;kind buildable&#039;&#039;.  The shed has been designed to suit diesel engines or railcars about twenty metres in length, steam engines with tenders or articulated trams introduce some complications so leave those for later.&lt;br /&gt;
&lt;br /&gt;
The shed is being set up so that an engine can be issued with a &#039;&#039;Drive&#039;&#039; command and sent towards the shed. The doors will open on the train&#039;s approach and close as it draws to a halt, all without user intervention. You will need to back out very slowly and under human control.&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the building with the dimensions that I used to build my version. All of the X dimensions are zero and the width and height of the shed itself are not particularly important as long as there is room for the train. The two helper points above the doors are &#039;&#039;a.corona&#039;&#039; and &#039;&#039;a.name&#039;&#039;, you might need to refer to the CCG to get the orientation right for the name effect.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Engine Shed.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will need to create this, or something similar, in Max and animate the front doors, I used 50 frames.  Each door should be linked to its respective dummy and everything else, including the two door dummies themselves, should be linked to b.r.main at the centre of the object.  Make sure that &#039;&#039;a.tracka1&#039;&#039; and &#039;&#039;a.tracka3&#039;&#039; are aligned as shown, the alignment of &#039;&#039;a.tracka2&#039;&#039; doesn&#039;t matter.  &lt;br /&gt;
&lt;br /&gt;
When you have built the main shed you will need to make an entirely separate roof mesh, exported as &#039;&#039;roof.im.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you prefer you can [[Media:Tutorial.zip|click on this link]] to download a zip file containing all of the files you will need (except for &#039;&#039;config.txt&#039;&#039; and &#039;&#039;Tutorial.gs&#039;&#039; which you should copy and paste from these pages) The gmax source is also included, although it&#039;s not my best model (NOTE: You will only see the roof when opened in GMAX, you must &amp;quot;unhide all&amp;quot; to see the entire model).  Unzip the download to a folder on your hard drive, add your .txt and .gs files and drop the folder into CMP.  For Blender users, you can find the equivalent file [[Media:Tutorial_Blender.zip|here]]&lt;br /&gt;
&lt;br /&gt;
Here is the config.txt with one or two comments added (which cmp will not allow you to retain).&lt;br /&gt;
&lt;br /&gt;
 kuid                          &amp;lt;&amp;lt;font color=red&amp;gt;&amp;lt;b&amp;gt;ADD YOUR OWN KUID&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;gt;&lt;br /&gt;
 username                      &amp;quot;Engine Shed Tutorial&amp;quot;&lt;br /&gt;
 kind                          buildable&lt;br /&gt;
 trainz-build                  2.5&lt;br /&gt;
 &lt;br /&gt;
 light                         1&lt;br /&gt;
 &lt;br /&gt;
 category-region               &amp;quot;00&amp;quot;&lt;br /&gt;
 category-era                  &amp;quot;2000s&amp;quot;&lt;br /&gt;
 category-class                &amp;quot;TF&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 script                        Tutorial&lt;br /&gt;
 class                         Tutorial&lt;br /&gt;
 &lt;br /&gt;
 mesh-table {&lt;br /&gt;
    default {&lt;br /&gt;
       mesh                    &amp;quot;shed.im&amp;quot;&lt;br /&gt;
       anim                    &amp;quot;shed.kin&amp;quot;&lt;br /&gt;
       auto-create             1&lt;br /&gt;
       effects {&lt;br /&gt;
          corona {&lt;br /&gt;
             kind              corona&lt;br /&gt;
             att               &amp;quot;a.corona&amp;quot;&lt;br /&gt;
             texture-kuid      &amp;lt;kuid:-3:10110&amp;gt;&lt;br /&gt;
             frequency         2&lt;br /&gt;
             directional       0&lt;br /&gt;
             object-size       0.15&lt;br /&gt;
          }&lt;br /&gt;
          name {&lt;br /&gt;
             kind              name&lt;br /&gt;
             fontsize          0.5 &lt;br /&gt;
             fontcolor         160,160,160&lt;br /&gt;
             att               &amp;quot;a.name&amp;quot;&lt;br /&gt;
             name&lt;br /&gt;
          }&lt;br /&gt;
          masonry {&lt;br /&gt;
             kind             &amp;quot;texture-replacement&amp;quot;&lt;br /&gt;
             texture          &amp;quot;brick.texture&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
    roof {&lt;br /&gt;
       mesh                    &amp;quot;roof.im&amp;quot;&lt;br /&gt;
       auto-create             0&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;font color=#808080&amp;gt;&lt;br /&gt;
 // There are two attached track segments, the front segment will auto-update when you attach&lt;br /&gt;
 // your track to it, the second will remain invisible and is only present because trains under&lt;br /&gt;
 // a drive command will not go to the end of a track. You may need to adjust the position of&lt;br /&gt;
 // &#039;&#039;a.tracka3&#039;&#039; to get the train to stop in the right place &amp;lt;/font&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 attached-track {&lt;br /&gt;
   track1 {&lt;br /&gt;
      track                   &amp;lt;kuid:-10:137&amp;gt;&lt;br /&gt;
      useadjoiningtracktype   1&lt;br /&gt;
      vertices {&lt;br /&gt;
         0                    &amp;quot;a.tracka1&amp;quot;&lt;br /&gt;
         1                    &amp;quot;a.tracka2&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
   track2 {&lt;br /&gt;
      track                   &amp;lt;kuid:-10:137&amp;gt;&lt;br /&gt;
      useadjoiningtracktype   0&lt;br /&gt;
      vertices {&lt;br /&gt;
         0                    &amp;quot;a.tracka2&amp;quot;&lt;br /&gt;
         1                    &amp;quot;a.tracka3&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;font color=#808080&amp;gt;&lt;br /&gt;
 // This is the trigger which detects the approaching train. Since it has a &#039;&#039;track&#039;&#039; assignment&lt;br /&gt;
 // it will ignore trains on any parallel tracks in the same object.  You will find this a useful &lt;br /&gt;
 // device if you decide to turn this into a multi track shed.&amp;lt;/font&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 attached-trigger {&lt;br /&gt;
    trigger1 {&lt;br /&gt;
       att                     &amp;quot;a.tracka1&amp;quot;&lt;br /&gt;
       radius                  25&lt;br /&gt;
       track                   &amp;quot;track1&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Once you have all of this done create a script file called &#039;&#039;Tutorial.gs&#039;&#039; and add the following code. This does nothing other than turning off the corona. We will be adding to it in steps.&lt;br /&gt;
&lt;br /&gt;
 include &amp;quot;Buildable.gs&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 class Tutorial isclass Buildable {&lt;br /&gt;
 &lt;br /&gt;
    public void Init(void) {&lt;br /&gt;
      inherited();&lt;br /&gt;
      SetFXCoronaTexture(&amp;quot;corona&amp;quot;,null);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Now you should load the asset via CMP, commit it and make sure that it is error free and shows up correctly in the game. Don&#039;t worry that the roof is invisible, this is by design.&lt;br /&gt;
&lt;br /&gt;
When working with script it&#039;s usually advisable to add short sections of code and test them out thoroughly. Even though it will mean frequently restarting Trainz, it will be quicker to do this in the end. There are very few facilities for debugging and you can be reasonably sure that any errors or problems that you find will be connected to the last change you made. Don&#039;t forget to check the compilation before restarting Trainz, this will save you a lot of aggravation.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Previous Tutorial: [[Saving_and_Restoring_Data,_Using_Properties.]]   Next Tutorial: [[Automating Animations.]]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Solve_Blender_Modelling_Problems&amp;diff=8887</id>
		<title>HowTo/Solve Blender Modelling Problems</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Solve_Blender_Modelling_Problems&amp;diff=8887"/>
		<updated>2016-05-23T05:38:56Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Asking for Assistance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Using Blender for Making Trainz Content ==&lt;br /&gt;
&lt;br /&gt;
The Blender 3D modelling software is ideal for making content for Trainz and many 3rd party add-ons, tutorials, and documentation may be found online. Examples include the main {{plain link|http://www.blender.org |Blender}} site, {{plain link|http:www.blendernation.com/ |BlenderNation}} and {{plain link|http://blenderartists.org/ |Blender Artists}}.  A search of the web will reveal many others.&lt;br /&gt;
&lt;br /&gt;
Blender is a complex software suite with extensive functionality, some of which is not yet usable in Trainz. People planning to use Blendr to create content for Trainz would be well advised to start by spending time building a Blender skillset. Besides a variety of printed materials available commercially, there are two courses which can help a prospective content creator learn to use Blender for creating content. One of these is a {{plain link|http://www.cdschools.org/Page/455 |course}} geared towards high school students, taught by James Chronister, and available through the auspices of the Central Dauphin High School in Harrisburg, Pennsylvania. The other course is offered under the auspices of Tufts University in the US, and is geared towards college students. This {{plain link|http://gryllus.net/Blender/3D.html  |course}} is taught by Neil Hirsig. If in doubt, take both.&lt;br /&gt;
&lt;br /&gt;
Help specifically for Trainz purposes is harder to find.  There are the &amp;quot;How/Tos&amp;quot; on this site, some on {{plain link|http://en.wikibooks.org/wiki/Trainz/Tutorial_for_Blender |WiKi Books}}, Ian Cayden&#039;s {{plain link|http://www.doug56.net/MBC/ |Blender Notes}} and Paul Hobbs&#039; {{plain link|http://44090digitalmodels.co.uk/tutorials/index.htmltutorials Tutorials}}.  Paul Hobbs&#039; site hosts tutorials for Blender using both pre 2.5 versions of Blender, and others converted to the current user interface (v. 2.50 and later).&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
This page contains answers to frequently asked questions (FAQ) relating specifically to Trainz modelling and should be useful for both beginner and more experienced creators.  The Trainz Blender community is encouraged to add their own submissions.&lt;br /&gt;
&lt;br /&gt;
== Asking for Assistance ==&lt;br /&gt;
&lt;br /&gt;
When asking for help in the Trainz forums on issues related to using Blender for content creation, the following suggestions will help other members of the Trainz community assist you better.&lt;br /&gt;
&lt;br /&gt;
1) Get an account with a hosting service such as dropbox, where you can upload files about which you have questions.&lt;br /&gt;
&lt;br /&gt;
2) When seeking help with an issue related to Blender for content creation, upload a copy of your Blend file, and any other supporting files (textures, animations, screenshots, &amp;amp;c) to the dropbox file so that those who would wish to offer help can see the material with which you are working, and better understand the problems.&lt;br /&gt;
&lt;br /&gt;
3) For questions related to &#039;&#039;internal&#039;&#039; Blender functionality, where queries in the Trainz forums have not produced usable answers, {{plain link|http://blender.stackexchange.com/ |Blender Stack Exchange}} might prove to be a useful resource. Note that most people on the blender.stackexchange site are not knowledgeable about Trainz, and those who might be probably have already seen it in the Trainz forums.&lt;br /&gt;
&lt;br /&gt;
== Exporting ==&lt;br /&gt;
&lt;br /&gt;
=== Surfaceless Polygons ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Symptom&#039;&#039;&#039;:  The exporter log contains a message like this:&lt;br /&gt;
&lt;br /&gt;
  15:33:10 WARNING: surfaceless Polygon(s) in Object &amp;quot;rdc12349end.001&amp;quot;, Mesh &amp;quot;Cube.097&amp;quot; detected&lt;br /&gt;
  15:33:10 INFO:    Vertices of surfaceless Polygon(s) gathered in Vertex Group &amp;quot;ERROR_surfaceless_Polygons&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Comment&#039;&#039;&#039;:  Surfaceless polygons (aka faceless faces) are polygons which cannot form a plane (face) between the polygons vertices.  This problem often arises when an extrusion is initiated but not completed.  In this case two or more vertices may occupy the same location.  Here is another explanation by Torsten:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Let&#039;s call the corner points (vertices) of a triangle (the simplest possible face) A, B and C. As long as all three corners have different locations they define a plane, a two dimensional object. The part of the plane inside all three vertices is what we call surface or face. So far for the &amp;quot;good&amp;quot; case. Now the &amp;quot;bad&amp;quot; case. Imagine point B moves to the location of A: suddenly we can no longer tell if what we see is a triangle or a line. We can no longer define a plane because all three vertices now only form a line (of course a line with three points instead the necessary two points). As our triangle (aka polygon) now has no surface (we need a plane -&amp;gt; 2D and have a line -&amp;gt; 1D) we have created a &amp;quot;surfaceless polygon&amp;quot;.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;The exporter itself needs a plane because for every exported triangle Trainz want to know its normal (to calculate the color of that face for example), and a 3D normal needs a 2D plane. Try to calculate the normal for a surfaceless polygon will end in a division by zero.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Solution&#039;&#039;&#039;:  This can be cured by selecting the mesh and using the &amp;quot;Remove doubles&amp;quot; command.  You can identify the problem vertices by selecting the problem mesh and then going into the Properties Browser and the Object Data (the triangle) tab.  There is a section called Vertex Groups and the newly created vertex group with the problem should be listed.  There are options to highlight the vertices in the group.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Comment&#039;&#039;&#039;:  Another cause of surfaceless polygons is when there are two edges that seem to join, but where the edge on one side does not have the same number of vertices as the edge on the other. As an example, if one starts with the default Blender cube, and extrudes the top face of the cube to create a first story. and extrudes the top face again to create a second story, the result is a stack of 3 &amp;quot;cubes&amp;quot;. Now, if one decides to add a door, or a window, in one face of the center cube of the stack by deleting the center face one side, and extrudes both vertical edges towards the center, and then makes a face from the two resulting extruded edges, one has created two surfaceless polygons, one from the four vertices that lie in a line at the top of the door, and one from the four vertices which lie at the bottom.  &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Solution&#039;&#039;&#039;:  A modificaton of the work flow. If one decides to add a opening, instead of deleting the face, and creating the opening by extruding edges or vertices, either make loop cuts around the object as needed, and delete the necessary face, or subdivide the face&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;See Also&#039;&#039;&#039;: This Trainz forum [http://forums.auran.com/trainz/showthread.php?111191-Trying-to-Get-Back-into-the-Blender-Game&amp;amp;p=1281909#post1281909  thread]&lt;br /&gt;
&lt;br /&gt;
== Making updating updating from one version of Blender to the next easier ==&lt;br /&gt;
&lt;br /&gt;
Blender updates every couple of months, on the average. One way to make the updating process easier is to store any Blender add-ons you use that are not included in the ordinary Blender distribution in a convenient place on your computer. Among the things to store in this folder are the latest version of the Trainz mesh exporter, and the Trainz mesh importer. This makes it easy to make the new version have all of the material of the old one, as it is simply necessary to copy the contents of the update folder into the appropriate locations of the Blender installation.&lt;br /&gt;
&lt;br /&gt;
== Next major topic ==&lt;br /&gt;
&lt;br /&gt;
=== Next FAQ ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling]]&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
[[Category:TBD]]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Solve_Blender_Modelling_Problems&amp;diff=8886</id>
		<title>HowTo/Solve Blender Modelling Problems</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Solve_Blender_Modelling_Problems&amp;diff=8886"/>
		<updated>2016-05-23T05:36:49Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Using Blender for Making Trainz Content  -  Fixed links.*/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Using Blender for Making Trainz Content ==&lt;br /&gt;
&lt;br /&gt;
The Blender 3D modelling software is ideal for making content for Trainz and many 3rd party add-ons, tutorials, and documentation may be found online. Examples include the main {{plain link|http://www.blender.org |Blender}} site, {{plain link|http:www.blendernation.com/ |BlenderNation}} and {{plain link|http://blenderartists.org/ |Blender Artists}}.  A search of the web will reveal many others.&lt;br /&gt;
&lt;br /&gt;
Blender is a complex software suite with extensive functionality, some of which is not yet usable in Trainz. People planning to use Blendr to create content for Trainz would be well advised to start by spending time building a Blender skillset. Besides a variety of printed materials available commercially, there are two courses which can help a prospective content creator learn to use Blender for creating content. One of these is a {{plain link|http://www.cdschools.org/Page/455 |course}} geared towards high school students, taught by James Chronister, and available through the auspices of the Central Dauphin High School in Harrisburg, Pennsylvania. The other course is offered under the auspices of Tufts University in the US, and is geared towards college students. This {{plain link|http://gryllus.net/Blender/3D.html  |course}} is taught by Neil Hirsig. If in doubt, take both.&lt;br /&gt;
&lt;br /&gt;
Help specifically for Trainz purposes is harder to find.  There are the &amp;quot;How/Tos&amp;quot; on this site, some on {{plain link|http://en.wikibooks.org/wiki/Trainz/Tutorial_for_Blender |WiKi Books}}, Ian Cayden&#039;s {{plain link|http://www.doug56.net/MBC/ |Blender Notes}} and Paul Hobbs&#039; {{plain link|http://44090digitalmodels.co.uk/tutorials/index.htmltutorials Tutorials}}.  Paul Hobbs&#039; site hosts tutorials for Blender using both pre 2.5 versions of Blender, and others converted to the current user interface (v. 2.50 and later).&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
This page contains answers to frequently asked questions (FAQ) relating specifically to Trainz modelling and should be useful for both beginner and more experienced creators.  The Trainz Blender community is encouraged to add their own submissions.&lt;br /&gt;
&lt;br /&gt;
== Asking for Assistance ==&lt;br /&gt;
&lt;br /&gt;
When asking for help in the Trainz forums on issues related to using Blender for content creation, the following suggestions will help other members of the Trainz community assist you better.&lt;br /&gt;
&lt;br /&gt;
1) Get an account with a hosting service such as dropbox, where you can upload files about which you have questions.&lt;br /&gt;
&lt;br /&gt;
2) When seeking help with an issue related to Blender for content creation, upload a copy of your Blend file, and any other supporting files (textures, animations, screenshots, &amp;amp;c) to the dropbox file so that those who would wish to offer help can see the material with which you are working, and better understand the problems.&lt;br /&gt;
&lt;br /&gt;
== Exporting ==&lt;br /&gt;
&lt;br /&gt;
=== Surfaceless Polygons ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Symptom&#039;&#039;&#039;:  The exporter log contains a message like this:&lt;br /&gt;
&lt;br /&gt;
  15:33:10 WARNING: surfaceless Polygon(s) in Object &amp;quot;rdc12349end.001&amp;quot;, Mesh &amp;quot;Cube.097&amp;quot; detected&lt;br /&gt;
  15:33:10 INFO:    Vertices of surfaceless Polygon(s) gathered in Vertex Group &amp;quot;ERROR_surfaceless_Polygons&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Comment&#039;&#039;&#039;:  Surfaceless polygons (aka faceless faces) are polygons which cannot form a plane (face) between the polygons vertices.  This problem often arises when an extrusion is initiated but not completed.  In this case two or more vertices may occupy the same location.  Here is another explanation by Torsten:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Let&#039;s call the corner points (vertices) of a triangle (the simplest possible face) A, B and C. As long as all three corners have different locations they define a plane, a two dimensional object. The part of the plane inside all three vertices is what we call surface or face. So far for the &amp;quot;good&amp;quot; case. Now the &amp;quot;bad&amp;quot; case. Imagine point B moves to the location of A: suddenly we can no longer tell if what we see is a triangle or a line. We can no longer define a plane because all three vertices now only form a line (of course a line with three points instead the necessary two points). As our triangle (aka polygon) now has no surface (we need a plane -&amp;gt; 2D and have a line -&amp;gt; 1D) we have created a &amp;quot;surfaceless polygon&amp;quot;.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;The exporter itself needs a plane because for every exported triangle Trainz want to know its normal (to calculate the color of that face for example), and a 3D normal needs a 2D plane. Try to calculate the normal for a surfaceless polygon will end in a division by zero.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Solution&#039;&#039;&#039;:  This can be cured by selecting the mesh and using the &amp;quot;Remove doubles&amp;quot; command.  You can identify the problem vertices by selecting the problem mesh and then going into the Properties Browser and the Object Data (the triangle) tab.  There is a section called Vertex Groups and the newly created vertex group with the problem should be listed.  There are options to highlight the vertices in the group.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Comment&#039;&#039;&#039;:  Another cause of surfaceless polygons is when there are two edges that seem to join, but where the edge on one side does not have the same number of vertices as the edge on the other. As an example, if one starts with the default Blender cube, and extrudes the top face of the cube to create a first story. and extrudes the top face again to create a second story, the result is a stack of 3 &amp;quot;cubes&amp;quot;. Now, if one decides to add a door, or a window, in one face of the center cube of the stack by deleting the center face one side, and extrudes both vertical edges towards the center, and then makes a face from the two resulting extruded edges, one has created two surfaceless polygons, one from the four vertices that lie in a line at the top of the door, and one from the four vertices which lie at the bottom.  &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Solution&#039;&#039;&#039;:  A modificaton of the work flow. If one decides to add a opening, instead of deleting the face, and creating the opening by extruding edges or vertices, either make loop cuts around the object as needed, and delete the necessary face, or subdivide the face&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;See Also&#039;&#039;&#039;: This Trainz forum [http://forums.auran.com/trainz/showthread.php?111191-Trying-to-Get-Back-into-the-Blender-Game&amp;amp;p=1281909#post1281909  thread]&lt;br /&gt;
&lt;br /&gt;
== Making updating updating from one version of Blender to the next easier ==&lt;br /&gt;
&lt;br /&gt;
Blender updates every couple of months, on the average. One way to make the updating process easier is to store any Blender add-ons you use that are not included in the ordinary Blender distribution in a convenient place on your computer. Among the things to store in this folder are the latest version of the Trainz mesh exporter, and the Trainz mesh importer. This makes it easy to make the new version have all of the material of the old one, as it is simply necessary to copy the contents of the update folder into the appropriate locations of the Blender installation.&lt;br /&gt;
&lt;br /&gt;
== Next major topic ==&lt;br /&gt;
&lt;br /&gt;
=== Next FAQ ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling]]&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
[[Category:TBD]]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Solve_Blender_Modelling_Problems&amp;diff=8885</id>
		<title>HowTo/Solve Blender Modelling Problems</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Solve_Blender_Modelling_Problems&amp;diff=8885"/>
		<updated>2016-05-23T05:30:02Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /*[Updated] Using Blender for Making Trainz Content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Using Blender for Making Trainz Content ==&lt;br /&gt;
&lt;br /&gt;
The Blender 3D modelling software is ideal for making content for Trainz and many 3rd party add-ons, tutorials, and documentation may be found online. Examples include the main {{plain link|http://www.blender.org |Blender}} site, {{plain link|http://http://www.blendernation.com/ |BlenderNation}} and {{plain link|http://blenderartists.org/ |Blender Artists}}.  A search of the web will reveal many others.&lt;br /&gt;
&lt;br /&gt;
Blender is a complex software suite with extensive functionality, some of which is not yet usable in Trainz. People planning to use Blendr to create content for Trainz would be well advised to start by spending time building a Blender skillset. Besides a variety of printed materials available commercially, there are two courses which can help a prospective content creator learn to use Blender for creating content. One of these is a {{plain link|http://www.cdschools.org/Page/455 |course}} geared towards high school students, taught by James Chronister, and available through the auspices of the Central Dauphin High School in Harrisburg, Pennsylvania. The other course is offered under the auspices of Tufts University in the US, and is geared towards college students. This {{plain link|http://http://gryllus.net/Blender/3D.html  |course}} is taught by Neil Hirsig. If in doubt, take both.&lt;br /&gt;
&lt;br /&gt;
Help specifically for Trainz purposes is harder to find.  There are the &amp;quot;How/Tos&amp;quot; on this site, some on {{plain link|http://en.wikibooks.org/wiki/Trainz/Tutorial_for_Blender |WiKi Books}}, Ian Cayden&#039;s {{plain link|http://www.doug56.net/MBC/ |Blender Notes}} and Paul Hobbs&#039; {{plain link|http://44090digitalmodels.co.uk/tutorials/index.htmltutorials Tutorials}}.  Paul Hobbs&#039; site hosts tutorials for Blender using both pre 2.5 versions of Blender, and others converted to the current user interface (v. 2.50 and later).&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
This page contains answers to frequently asked questions (FAQ) relating specifically to Trainz modelling and should be useful for both beginner and more experienced creators.  The Trainz Blender community is encouraged to add their own submissions.&lt;br /&gt;
&lt;br /&gt;
== Asking for Assistance ==&lt;br /&gt;
&lt;br /&gt;
When asking for help in the Trainz forums on issues related to using Blender for content creation, the following suggestions will help other members of the Trainz community assist you better.&lt;br /&gt;
&lt;br /&gt;
1) Get an account with a hosting service such as dropbox, where you can upload files about which you have questions.&lt;br /&gt;
&lt;br /&gt;
2) When seeking help with an issue related to Blender for content creation, upload a copy of your Blend file, and any other supporting files (textures, animations, screenshots, &amp;amp;c) to the dropbox file so that those who would wish to offer help can see the material with which you are working, and better understand the problems.&lt;br /&gt;
&lt;br /&gt;
== Exporting ==&lt;br /&gt;
&lt;br /&gt;
=== Surfaceless Polygons ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Symptom&#039;&#039;&#039;:  The exporter log contains a message like this:&lt;br /&gt;
&lt;br /&gt;
  15:33:10 WARNING: surfaceless Polygon(s) in Object &amp;quot;rdc12349end.001&amp;quot;, Mesh &amp;quot;Cube.097&amp;quot; detected&lt;br /&gt;
  15:33:10 INFO:    Vertices of surfaceless Polygon(s) gathered in Vertex Group &amp;quot;ERROR_surfaceless_Polygons&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Comment&#039;&#039;&#039;:  Surfaceless polygons (aka faceless faces) are polygons which cannot form a plane (face) between the polygons vertices.  This problem often arises when an extrusion is initiated but not completed.  In this case two or more vertices may occupy the same location.  Here is another explanation by Torsten:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Let&#039;s call the corner points (vertices) of a triangle (the simplest possible face) A, B and C. As long as all three corners have different locations they define a plane, a two dimensional object. The part of the plane inside all three vertices is what we call surface or face. So far for the &amp;quot;good&amp;quot; case. Now the &amp;quot;bad&amp;quot; case. Imagine point B moves to the location of A: suddenly we can no longer tell if what we see is a triangle or a line. We can no longer define a plane because all three vertices now only form a line (of course a line with three points instead the necessary two points). As our triangle (aka polygon) now has no surface (we need a plane -&amp;gt; 2D and have a line -&amp;gt; 1D) we have created a &amp;quot;surfaceless polygon&amp;quot;.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;The exporter itself needs a plane because for every exported triangle Trainz want to know its normal (to calculate the color of that face for example), and a 3D normal needs a 2D plane. Try to calculate the normal for a surfaceless polygon will end in a division by zero.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Solution&#039;&#039;&#039;:  This can be cured by selecting the mesh and using the &amp;quot;Remove doubles&amp;quot; command.  You can identify the problem vertices by selecting the problem mesh and then going into the Properties Browser and the Object Data (the triangle) tab.  There is a section called Vertex Groups and the newly created vertex group with the problem should be listed.  There are options to highlight the vertices in the group.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Comment&#039;&#039;&#039;:  Another cause of surfaceless polygons is when there are two edges that seem to join, but where the edge on one side does not have the same number of vertices as the edge on the other. As an example, if one starts with the default Blender cube, and extrudes the top face of the cube to create a first story. and extrudes the top face again to create a second story, the result is a stack of 3 &amp;quot;cubes&amp;quot;. Now, if one decides to add a door, or a window, in one face of the center cube of the stack by deleting the center face one side, and extrudes both vertical edges towards the center, and then makes a face from the two resulting extruded edges, one has created two surfaceless polygons, one from the four vertices that lie in a line at the top of the door, and one from the four vertices which lie at the bottom.  &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Solution&#039;&#039;&#039;:  A modificaton of the work flow. If one decides to add a opening, instead of deleting the face, and creating the opening by extruding edges or vertices, either make loop cuts around the object as needed, and delete the necessary face, or subdivide the face&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;See Also&#039;&#039;&#039;: This Trainz forum [http://forums.auran.com/trainz/showthread.php?111191-Trying-to-Get-Back-into-the-Blender-Game&amp;amp;p=1281909#post1281909  thread]&lt;br /&gt;
&lt;br /&gt;
== Making updating updating from one version of Blender to the next easier ==&lt;br /&gt;
&lt;br /&gt;
Blender updates every couple of months, on the average. One way to make the updating process easier is to store any Blender add-ons you use that are not included in the ordinary Blender distribution in a convenient place on your computer. Among the things to store in this folder are the latest version of the Trainz mesh exporter, and the Trainz mesh importer. This makes it easy to make the new version have all of the material of the old one, as it is simply necessary to copy the contents of the update folder into the appropriate locations of the Blender installation.&lt;br /&gt;
&lt;br /&gt;
== Next major topic ==&lt;br /&gt;
&lt;br /&gt;
=== Next FAQ ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling]]&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
[[Category:TBD]]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Build_a_simple_animated_scenery_asset_in_Blender&amp;diff=8884</id>
		<title>HowTo/Build a simple animated scenery asset in Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Build_a_simple_animated_scenery_asset_in_Blender&amp;diff=8884"/>
		<updated>2016-05-23T05:16:19Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Caveat==&lt;br /&gt;
[http://www.blender.org Blender] is not currently supported by N3V as a modeling source for Trainz, however third-party tools exist for this purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
This tutorial demonstrates how to animate a simple ball scenery asset to make it bounce one metre and rotate through 360 degrees.  The asset has no practical purpose in Trainz other than to demonstrate how animation can be used on scenery objects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
&lt;br /&gt;
To export an animated scenery asset to Trainz, you need the following:&lt;br /&gt;
&lt;br /&gt;
:*  Trainz (TS09 or later preferred)&lt;br /&gt;
:*  [[Downloads|TrainzMeshImporter.exe]].   This is provided by N3V.&lt;br /&gt;
:*  Blender V2.57 or later.&lt;br /&gt;
:*  [https://bitbucket.org/uschi0815/blender-exporter-for-trainz/downloads/ The Blender Exporter]. &lt;br /&gt;
:*  Windows Vista or Windows 7 (32 or 64 bit).&lt;br /&gt;
:*  Some experience in the use of Blender to create assets for Trainz.&lt;br /&gt;
&lt;br /&gt;
= Animating meshes in Blender =&lt;br /&gt;
&lt;br /&gt;
Blender will allow the direct animation of meshes but that will not work for Trainz purposes.  Meshes to be animated must be linked to lattices or armatures and bones.  You must rotate or position the lattices or pose the armatures and bones to enable animation.  Animation in Blender, and particularly for armatures and bones, can be complex.  However, lattice animation is much simpler and a good place to start.&lt;br /&gt;
&lt;br /&gt;
This tutorial animates a beachball mesh by rotating and locating a lattice that is a parent of the beachball.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Process =&lt;br /&gt;
&lt;br /&gt;
== Create the mesh ==&lt;br /&gt;
&lt;br /&gt;
*In Blender create a new sphere object and name it Beachball.&lt;br /&gt;
*Create a simple material called &amp;quot;beachball.m.onetex&amp;quot;.&lt;br /&gt;
*Allocate a simple texture and UV map the sphere to the texture.  This example uses a red 16*16 pixel TGA file.&lt;br /&gt;
*Position the beachball so it just touches the ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Animation Tute-The Beachball.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Create the lattices ==&lt;br /&gt;
&lt;br /&gt;
This asset requires two lattices.  The main lattice, appropriately called b.r.main, is the parent lattice and is not animated.  The second lattice, b.r.beachball will be the parent of the beachball mesh and will be animated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Create the b.r.main lattice ===&lt;br /&gt;
&lt;br /&gt;
The most important lattice is one called b.r.main.  This should be positioned at grid centre (X=0, Y=0, Z=0).&lt;br /&gt;
&lt;br /&gt;
*Position the cursor at the centre using &#039;&#039;&#039;&#039;&#039;Shift S -&amp;gt;Cursor to center&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*Add a lattice and name it b.r.main.  The name is important and it should be in lowercase.  You can resize to whatever size suits you.&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Animation Tute-b.r.main lattice.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Create the b.r.beachball lattice ===&lt;br /&gt;
&lt;br /&gt;
*Select the beachball object and position the cursor at the centre of the beachball using &#039;&#039;&#039;&#039;&#039;Shift S &amp;gt;Cursor to selected&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Note:  In this case the origin of the beachball will be at the centre of the beachball, but if it is not then you can position the origin by selecting the beachball, select Object from the menu bar, then &#039;&#039;&#039;Transform -&amp;gt;Origin to geometry&#039;&#039;&#039;.  Sometimes it is useful to have the origin elsewhere but for this example we need it at the centre of the beachball.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Add a lattice and call it b.r.beachball.  The name can be anything but must be preceded by &amp;quot;b.r.&amp;quot; and should be in lowercase.  The centre of the lattice should be at the centre of the beachball.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Animation Tute-b.r.beachball lattice.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Set up the parent-child relationships ==&lt;br /&gt;
&lt;br /&gt;
=== Make the beachball a child of b.r.beachball ===&lt;br /&gt;
&lt;br /&gt;
*Select the beachball and, while holding down the ShiftKey, select b.r.beachball.&lt;br /&gt;
*Press Ctrl P and then select the Object option.  This makes the beachball mesh a child of b.r.beachball.  This is important because when we animate b.r.beachball, the beachball mesh will animate as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Animation Tute-Parenting the beachball.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Make the b.r.beachball lattice a child of b.r.main ===&lt;br /&gt;
&lt;br /&gt;
All lattices and their children must be a child of b.r.main for the exporter to work.&lt;br /&gt;
&lt;br /&gt;
*Now select b.r.beachball and while holding down the ShiftKey select b.r.main.&lt;br /&gt;
*Press Ctrl P and then select the Object option.  This makes the b.r.beachball lattice a child of b.r.main.&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Animation Tute-Parenting the beachball lattice.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Outliner Window in Blender will show the parent-child relations as well as other attibutes.  It should look like the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Animation Tute-Outliner window.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Set up the animation period ==&lt;br /&gt;
&lt;br /&gt;
Now we are ready to animate the beachball.  Our animation consists of the ball bouncing up and down and spinning at the same time.&lt;br /&gt;
&lt;br /&gt;
*Arrange the screen layout as you wish but make sure you include a Timeline window.  This is my layout for this session that has the Timeline Window at the bottom.&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Animation Tute-Screen layout.jpg]]&lt;br /&gt;
&lt;br /&gt;
*In the Timeline window, change the End frame to 30 and set the current frame to 1.  For Trainz the animation rate is 30 frames per second.&lt;br /&gt;
*Go to the Render window and set the playback rate to 30 fps. &lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Animation Tute-Frame rate.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Animate the lattices ==&lt;br /&gt;
&lt;br /&gt;
Animation uses what are called I frames to make a &amp;quot;snapshot&amp;quot; of the rotation and position of lattices.  This sequence creates those I frames in order from the first to last frame.  The last frame, 30 in our case, is also deemed to be frame 0 (zero).  This makes the animation loop.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This is the tricky bit.  Read through the sequence first so you have an idea of what is to be done.  The sequence is important.  If you make a mistake then delete I frames so that the last I frame is at frame 1.  Creating I frames is done by using the letter i key on the keyboard.  This brings up a menu.&#039;&#039;&#039;  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
*Go back to the 3D View.&lt;br /&gt;
*Select the lattice b.r.beachball.&lt;br /&gt;
*Move the cursor to that lattice by pressing &#039;&#039;&#039;&#039;&#039;Shift S -&amp;gt;Cursor to selected&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*Bring up the Properties menu by pressing or toggling N (the cursor has to be in the 3D View for this to work).&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
In the Transform area of the Properties menu, the Z location of the selected object (b.r.beachball) should be 1.0.  If it slightly out then just change it manually.&lt;br /&gt;
Similarly in the 3D Cursor location in the Properties menu the Z location should also be 1.0.&lt;br /&gt;
&lt;br /&gt;
We are now going to insert the animation keyframes and for this to work the mouse cursor must be in the 3D View window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*With b.r.beachball selected, press I to bring up the Insert Keyframe Menu.&lt;br /&gt;
&lt;br /&gt;
*Select LocRot (location, rotation).  You may notice the transform location windows changing to a yellow colour and the name of the selected object changing to an orange colour.  This means that an I frame exists for that object at this particular frame.  Frame 1 in this case.&lt;br /&gt;
&lt;br /&gt;
*In the Timeline window, change the frame position from frame 1 to frame 15 by typing the number in the Current Frame position.&lt;br /&gt;
&lt;br /&gt;
*With b.r.beachball still selected, in the &#039;&#039;&#039;&#039;&#039;Properties -&amp;gt; Transform -&amp;gt; Location menu&#039;&#039;&#039;&#039;&#039;, change the Z location from 1.0 to 2.0. You can just click on the 1.0 value and type the change.&lt;br /&gt;
&lt;br /&gt;
*Press the Enter key and you will see the lattice and the beachball mesh move upwards.  Note you can also move the lattice by pressing G and then Z and dragging it upwards in the Z axis.&lt;br /&gt;
&lt;br /&gt;
*With b.r.beachball still selected, in the &#039;&#039;&#039;&#039;&#039;Properties -&amp;gt; Transform -&amp;gt; Rotation menu&#039;&#039;&#039;&#039;&#039;, change the Z rotation value from 0 to 180.  You will not see any visible change but that&#039;s OK.&lt;br /&gt;
&lt;br /&gt;
*Back in the 3D Window press I and select LocRot.  This inserts our second I frame at frame 15.&lt;br /&gt;
&lt;br /&gt;
*In the Timeline Window, change the frame position from frame 15 to frame 30 by typing the number in the Current Frame position or by clicking on the Jump to Last Frame button ( &amp;gt;&amp;gt;| ).&lt;br /&gt;
&lt;br /&gt;
*In the Transform Window change the b.r.beachball Z location back to 1.0 and the Z rotation to 360.&lt;br /&gt;
&lt;br /&gt;
*Back in the 3D Window press I and select LocRot.  This inserts our last I frame at frame 30.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following shows the frames for the beachball lattice.  The frames at 1, 15 and 30 are in yellow.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Anim Tute-Beachball lattice animation frames.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running the animation ==&lt;br /&gt;
 &lt;br /&gt;
To test the animation click on the right pointing arrow (Play) key in the Timeline Window.  You might want to change to solid or texture view to see it better.  The ball should bounce every second and do a full rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporting ==&lt;br /&gt;
&lt;br /&gt;
*Save the Blender file.&lt;br /&gt;
*To export, select &#039;&#039;&#039;&#039;&#039;File -&amp;gt;Export -&amp;gt; Trainz Mesh and Animation&#039;&#039;&#039;&#039;&#039;.  In the dialog box make sure the Export Animation Data checkbox is checked.  &lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Anim Tute-Exporting.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CONFIG.TXT ==&lt;br /&gt;
&lt;br /&gt;
The config.txt for the asset should look something like this:&lt;br /&gt;
&lt;br /&gt;
 kuid                                    &amp;lt;kuid:xxx:xxx&amp;gt;&lt;br /&gt;
 username                                &amp;quot;AAA Bouncing Beachball&amp;quot;&lt;br /&gt;
 description                             &amp;quot;Beachball animation scenery asset&amp;quot;&lt;br /&gt;
 trainz-build                            3.5&lt;br /&gt;
 kind                                    &amp;quot;scenery&amp;quot;&lt;br /&gt;
 category-era                            &amp;quot;1800s&amp;quot;&lt;br /&gt;
 category-class                          &amp;quot;XVG&amp;quot;&lt;br /&gt;
 category-region                         &amp;quot;00&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
   default&lt;br /&gt;
   {&lt;br /&gt;
     mesh                                &amp;quot;beachball.im&amp;quot;&lt;br /&gt;
     light                               1&lt;br /&gt;
     auto-create                         1&lt;br /&gt;
     anim                                &amp;quot;beachball.kin&amp;quot;&lt;br /&gt;
     animation-loop-speed                1.00&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 thumbnails&lt;br /&gt;
 {&lt;br /&gt;
   0&lt;br /&gt;
   {&lt;br /&gt;
     image                               &amp;quot;$screenshot$.jpg&amp;quot;&lt;br /&gt;
     width                               240&lt;br /&gt;
     height                              180&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Note the use of the tags &amp;quot;anim&amp;quot; and &amp;quot;animation-loop-speed&amp;quot;.  A value of 1 for animation-loop-speed gives normal animation.  You can slow or speed up the animation with different values.&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
This has been a very simple introduction to animation for Trainz with Blender.  The key points to remember are:&lt;br /&gt;
&lt;br /&gt;
:*Meshes cannot be animated for Trainz.  Create a lattice for each mesh, make the mesh a child of the lattice and animate the lattice.&lt;br /&gt;
:*Lattices must be identified with the &amp;quot;b.r.&amp;quot; naming convention. &lt;br /&gt;
:*All lattices must be a child of b.r.main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The beachball in Trainz Surveyor =&lt;br /&gt;
&lt;br /&gt;
Here is the beachball in Trainz Surveyor bouncing next to another test asset of a simple lighthouse with a flashing cursor.&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Anim Tute-In Trainz.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to guides]]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8776</id>
		<title>HowTo/Export from Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8776"/>
		<updated>2016-04-10T07:02:46Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FUN-beg}}&lt;br /&gt;
== Introduction of Blender ==&lt;br /&gt;
&lt;br /&gt;
{{plain link|http://www.blender.org |Blender}} is an open source free {{Wp|3D graphics|3D modelling}} application or tool supported by the contribution of programming and development time by the user community.  For more information on Blender and its capabilities, please visit the {{plain link|http://www.blender.org |Blender website}}.  Blender evolves rapidly and it is not uncommon to see releases about every two months or so. As of 06 April, 2016, the current version is 2.77a. For those working with a tutorial written based upon an older version of Blender, all past versions of Blender can be downloaded on the [http://download.blender.org/release// Blender past releases] page. &lt;br /&gt;
&lt;br /&gt;
Blender is extendable through the use of &amp;quot;add-ons&amp;quot; produced either by the Blender Foundation or by Blender users.  One of those add-ons is the Trainz Blender exporter that was built and is maintained by USCHI0815 (Torsten).  Torsten usually announces updates to the Exporter through the Trainz Content Creation Support forum.  As of 24 April, 2014, the current version of the Blender exporter is V0.96.&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
===Caveat===&lt;br /&gt;
[http://www.blender.org Blender] is not currently supported by N3V as an officially sanctioned modeling platform for producing Trainz assets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== About This Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The scope of this tutorial has been extended to include installation of Blender and installation of the Blender Exporter since this has been an issue discussed several times in the N3V Content Creation forum.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
To export to Trainz you need the following:&lt;br /&gt;
&lt;br /&gt;
:*  Trainz (TS09 or later preferred)&lt;br /&gt;
:*  [[Downloads|TrainzMeshImporter.exe]].   This is provided by N3V.&lt;br /&gt;
:*  [http://www.blender.org/download/ Blender] (v. 2.57 or later is recommended).&lt;br /&gt;
:*  [https://bitbucket.org/uschi0815/blender-exporter-for-trainz/downloads/ The Blender Exporter]. &lt;br /&gt;
:*  Windows XP, Vista, Windows 7 (32 or 64 bit) or Windows 8 (32 or 64 bit) or Mac OS X (32 or 64 bits).&lt;br /&gt;
&lt;br /&gt;
=== Blender Installation Notes ===&lt;br /&gt;
&lt;br /&gt;
Blender is available for a number of operating systems including Windows XP, Windows Vista and Windows 7.  Both 32 bit and 64 bit versions are available.&lt;br /&gt;
You can choose either the installer version or a zip archive.  Please read any notes on the Blender.org download page: particularly if you are upgrading from a previous version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installer Version ===&lt;br /&gt;
&lt;br /&gt;
The Installer Version is the easiest way to install Blender but there can be complications.  If you install Blender into the default directory you should choose &amp;quot;Use Application Data Directory&amp;quot; during installation of Blender. Otherwise it might not be possible to save your preferred Exporter options due to insufficient permissions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blender Zip Archive Version ===&lt;br /&gt;
&lt;br /&gt;
The zip archive version allows you to unzip the entire Blender folder structure and locate it in any location that suits you.  The only drawback is that you will need to set up your own links to the Blender executable (Blender.exe).&lt;br /&gt;
&lt;br /&gt;
== Installing the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Blender exporter add-on must be installed in the &amp;quot;scripts\addons&amp;quot; area of the Blender data space. The following process will install it in the correct location.&lt;br /&gt;
&lt;br /&gt;
=== Install Blender Exporter for Trainz ===&lt;br /&gt;
&lt;br /&gt;
:* Download the exporter.&lt;br /&gt;
:* Start Blender.&lt;br /&gt;
:* Open a new project(File -&amp;gt; New).&lt;br /&gt;
:* Open User Preferences(File -&amp;gt; User Preferences...).&lt;br /&gt;
:* Select Add-Ons panel and press button &amp;quot;Install from file...&amp;quot; down at the panel button bar.&lt;br /&gt;
:* Select and install downloaded file: you don&#039;t need to extract it.&lt;br /&gt;
:* Enable &amp;quot;TRAINZ Exporter&amp;quot; in Add-On list and press button &amp;quot;Save As Default&amp;quot; to keep it enabled for all subsequent Blender starts.&lt;br /&gt;
&lt;br /&gt;
=== Install the N3V TrainzMeshImporter ===&lt;br /&gt;
&lt;br /&gt;
:* Download the [http://online.ts2009.com/mediaWiki/index.php5/Downloads TrainzMeshImporter.exe].  The file is in the RAR format that can be extracted by most zip file management programs.&lt;br /&gt;
:* Before using the exporter you must copy the TrainzMeshExporter.exe to the same location as the Blender Exporter add-on.  The following will help find that location:&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and leave the default cube mesh in place.&lt;br /&gt;
:* If necessary, open the console window so you can read the error messages. In versions 2.5 through 2.63a, the console window is opened using the &amp;quot;toggle system console&amp;quot; menu entry in the &amp;quot;help&amp;quot; menu in the Blender menu bar. Beginning with version 2.64, the &amp;quot;toggle system console&amp;quot; menu has been moved to the &amp;quot;window&amp;quot; menu in the Blender menu bar. Those running a Blender version 2.49 or earlier can disregard this step, as the system console is in a window that is open whenever Blender is active. &lt;br /&gt;
:* Go to File-&amp;gt;Export and select &amp;quot;Trainz Mesh and Animation&amp;quot;.  Use the default settings but make sure that the save location is a temporary or working space.&lt;br /&gt;
:* The Exporter will complain about a missing file in a specific folder.   The missing file is TrainzMeshImporter and the folder name is the location you need.&lt;br /&gt;
:* The location is usually in the form of &amp;quot;ERROR&amp;quot;  file &amp;quot;C:Users\your name\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons\TrainzMeshExporter.exe&amp;quot; not found&amp;quot;.  This example is typical of using the default Blender Installer.  If you chose to install Blender using the zip archive then the location will be different.&lt;br /&gt;
:* Copy TrainzMeshExporter.exe to the location provided.  If you cannot access the AppData folder see the [http://online.ts2009.com/mediaWiki/index.php5?title=HowTo/Export_from_Blender&amp;amp;action=submit#Additional_Notes Additional Notes] section for help.&lt;br /&gt;
:* Once you have copied TrainzMeshExporter.exe to the correct location retry the export.&lt;br /&gt;
&lt;br /&gt;
== Exporting an Asset ==&lt;br /&gt;
&lt;br /&gt;
The creation of an asset suitable for Trainz is a long and complex process.  For the purposes of this tutorial we will only export the standard Blender cube.  Some knowledge of Blender and creation of assets for Trainz purposes is assumed.&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and save the default cube as &amp;quot;cube.blend&amp;quot; in your preferred working location.&lt;br /&gt;
:* Create a simple material such as &amp;quot;cube.m.onetex&amp;quot; and allocate a simple colour texture file. For the purpose of this tutorial leave the default mapping technique to &amp;quot;generated&amp;quot;.  This will cause an error.&lt;br /&gt;
:* UV map the cube to the texture.&lt;br /&gt;
:* Save the Blender file.&lt;br /&gt;
:* Go to File-&amp;gt;Export and select Trainz Mesh and Animation.&lt;br /&gt;
:* The dialog box that appears gives a output save location for the XML, log, texture description and other files produced by the process.  Select your preferred location.&lt;br /&gt;
:* All the other options can be left as default.  If you were exporting a mesh that included animation, then you would also select &amp;quot;Export Animation Data&amp;quot;.&lt;br /&gt;
:* When you are ready, select &amp;quot;Export Trainz&amp;quot; in the top right hand corner.&lt;br /&gt;
:* This export process will fail with an error since the &amp;quot;generated&amp;quot; mapping option for textures is not supported when using an image file.  Go back to the Texture section and change the mapping option to UV and then export again.  This time it should export correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporter Output ==&lt;br /&gt;
&lt;br /&gt;
=== Files Created ===&lt;br /&gt;
The Exporter produces:&lt;br /&gt;
&lt;br /&gt;
:* An XML file.  This is used by TrainzMeshImporter.&lt;br /&gt;
:* The IM mesh file required by Trainz.&lt;br /&gt;
:* The texture description files (nnn.texture.txt) required by Trainz.&lt;br /&gt;
:* The KIN animation file required by Trainz if animation is used.&lt;br /&gt;
:* A log of the export process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error Reporting ===&lt;br /&gt;
Errors are reported in the Blender System Console and the Exporter log. Errors will prevent the production of the target IM file and therefore must be addressed.&lt;br /&gt;
Typical errors are:&lt;br /&gt;
&lt;br /&gt;
==== Mesh Errors ====&lt;br /&gt;
&lt;br /&gt;
:*Objects without a parent where a root bone exists.&lt;br /&gt;
&lt;br /&gt;
==== Material Related Errors ====&lt;br /&gt;
&lt;br /&gt;
:* No UV layer for UV mapped objects. Blender usually creates a default.&lt;br /&gt;
:* Use of the same material for both single and double sided meshes.  Recommend only using single sided meshes.&lt;br /&gt;
:* Objects without an assigned material.  Recommend assigning a material for each object.&lt;br /&gt;
:* Faces without a material in an object.  The faces will have been collected into a Vertex Group to enable correction. This error can also be caused by material slots in blender to which no material is assigned.   &lt;br /&gt;
:* Use of similar material names if character case is ignored.  i.e. &amp;quot;Black&amp;quot; and &amp;quot;black&amp;quot; are considered the same by Trainz.&lt;br /&gt;
:* Not using UV mapping for textures that are either using alpha, normal or specular.&lt;br /&gt;
:* Not using UV or reflect mapping for diffuse textures.&lt;br /&gt;
&lt;br /&gt;
==== Animation Errors ====&lt;br /&gt;
&lt;br /&gt;
:* More than one root bone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
Warnings are basically flaws or possible flaws that the user may wish to address.  Warnings do not prevent production of the IM output files. Some typicals warnings include:&lt;br /&gt;
&lt;br /&gt;
==== Animation Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Possible incorrect location and rotation of root bone.&lt;br /&gt;
:* Bones not found or no animation data found.&lt;br /&gt;
:* Events not found or unrecognised.&lt;br /&gt;
:* Event frame numbers in wrong positions.&lt;br /&gt;
&lt;br /&gt;
==== Mesh Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Vertices influenced by more than four vertex groups.&lt;br /&gt;
&lt;br /&gt;
==== Name Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Unrecommended characters.  Material, texture, object and path names should only be composed of a-z, A-Z, 0-9 or -_./\ characters.  A typical error is use of a space character in a path name.  The Exporter will change Blender file names that include upper case letters to lower case letters.  Generally, it is recommended you avoid the use of upper case characters in names.&lt;br /&gt;
&lt;br /&gt;
==== Material Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Surfaceless faces in an object.  The Exporter will gather these faces and put them into a Vertex Group to aid identification. The Vertex Group can be found in the triangle panel associated with the Safety Valve object.&lt;br /&gt;
:* Objects exported with double sided faces.   This will become an error if a material is used for both single and double sided objects.&lt;br /&gt;
:* Material renamed.  If the name does not match one of the standard Trainz material names then the Exporter will try and effect a solution.  Typically a name such as &amp;quot;black&amp;quot; will be renamed &amp;quot;blackm.onetex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Export Log ===&lt;br /&gt;
&lt;br /&gt;
The Exporter Log contains a record of events during the export process including errors and warnings.  The numTriangles report is the number of polygons (aka polys) in the mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Material Recognition by the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Exporter tries to identify materials in use by the asset mesh and will provide a warning if the detected material decoration varies from that declared in the Blender file.  The term &amp;quot;material decoration&amp;quot; is one of the standard Trainz material names such as &amp;quot;m.onetext&amp;quot; or &amp;quot;m.tbumptex&amp;quot;. The following decision process, provided by Torsten, may be useful for developers.&lt;br /&gt;
&lt;br /&gt;
The decision which material decoration is used is made by the texturing schema used for the material:&lt;br /&gt;
&lt;br /&gt;
: no texture used -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: one texture used:&lt;br /&gt;
:: invalid texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: reflection texture  -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: two textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse &amp;amp; reflection -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: three textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha &amp;amp; reflection -&amp;gt;&#039;&#039;&#039; m.gloss&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: normal texture used:&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; alpha &amp;amp; no reflection -&amp;gt; &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; reflection &amp;amp; no alpha -&amp;gt; &#039;&#039;&#039;m.tbumpgloss&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; no alpha &amp;amp; no reflection-&amp;gt; &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As material &#039;&#039;&#039;m.notex&#039;&#039;&#039; causes problems with specific assets&#039;&#039;&#039;, m.onetex&#039;&#039;&#039; is used instead. It also works perfectly without any texture.&lt;br /&gt;
The problem with &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039; and &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is that, besides the usage of an alpha texture (which is not used for &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039;), both use a diffuse and normal texture. In this case &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is chosen.&lt;br /&gt;
&lt;br /&gt;
Generally, you can use any material decoration you want. The script does not change a syntactically correct material decoration(e.g. Material&#039;&#039;&#039;m.billboard&#039;&#039;&#039; would pass unchanged).  It only drops a message to remind you that you either use an unsupported material(as warning) or that it had chosen another material(as info).&lt;br /&gt;
&lt;br /&gt;
If you check the issue and find it to be OK than you can safely ignore those messages.&lt;br /&gt;
&lt;br /&gt;
Blenders texture influences are nearly equivalent to MAX material maps. Because diffuse textures and reflection textures both influence diffuse color, the decision between them is made by checking texture mapping coordinates to:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;MAX map -&amp;gt; Blender texture influence&#039;&#039;&#039;&lt;br /&gt;
: Ambient Color -&amp;gt; Shading Ambient&lt;br /&gt;
: Diffuse Color -&amp;gt; Diffuse Color &amp;amp; UV mapping&lt;br /&gt;
: Specular Color -&amp;gt; Specular Color&lt;br /&gt;
: Specular Level -&amp;gt; Specular Intensity&lt;br /&gt;
: Glossiness -&amp;gt; Specular Hardness&lt;br /&gt;
: Self-Illumination -&amp;gt; Shading Emit&lt;br /&gt;
: Opacity -&amp;gt; Diffuse Alpha&lt;br /&gt;
: Filter Color -&amp;gt; Diffuse Translucency&lt;br /&gt;
: Bump -&amp;gt; Geometry Normal&lt;br /&gt;
: Reflection -&amp;gt; Diffuse Color &amp;amp; Reflection mapping &lt;br /&gt;
: Refraction -&amp;gt; not available(not found?)&lt;br /&gt;
: Displacement -&amp;gt; Geometry Displacement&lt;br /&gt;
&lt;br /&gt;
== Torsten&#039;s Hints  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These hints are reproduced from the Exporter script since many will not want to edit or view the actual script contents.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Trainz models you can have two kinds of special objects: attachment points and bones. For attachment points, the exporter expects objects of type &amp;quot;Empty&amp;quot;. For bones, objects of type &amp;quot;Lattice&amp;quot; and &amp;quot;Armature&amp;quot; will be accepted.  All of them need to be named according the naming conventions in effect for attachements( a.* ) and bones( b.r.* ). Objects of other type and objects with proper type but names not matching this conventions will be ignored as attachment points or bones.&lt;br /&gt;
&lt;br /&gt;
If you want to export animations with events, than you have to create a Blender TX object and enter the lines as you would do to create an event file. By renaming this object to &amp;quot;events&amp;quot; you ensure the exporter will not ignore your event list.&lt;br /&gt;
&lt;br /&gt;
It is possible to make parent-child-relations between meshes to simplify the design process. However, the chain must be end with a valid parent bone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Blender Data Files ===&lt;br /&gt;
 &lt;br /&gt;
Blender keeps certain data files, such as add-on utilities, in a special location. This has given Trainz content creators some difficulties due to access rights. If you used the Blender Installer then this is usually in the Windows logged on user space.&lt;br /&gt;
&lt;br /&gt;
Say, for example, your user name is Patrick, then the location is likely to be similiar to &amp;quot;C:\Users\Patrick\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you cannot see this folder in the user folder then it is likely the folder has been hidden by Windows.  You can unhide folders in the Windows Explorer by going to Tools-&amp;gt;Folder Options-&amp;gt;View and selecting &amp;quot;Show hidden files, folders and drives&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under The Hood or, How the Exporter Works ==&lt;br /&gt;
&lt;br /&gt;
Basically the Blender export process works in three phases:&lt;br /&gt;
&lt;br /&gt;
:* Phase 1 is the checking process where the Exporter does some validation.  Where it can, the Exporter will make minor corrections and just issue a warning.  Warnings do not stop the process but an error will.  The warnings and errors should provide enough information to enable correction.&lt;br /&gt;
:* Phase 2 is the creation of the XML file required by the TrainzMeshImporter.  The XML file is a text file using a common language used by many applications.  It is also N3V&#039;s preferred import format.&lt;br /&gt;
:* On succession completion of the first two phases, the Exporter passes control to the TrainzMeshImport program which takes the XML file plus other information and produces the IM mesh file used by Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
Many thanks to USCHI0815 (Torsten) for his time and effort that went into producing and supporting the Blender Exporter.  Without it there would be no Blender models in Trainz.&lt;br /&gt;
&lt;br /&gt;
Thanks to Mick_Berg and Jananton for their comments, and to Mick_Berg for his [http://www.mickberg.com/blenderexport1.html Blender installation tutorial].&lt;br /&gt;
&lt;br /&gt;
== Tutorial Updates ==&lt;br /&gt;
Please feel free to update as necessary and correct errors in this tutorial.  It is a WiKi contribution and intended to be maintained this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Material Types]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
{{FUN-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8772</id>
		<title>HowTo/Export from Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8772"/>
		<updated>2016-03-21T05:20:02Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FUN-beg}}&lt;br /&gt;
== Introduction of Blender ==&lt;br /&gt;
&lt;br /&gt;
{{plain link|http://www.blender.org |Blender}} is an open source free {{Wp|3D graphics|3D modelling}} application or tool supported by the contribution of programming and development time by the user community.  For more information on Blender and its capabilities, please visit the {{plain link|http://www.blender.org |Blender website}}.  Blender evolves rapidly and it is not uncommon to see releases about every two months or so. As of 20 March, 2016, the current version is 2.77. For those working with a tutorial written based upon an older version of Blender, all past versions of Blender can be downloaded on the [http://download.blender.org/release// Blender past releases] page. &lt;br /&gt;
&lt;br /&gt;
Blender is extendable through the use of &amp;quot;add-ons&amp;quot; produced either by the Blender Foundation or by Blender users.  One of those add-ons is the Trainz Blender exporter that was built and is maintained by USCHI0815 (Torsten).  Torsten usually announces updates to the Exporter through the Trainz Content Creation Support forum.  As of 24 April, 2014, the current version of the Blender exporter is V0.96.&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
===Caveat===&lt;br /&gt;
[http://www.blender.org Blender] is not currently supported by N3V as an officially sanctioned modeling platform for producing Trainz assets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== About This Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The scope of this tutorial has been extended to include installation of Blender and installation of the Blender Exporter since this has been an issue discussed several times in the N3V Content Creation forum.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
To export to Trainz you need the following:&lt;br /&gt;
&lt;br /&gt;
:*  Trainz (TS09 or later preferred)&lt;br /&gt;
:*  [[Downloads|TrainzMeshImporter.exe]].   This is provided by N3V.&lt;br /&gt;
:*  [http://www.blender.org/download/ Blender] (v. 2.57 or later is recommended).&lt;br /&gt;
:*  [https://bitbucket.org/uschi0815/blender-exporter-for-trainz/downloads/ The Blender Exporter]. &lt;br /&gt;
:*  Windows XP, Vista, Windows 7 (32 or 64 bit) or Windows 8 (32 or 64 bit) or Mac OS X (32 or 64 bits).&lt;br /&gt;
&lt;br /&gt;
=== Blender Installation Notes ===&lt;br /&gt;
&lt;br /&gt;
Blender is available for a number of operating systems including Windows XP, Windows Vista and Windows 7.  Both 32 bit and 64 bit versions are available.&lt;br /&gt;
You can choose either the installer version or a zip archive.  Please read any notes on the Blender.org download page: particularly if you are upgrading from a previous version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installer Version ===&lt;br /&gt;
&lt;br /&gt;
The Installer Version is the easiest way to install Blender but there can be complications.  If you install Blender into the default directory you should choose &amp;quot;Use Application Data Directory&amp;quot; during installation of Blender. Otherwise it might not be possible to save your preferred Exporter options due to insufficient permissions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blender Zip Archive Version ===&lt;br /&gt;
&lt;br /&gt;
The zip archive version allows you to unzip the entire Blender folder structure and locate it in any location that suits you.  The only drawback is that you will need to set up your own links to the Blender executable (Blender.exe).&lt;br /&gt;
&lt;br /&gt;
== Installing the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Blender exporter add-on must be installed in the &amp;quot;scripts\addons&amp;quot; area of the Blender data space. The following process will install it in the correct location.&lt;br /&gt;
&lt;br /&gt;
=== Install Blender Exporter for Trainz ===&lt;br /&gt;
&lt;br /&gt;
:* Download the exporter.&lt;br /&gt;
:* Start Blender.&lt;br /&gt;
:* Open a new project(File -&amp;gt; New).&lt;br /&gt;
:* Open User Preferences(File -&amp;gt; User Preferences...).&lt;br /&gt;
:* Select Add-Ons panel and press button &amp;quot;Install from file...&amp;quot; down at the panel button bar.&lt;br /&gt;
:* Select and install downloaded file: you don&#039;t need to extract it.&lt;br /&gt;
:* Enable &amp;quot;TRAINZ Exporter&amp;quot; in Add-On list and press button &amp;quot;Save As Default&amp;quot; to keep it enabled for all subsequent Blender starts.&lt;br /&gt;
&lt;br /&gt;
=== Install the N3V TrainzMeshImporter ===&lt;br /&gt;
&lt;br /&gt;
:* Download the [http://online.ts2009.com/mediaWiki/index.php5/Downloads TrainzMeshImporter.exe].  The file is in the RAR format that can be extracted by most zip file management programs.&lt;br /&gt;
:* Before using the exporter you must copy the TrainzMeshExporter.exe to the same location as the Blender Exporter add-on.  The following will help find that location:&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and leave the default cube mesh in place.&lt;br /&gt;
:* If necessary, open the console window so you can read the error messages. In versions 2.5 through 2.63a, the console window is opened using the &amp;quot;toggle system console&amp;quot; menu entry in the &amp;quot;help&amp;quot; menu in the Blender menu bar. Beginning with version 2.64, the &amp;quot;toggle system console&amp;quot; menu has been moved to the &amp;quot;window&amp;quot; menu in the Blender menu bar. Those running a Blender version 2.49 or earlier can disregard this step, as the system console is in a window that is open whenever Blender is active. &lt;br /&gt;
:* Go to File-&amp;gt;Export and select &amp;quot;Trainz Mesh and Animation&amp;quot;.  Use the default settings but make sure that the save location is a temporary or working space.&lt;br /&gt;
:* The Exporter will complain about a missing file in a specific folder.   The missing file is TrainzMeshImporter and the folder name is the location you need.&lt;br /&gt;
:* The location is usually in the form of &amp;quot;ERROR&amp;quot;  file &amp;quot;C:Users\your name\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons\TrainzMeshExporter.exe&amp;quot; not found&amp;quot;.  This example is typical of using the default Blender Installer.  If you chose to install Blender using the zip archive then the location will be different.&lt;br /&gt;
:* Copy TrainzMeshExporter.exe to the location provided.  If you cannot access the AppData folder see the [http://online.ts2009.com/mediaWiki/index.php5?title=HowTo/Export_from_Blender&amp;amp;action=submit#Additional_Notes Additional Notes] section for help.&lt;br /&gt;
:* Once you have copied TrainzMeshExporter.exe to the correct location retry the export.&lt;br /&gt;
&lt;br /&gt;
== Exporting an Asset ==&lt;br /&gt;
&lt;br /&gt;
The creation of an asset suitable for Trainz is a long and complex process.  For the purposes of this tutorial we will only export the standard Blender cube.  Some knowledge of Blender and creation of assets for Trainz purposes is assumed.&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and save the default cube as &amp;quot;cube.blend&amp;quot; in your preferred working location.&lt;br /&gt;
:* Create a simple material such as &amp;quot;cube.m.onetex&amp;quot; and allocate a simple colour texture file. For the purpose of this tutorial leave the default mapping technique to &amp;quot;generated&amp;quot;.  This will cause an error.&lt;br /&gt;
:* UV map the cube to the texture.&lt;br /&gt;
:* Save the Blender file.&lt;br /&gt;
:* Go to File-&amp;gt;Export and select Trainz Mesh and Animation.&lt;br /&gt;
:* The dialog box that appears gives a output save location for the XML, log, texture description and other files produced by the process.  Select your preferred location.&lt;br /&gt;
:* All the other options can be left as default.  If you were exporting a mesh that included animation, then you would also select &amp;quot;Export Animation Data&amp;quot;.&lt;br /&gt;
:* When you are ready, select &amp;quot;Export Trainz&amp;quot; in the top right hand corner.&lt;br /&gt;
:* This export process will fail with an error since the &amp;quot;generated&amp;quot; mapping option for textures is not supported when using an image file.  Go back to the Texture section and change the mapping option to UV and then export again.  This time it should export correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporter Output ==&lt;br /&gt;
&lt;br /&gt;
=== Files Created ===&lt;br /&gt;
The Exporter produces:&lt;br /&gt;
&lt;br /&gt;
:* An XML file.  This is used by TrainzMeshImporter.&lt;br /&gt;
:* The IM mesh file required by Trainz.&lt;br /&gt;
:* The texture description files (nnn.texture.txt) required by Trainz.&lt;br /&gt;
:* The KIN animation file required by Trainz if animation is used.&lt;br /&gt;
:* A log of the export process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error Reporting ===&lt;br /&gt;
Errors are reported in the Blender System Console and the Exporter log. Errors will prevent the production of the target IM file and therefore must be addressed.&lt;br /&gt;
Typical errors are:&lt;br /&gt;
&lt;br /&gt;
==== Mesh Errors ====&lt;br /&gt;
&lt;br /&gt;
:*Objects without a parent where a root bone exists.&lt;br /&gt;
&lt;br /&gt;
==== Material Related Errors ====&lt;br /&gt;
&lt;br /&gt;
:* No UV layer for UV mapped objects. Blender usually creates a default.&lt;br /&gt;
:* Use of the same material for both single and double sided meshes.  Recommend only using single sided meshes.&lt;br /&gt;
:* Objects without an assigned material.  Recommend assigning a material for each object.&lt;br /&gt;
:* Faces without a material in an object.  The faces will have been collected into a Vertex Group to enable correction. This error can also be caused by material slots in blender to which no material is assigned.   &lt;br /&gt;
:* Use of similar material names if character case is ignored.  i.e. &amp;quot;Black&amp;quot; and &amp;quot;black&amp;quot; are considered the same by Trainz.&lt;br /&gt;
:* Not using UV mapping for textures that are either using alpha, normal or specular.&lt;br /&gt;
:* Not using UV or reflect mapping for diffuse textures.&lt;br /&gt;
&lt;br /&gt;
==== Animation Errors ====&lt;br /&gt;
&lt;br /&gt;
:* More than one root bone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
Warnings are basically flaws or possible flaws that the user may wish to address.  Warnings do not prevent production of the IM output files. Some typicals warnings include:&lt;br /&gt;
&lt;br /&gt;
==== Animation Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Possible incorrect location and rotation of root bone.&lt;br /&gt;
:* Bones not found or no animation data found.&lt;br /&gt;
:* Events not found or unrecognised.&lt;br /&gt;
:* Event frame numbers in wrong positions.&lt;br /&gt;
&lt;br /&gt;
==== Mesh Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Vertices influenced by more than four vertex groups.&lt;br /&gt;
&lt;br /&gt;
==== Name Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Unrecommended characters.  Material, texture, object and path names should only be composed of a-z, A-Z, 0-9 or -_./\ characters.  A typical error is use of a space character in a path name.  The Exporter will change Blender file names that include upper case letters to lower case letters.  Generally, it is recommended you avoid the use of upper case characters in names.&lt;br /&gt;
&lt;br /&gt;
==== Material Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Surfaceless faces in an object.  The Exporter will gather these faces and put them into a Vertex Group to aid identification. The Vertex Group can be found in the triangle panel associated with the Safety Valve object.&lt;br /&gt;
:* Objects exported with double sided faces.   This will become an error if a material is used for both single and double sided objects.&lt;br /&gt;
:* Material renamed.  If the name does not match one of the standard Trainz material names then the Exporter will try and effect a solution.  Typically a name such as &amp;quot;black&amp;quot; will be renamed &amp;quot;blackm.onetex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Export Log ===&lt;br /&gt;
&lt;br /&gt;
The Exporter Log contains a record of events during the export process including errors and warnings.  The numTriangles report is the number of polygons (aka polys) in the mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Material Recognition by the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Exporter tries to identify materials in use by the asset mesh and will provide a warning if the detected material decoration varies from that declared in the Blender file.  The term &amp;quot;material decoration&amp;quot; is one of the standard Trainz material names such as &amp;quot;m.onetext&amp;quot; or &amp;quot;m.tbumptex&amp;quot;. The following decision process, provided by Torsten, may be useful for developers.&lt;br /&gt;
&lt;br /&gt;
The decision which material decoration is used is made by the texturing schema used for the material:&lt;br /&gt;
&lt;br /&gt;
: no texture used -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: one texture used:&lt;br /&gt;
:: invalid texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: reflection texture  -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: two textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse &amp;amp; reflection -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: three textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha &amp;amp; reflection -&amp;gt;&#039;&#039;&#039; m.gloss&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: normal texture used:&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; alpha &amp;amp; no reflection -&amp;gt; &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; reflection &amp;amp; no alpha -&amp;gt; &#039;&#039;&#039;m.tbumpgloss&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; no alpha &amp;amp; no reflection-&amp;gt; &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As material &#039;&#039;&#039;m.notex&#039;&#039;&#039; causes problems with specific assets&#039;&#039;&#039;, m.onetex&#039;&#039;&#039; is used instead. It also works perfectly without any texture.&lt;br /&gt;
The problem with &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039; and &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is that, besides the usage of an alpha texture (which is not used for &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039;), both use a diffuse and normal texture. In this case &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is chosen.&lt;br /&gt;
&lt;br /&gt;
Generally, you can use any material decoration you want. The script does not change a syntactically correct material decoration(e.g. Material&#039;&#039;&#039;m.billboard&#039;&#039;&#039; would pass unchanged).  It only drops a message to remind you that you either use an unsupported material(as warning) or that it had chosen another material(as info).&lt;br /&gt;
&lt;br /&gt;
If you check the issue and find it to be OK than you can safely ignore those messages.&lt;br /&gt;
&lt;br /&gt;
Blenders texture influences are nearly equivalent to MAX material maps. Because diffuse textures and reflection textures both influence diffuse color, the decision between them is made by checking texture mapping coordinates to:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;MAX map -&amp;gt; Blender texture influence&#039;&#039;&#039;&lt;br /&gt;
: Ambient Color -&amp;gt; Shading Ambient&lt;br /&gt;
: Diffuse Color -&amp;gt; Diffuse Color &amp;amp; UV mapping&lt;br /&gt;
: Specular Color -&amp;gt; Specular Color&lt;br /&gt;
: Specular Level -&amp;gt; Specular Intensity&lt;br /&gt;
: Glossiness -&amp;gt; Specular Hardness&lt;br /&gt;
: Self-Illumination -&amp;gt; Shading Emit&lt;br /&gt;
: Opacity -&amp;gt; Diffuse Alpha&lt;br /&gt;
: Filter Color -&amp;gt; Diffuse Translucency&lt;br /&gt;
: Bump -&amp;gt; Geometry Normal&lt;br /&gt;
: Reflection -&amp;gt; Diffuse Color &amp;amp; Reflection mapping &lt;br /&gt;
: Refraction -&amp;gt; not available(not found?)&lt;br /&gt;
: Displacement -&amp;gt; Geometry Displacement&lt;br /&gt;
&lt;br /&gt;
== Torsten&#039;s Hints  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These hints are reproduced from the Exporter script since many will not want to edit or view the actual script contents.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Trainz models you can have two kinds of special objects: attachment points and bones. For attachment points, the exporter expects objects of type &amp;quot;Empty&amp;quot;. For bones, objects of type &amp;quot;Lattice&amp;quot; and &amp;quot;Armature&amp;quot; will be accepted.  All of them need to be named according the naming conventions in effect for attachements( a.* ) and bones( b.r.* ). Objects of other type and objects with proper type but names not matching this conventions will be ignored as attachment points or bones.&lt;br /&gt;
&lt;br /&gt;
If you want to export animations with events, than you have to create a Blender TX object and enter the lines as you would do to create an event file. By renaming this object to &amp;quot;events&amp;quot; you ensure the exporter will not ignore your event list.&lt;br /&gt;
&lt;br /&gt;
It is possible to make parent-child-relations between meshes to simplify the design process. However, the chain must be end with a valid parent bone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Blender Data Files ===&lt;br /&gt;
 &lt;br /&gt;
Blender keeps certain data files, such as add-on utilities, in a special location. This has given Trainz content creators some difficulties due to access rights. If you used the Blender Installer then this is usually in the Windows logged on user space.&lt;br /&gt;
&lt;br /&gt;
Say, for example, your user name is Patrick, then the location is likely to be similiar to &amp;quot;C:\Users\Patrick\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you cannot see this folder in the user folder then it is likely the folder has been hidden by Windows.  You can unhide folders in the Windows Explorer by going to Tools-&amp;gt;Folder Options-&amp;gt;View and selecting &amp;quot;Show hidden files, folders and drives&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under The Hood or, How the Exporter Works ==&lt;br /&gt;
&lt;br /&gt;
Basically the Blender export process works in three phases:&lt;br /&gt;
&lt;br /&gt;
:* Phase 1 is the checking process where the Exporter does some validation.  Where it can, the Exporter will make minor corrections and just issue a warning.  Warnings do not stop the process but an error will.  The warnings and errors should provide enough information to enable correction.&lt;br /&gt;
:* Phase 2 is the creation of the XML file required by the TrainzMeshImporter.  The XML file is a text file using a common language used by many applications.  It is also N3V&#039;s preferred import format.&lt;br /&gt;
:* On succession completion of the first two phases, the Exporter passes control to the TrainzMeshImport program which takes the XML file plus other information and produces the IM mesh file used by Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
Many thanks to USCHI0815 (Torsten) for his time and effort that went into producing and supporting the Blender Exporter.  Without it there would be no Blender models in Trainz.&lt;br /&gt;
&lt;br /&gt;
Thanks to Mick_Berg and Jananton for their comments, and to Mick_Berg for his [http://www.mickberg.com/blenderexport1.html Blender installation tutorial].&lt;br /&gt;
&lt;br /&gt;
== Tutorial Updates ==&lt;br /&gt;
Please feel free to update as necessary and correct errors in this tutorial.  It is a WiKi contribution and intended to be maintained this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Material Types]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
{{FUN-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Corona_Effect&amp;diff=8744</id>
		<title>Corona Effect</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Corona_Effect&amp;diff=8744"/>
		<updated>2016-01-12T06:17:58Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Corona effect kind is a [[&amp;quot;mesh-table&amp;quot; Container]] effect container. The following tags are supported:&lt;br /&gt;
&lt;br /&gt;
 kind &amp;quot;corona&amp;quot;&lt;br /&gt;
 att &amp;quot;&amp;quot;&lt;br /&gt;
 object-size 0.15&lt;br /&gt;
 max-size-mul 2.0&lt;br /&gt;
 mul-distance 60.0&lt;br /&gt;
 min-distance 1.0&lt;br /&gt;
 max-distance 315.0&lt;br /&gt;
 max-intensity 1.0&lt;br /&gt;
 texture-KUID &amp;amp;lt;KUID:-1:6349&amp;amp;gt;&lt;br /&gt;
 distance-fade 1&lt;br /&gt;
 directional 1&lt;br /&gt;
 frequency 0&lt;br /&gt;
 wave-shift 0&lt;br /&gt;
&lt;br /&gt;
===Explanations and default values===&lt;br /&gt;
&lt;br /&gt;
att: Name of attachment point.&lt;br /&gt;
&lt;br /&gt;
object-size: size of the corona in meters; default is 0.15.&lt;br /&gt;
&lt;br /&gt;
max-size-mul:&lt;br /&gt;
&lt;br /&gt;
mul-distance: &lt;br /&gt;
&lt;br /&gt;
min-distance: closest distance at which the corona disappears. &lt;br /&gt;
&lt;br /&gt;
max-distance: farthest distance at which corona will be visible&lt;br /&gt;
&lt;br /&gt;
max-intensity&lt;br /&gt;
&lt;br /&gt;
texture-KUID: allows user to specify the a user defined texture for the corona by identifying the KUID of a &amp;quot;[[KIND_Texture | KIND_Texture]]&amp;quot; asset. If the  texture-kuid tag is not present, the corona will use the default yellow/orange texture.  &lt;br /&gt;
&lt;br /&gt;
distance-fade: boolean value; 0 = does not fade with distance, 1 = fades with distance&lt;br /&gt;
&lt;br /&gt;
directional: boolean value indicating whether the corona effect has direction. A value of 0 means the corona is omnidirectional; a value of 1 indicated that the corona is visible along the z axis. Default value is 1.&lt;br /&gt;
&lt;br /&gt;
frequency: frequency of flashing in flashes per second. .2 is one flash every 5 seconds; .5 is one flash every 2 seconds; 2 is one flash every half second.&lt;br /&gt;
wave-shift: boolean value&lt;br /&gt;
&lt;br /&gt;
[[Category:Config Container]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- mul-distance = distance at which corona will start growing larger; maintains visibility of a light source, mimics signal light behavior&lt;br /&gt;
max-size-mul = Essentially, the maximum size of corona at a long distance, it shrinks as you get closer&lt;br /&gt;
&lt;br /&gt;
wave shift = not sure, probably allows occulting (on more than off) or quick flashing (off more than on) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Corona_Effect&amp;diff=8743</id>
		<title>Corona Effect</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Corona_Effect&amp;diff=8743"/>
		<updated>2016-01-11T12:24:18Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Corona effect kind is a [[&amp;quot;mesh-table&amp;quot; Container]] effect container. The following tags are supported:&lt;br /&gt;
&lt;br /&gt;
 kind &amp;quot;corona&amp;quot;&lt;br /&gt;
 att &amp;quot;&amp;quot;&lt;br /&gt;
 object-size 0.15&lt;br /&gt;
 max-size-mul 2.0&lt;br /&gt;
 mul-distance 60.0&lt;br /&gt;
 min-distance 1.0&lt;br /&gt;
 max-distance 315.0&lt;br /&gt;
 max-intensity 1.0&lt;br /&gt;
 texture-KUID &amp;amp;lt;KUID:-1:6349&amp;amp;gt;&lt;br /&gt;
 distance-fade 1&lt;br /&gt;
 directional 1&lt;br /&gt;
 frequency 0&lt;br /&gt;
 wave-shift 0&lt;br /&gt;
&lt;br /&gt;
===Explanations and default values===&lt;br /&gt;
&lt;br /&gt;
att: Name of attachment point.&lt;br /&gt;
&lt;br /&gt;
object-size: size of the corona in meters; default is 0.15.&lt;br /&gt;
&lt;br /&gt;
max-size-mul:&lt;br /&gt;
&lt;br /&gt;
mul-distance: &lt;br /&gt;
&lt;br /&gt;
min-distance:&lt;br /&gt;
&lt;br /&gt;
max-distance:&lt;br /&gt;
&lt;br /&gt;
max-intensity&lt;br /&gt;
&lt;br /&gt;
texture-KUID: allows user to specify the a user defined texture for the corona by identifying the KUID of a &amp;quot;[[KIND_Texture | KIND_Texture]]&amp;quot; asset. If the  texture-kuid tag is not present, the corona will use the default yellow/orange texture.  &lt;br /&gt;
&lt;br /&gt;
distance-fade: boolean value&lt;br /&gt;
&lt;br /&gt;
directional: boolean value&lt;br /&gt;
&lt;br /&gt;
frequency: boolean value&lt;br /&gt;
&lt;br /&gt;
wave-shift: boolean value&lt;br /&gt;
&lt;br /&gt;
[[Category:Config Container]]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=KIND_Asset-group&amp;diff=8740</id>
		<title>KIND Asset-group</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=KIND_Asset-group&amp;diff=8740"/>
		<updated>2016-01-10T10:35:53Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
==KIND Hierarchy==&lt;br /&gt;
A logical grouping of assets. &#039;&#039;&#039;KIND Asset-group&#039;&#039;&#039; assets are not typically visible within the Trainz user interface, but instead affect other placeable assets in various ways.&lt;br /&gt;
&lt;br /&gt;
===Parent Classes===&lt;br /&gt;
* [[KIND TrainzBaseSpec]]&lt;br /&gt;
===Child Classes===&lt;br /&gt;
[[KIND TrainzBaseSpec#member-of-groups|&#039;member-of-groups&#039; container]] self-assignment in [[TrainzBaseSpec]].&lt;br /&gt;
&lt;br /&gt;
==Supported Tags==&lt;br /&gt;
No additional tags are supported at the current time. An asset-group starts as empty of assets, but individual assets can assign themselves to an asset-group using their [[KIND TrainzBaseSpec#member-of-groups|&#039;member-of-groups&#039; container]]. An asset-group should not typically have any data in its own &#039;member-of-groups&#039; container, although it is not an error to do so.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
Once an asset of [[KIND Asset-group]] has been created, other assets can be assigned to the group by adding the asset groups&#039; [[KUID]] to each asset&#039;s &#039;member-of-groups&#039; container. It is strongly recommended that each new asset group is added to this documentation so that other users can understand how to use groups that you have created.&lt;br /&gt;
&lt;br /&gt;
It is not recommended to create large numbers of asset groups simply for classification purposes, as the asset groups are meaningless or even counter-productive unless adopted as standard and used by a large number of content creators. For example, a new &#039;steam locomotive&#039; asset group would be meaningless unless the majority of steam locomotives were updated to be members of the asset group.&lt;br /&gt;
&lt;br /&gt;
==Interpretation==&lt;br /&gt;
Membership of a particular asset group has a meaning specific to that asset group- simply creating a new asset group and adding assets to it has no effect whatsoever on the simulation. Both script and native code can make use of known asset groups to imply particular meanings.&lt;br /&gt;
&lt;br /&gt;
Surveyor currently uses the asset-group information when placing [[KIND_Scenery-trackside|trackside objects]], to determine whether the object can be placed on the target spline.&lt;br /&gt;
&lt;br /&gt;
==Known Asset-Groups==&lt;br /&gt;
&lt;br /&gt;
=== Standard Track ===&lt;br /&gt;
{| border=1 cellpadding=2 cellspacing=0&lt;br /&gt;
|Username||KUID||Description&lt;br /&gt;
|-&lt;br /&gt;
|Standard Gauge Group||&amp;lt;kuid:30501:100050&amp;gt;||4&#039;8.5&amp;quot; (1435mm) standard gauge track.&lt;br /&gt;
|-&lt;br /&gt;
|Track Spline Group||&amp;lt;kuid:30501:100043&amp;gt;||By default, all spline assets which act as railway tracks are placed in this asset group.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Narrow Gauge Track ===&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellpadding=2 cellspacing=0&lt;br /&gt;
|-&lt;br /&gt;
|Username||KUID||Description&lt;br /&gt;
|-&lt;br /&gt;
|Narrow Gauge One Foot Group||&amp;lt;KUID:44700:100057&amp;gt;||1&#039; (304.8 mm) narrow gauge track.&lt;br /&gt;
|-&lt;br /&gt;
|Narrow Gauge One Foot Three Group||&amp;lt;KUID:44700:100056&amp;gt;||1&#039;3&amp;quot; (381 mm) narrow gauge track.&lt;br /&gt;
|-&lt;br /&gt;
|Narrow Gauge Two Foot Group||&amp;lt;KUID:44700:100055&amp;gt;||2&#039; (609.6 mm) narrow gauge track.&lt;br /&gt;
|-&lt;br /&gt;
|Narrow Gauge Two Foot Six Group||&amp;lt;KUID:44700:100054&amp;gt;||2&#039;6&amp;quot; (762 mm) narrow gauge track.&lt;br /&gt;
|-&lt;br /&gt;
|Narrow Gauge One Meter Group||&amp;lt;kuid:30501:100053&amp;gt;||One-meter (3 feet, 3.37 inches) narrow gauge track.&lt;br /&gt;
|-&lt;br /&gt;
|Narrow Gauge Three Foot Group||&amp;lt;kuid:30501:100051&amp;gt;||3&#039; (914.4mm) narrow gauge track.&lt;br /&gt;
|-&lt;br /&gt;
|Narrow Gauge Three Foot Six Group||&amp;lt;kuid:30501:100052&amp;gt;||3&#039;6&amp;quot; (1066.8 mm) narrow gauge track.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Roads, Bridges and Tunnels ===&lt;br /&gt;
{| border=1 cellpadding=2 cellspacing=0&lt;br /&gt;
|Username||KUID||Description&lt;br /&gt;
|-&lt;br /&gt;
|Bridge Spline Group||&amp;lt;kuid:30501:100046&amp;gt;||By default, all spline assets which act as bridges are placed in this asset group.&lt;br /&gt;
|-&lt;br /&gt;
|Road Spline Group||&amp;lt;kuid:30501:100045&amp;gt;||By default, all spline assets which act as road splines are placed in this asset group.&lt;br /&gt;
|-&lt;br /&gt;
|Tunnel Spline Group||&amp;lt;kuid:30501:100044&amp;gt;||By default, all spline assets which act as tunnels are placed in this asset group.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
{| border=1 cellpadding=2 cellspacing=0&lt;br /&gt;
|Username||KUID||Description&lt;br /&gt;
|-&lt;br /&gt;
|Air Vehicle Group||&amp;lt;kuid:30501:100048&amp;gt;||Aircraft.&lt;br /&gt;
|-&lt;br /&gt;
|Groundcar Group||&amp;lt;kuid:30501:100049&amp;gt;||Ground vehicles such as cars, buses, tractors, tanks.&lt;br /&gt;
|-&lt;br /&gt;
|Train Vehicle Group||&amp;lt;kuid:30501:100047&amp;gt;||Normal train vehicles (rolling stock) as simulated by Trainz. Does not include any special-case objects which the creator may have constructed as a [[KIND Traincar]] asset.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Config.txt==&lt;br /&gt;
&lt;br /&gt;
 kuid                                    &amp;lt;kuid:30501:100046&amp;gt;&lt;br /&gt;
 kind                                    &amp;quot;asset-group&amp;quot;&lt;br /&gt;
 username                            &amp;quot;Bridge Spline Group&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Categories==&lt;br /&gt;
[[Category:Asset KIND|asset-group]]&lt;br /&gt;
{{ORP-bot|asset-group}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8660</id>
		<title>HowTo/Export from Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8660"/>
		<updated>2015-11-10T18:09:22Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Introduction of Blender */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FUN-beg}}&lt;br /&gt;
== Introduction of Blender ==&lt;br /&gt;
&lt;br /&gt;
{{plain link|http://www.blender.org |Blender}} is an open source free {{Wp|3D graphics|3D modelling}} application or tool supported by the contribution of programming and development time by the user community.  For more information on Blender and its capabilities, please visit the {{plain link|http://www.blender.org |Blender website}}.  Blender evolves rapidly and it is not uncommon to see releases about every two months. As of 03 November, 2015, the current version is 2.76b. For those working with a tutorial written based upon an older version of Blender, all past versions of Blender can be downloaded on the [http://download.blender.org/release// Blender past releases] page. &lt;br /&gt;
&lt;br /&gt;
Blender is extendable through the use of &amp;quot;add-ons&amp;quot; produced either by the Blender Foundation or by Blender users.  One of those add-ons is the Trainz Blender exporter that was built and is maintained by USCHI0815 (Torsten).  Torsten usually announces updates to the Exporter through the Trainz Content Creation Support forum.  As of 24 April, 2014, the current version of the Blender exporter is V0.96.&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
===Caveat===&lt;br /&gt;
[http://www.blender.org Blender] is not currently supported by N3V as an officially sanctioned modeling platform for producing Trainz assets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== About This Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The scope of this tutorial has been extended to include installation of Blender and installation of the Blender Exporter since this has been an issue discussed several times in the N3V Content Creation forum.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
To export to Trainz you need the following:&lt;br /&gt;
&lt;br /&gt;
:*  Trainz (TS09 or later preferred)&lt;br /&gt;
:*  [[Downloads|TrainzMeshImporter.exe]].   This is provided by N3V.&lt;br /&gt;
:*  [http://www.blender.org/download/ Blender] (v. 2.57 or later is recommended).&lt;br /&gt;
:*  [https://bitbucket.org/uschi0815/blender-exporter-for-trainz/downloads/ The Blender Exporter]. &lt;br /&gt;
:*  Windows XP, Vista, Windows 7 (32 or 64 bit) or Windows 8 (32 or 64 bit) or Mac OS X (32 or 64 bits).&lt;br /&gt;
&lt;br /&gt;
=== Blender Installation Notes ===&lt;br /&gt;
&lt;br /&gt;
Blender is available for a number of operating systems including Windows XP, Windows Vista and Windows 7.  Both 32 bit and 64 bit versions are available.&lt;br /&gt;
You can choose either the installer version or a zip archive.  Please read any notes on the Blender.org download page: particularly if you are upgrading from a previous version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installer Version ===&lt;br /&gt;
&lt;br /&gt;
The Installer Version is the easiest way to install Blender but there can be complications.  If you install Blender into the default directory you should choose &amp;quot;Use Application Data Directory&amp;quot; during installation of Blender. Otherwise it might not be possible to save your preferred Exporter options due to insufficient permissions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blender Zip Archive Version ===&lt;br /&gt;
&lt;br /&gt;
The zip archive version allows you to unzip the entire Blender folder structure and locate it in any location that suits you.  The only drawback is that you will need to set up your own links to the Blender executable (Blender.exe).&lt;br /&gt;
&lt;br /&gt;
== Installing the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Blender exporter add-on must be installed in the &amp;quot;scripts\addons&amp;quot; area of the Blender data space. The following process will install it in the correct location.&lt;br /&gt;
&lt;br /&gt;
=== Install Blender Exporter for Trainz ===&lt;br /&gt;
&lt;br /&gt;
:* Download the exporter.&lt;br /&gt;
:* Start Blender.&lt;br /&gt;
:* Open a new project(File -&amp;gt; New).&lt;br /&gt;
:* Open User Preferences(File -&amp;gt; User Preferences...).&lt;br /&gt;
:* Select Add-Ons panel and press button &amp;quot;Install from file...&amp;quot; down at the panel button bar.&lt;br /&gt;
:* Select and install downloaded file: you don&#039;t need to extract it.&lt;br /&gt;
:* Enable &amp;quot;TRAINZ Exporter&amp;quot; in Add-On list and press button &amp;quot;Save As Default&amp;quot; to keep it enabled for all subsequent Blender starts.&lt;br /&gt;
&lt;br /&gt;
=== Install the N3V TrainzMeshImporter ===&lt;br /&gt;
&lt;br /&gt;
:* Download the [http://online.ts2009.com/mediaWiki/index.php5/Downloads TrainzMeshImporter.exe].  The file is in the RAR format that can be extracted by most zip file management programs.&lt;br /&gt;
:* Before using the exporter you must copy the TrainzMeshExporter.exe to the same location as the Blender Exporter add-on.  The following will help find that location:&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and leave the default cube mesh in place.&lt;br /&gt;
:* If necessary, open the console window so you can read the error messages. In versions 2.5 through 2.63a, the console window is opened using the &amp;quot;toggle system console&amp;quot; menu entry in the &amp;quot;help&amp;quot; menu in the Blender menu bar. Beginning with version 2.64, the &amp;quot;toggle system console&amp;quot; menu has been moved to the &amp;quot;window&amp;quot; menu in the Blender menu bar. Those running a Blender version 2.49 or earlier can disregard this step, as the system console is in a window that is open whenever Blender is active. &lt;br /&gt;
:* Go to File-&amp;gt;Export and select &amp;quot;Trainz Mesh and Animation&amp;quot;.  Use the default settings but make sure that the save location is a temporary or working space.&lt;br /&gt;
:* The Exporter will complain about a missing file in a specific folder.   The missing file is TrainzMeshImporter and the folder name is the location you need.&lt;br /&gt;
:* The location is usually in the form of &amp;quot;ERROR&amp;quot;  file &amp;quot;C:Users\your name\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons\TrainzMeshExporter.exe&amp;quot; not found&amp;quot;.  This example is typical of using the default Blender Installer.  If you chose to install Blender using the zip archive then the location will be different.&lt;br /&gt;
:* Copy TrainzMeshExporter.exe to the location provided.  If you cannot access the AppData folder see the [http://online.ts2009.com/mediaWiki/index.php5?title=HowTo/Export_from_Blender&amp;amp;action=submit#Additional_Notes Additional Notes] section for help.&lt;br /&gt;
:* Once you have copied TrainzMeshExporter.exe to the correct location retry the export.&lt;br /&gt;
&lt;br /&gt;
== Exporting an Asset ==&lt;br /&gt;
&lt;br /&gt;
The creation of an asset suitable for Trainz is a long and complex process.  For the purposes of this tutorial we will only export the standard Blender cube.  Some knowledge of Blender and creation of assets for Trainz purposes is assumed.&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and save the default cube as &amp;quot;cube.blend&amp;quot; in your preferred working location.&lt;br /&gt;
:* Create a simple material such as &amp;quot;cube.m.onetex&amp;quot; and allocate a simple colour texture file. For the purpose of this tutorial leave the default mapping technique to &amp;quot;generated&amp;quot;.  This will cause an error.&lt;br /&gt;
:* UV map the cube to the texture.&lt;br /&gt;
:* Save the Blender file.&lt;br /&gt;
:* Go to File-&amp;gt;Export and select Trainz Mesh and Animation.&lt;br /&gt;
:* The dialog box that appears gives a output save location for the XML, log, texture description and other files produced by the process.  Select your preferred location.&lt;br /&gt;
:* All the other options can be left as default.  If you were exporting a mesh that included animation, then you would also select &amp;quot;Export Animation Data&amp;quot;.&lt;br /&gt;
:* When you are ready, select &amp;quot;Export Trainz&amp;quot; in the top right hand corner.&lt;br /&gt;
:* This export process will fail with an error since the &amp;quot;generated&amp;quot; mapping option for textures is not supported when using an image file.  Go back to the Texture section and change the mapping option to UV and then export again.  This time it should export correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporter Output ==&lt;br /&gt;
&lt;br /&gt;
=== Files Created ===&lt;br /&gt;
The Exporter produces:&lt;br /&gt;
&lt;br /&gt;
:* An XML file.  This is used by TrainzMeshImporter.&lt;br /&gt;
:* The IM mesh file required by Trainz.&lt;br /&gt;
:* The texture description files (nnn.texture.txt) required by Trainz.&lt;br /&gt;
:* The KIN animation file required by Trainz if animation is used.&lt;br /&gt;
:* A log of the export process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error Reporting ===&lt;br /&gt;
Errors are reported in the Blender System Console and the Exporter log. Errors will prevent the production of the target IM file and therefore must be addressed.&lt;br /&gt;
Typical errors are:&lt;br /&gt;
&lt;br /&gt;
==== Mesh Errors ====&lt;br /&gt;
&lt;br /&gt;
:*Objects without a parent where a root bone exists.&lt;br /&gt;
&lt;br /&gt;
==== Material Related Errors ====&lt;br /&gt;
&lt;br /&gt;
:* No UV layer for UV mapped objects. Blender usually creates a default.&lt;br /&gt;
:* Use of the same material for both single and double sided meshes.  Recommend only using single sided meshes.&lt;br /&gt;
:* Objects without an assigned material.  Recommend assigning a material for each object.&lt;br /&gt;
:* Faces without a material in an object.  The faces will have been collected into a Vertex Group to enable correction. This error can also be caused by material slots in blender to which no material is assigned.   &lt;br /&gt;
:* Use of similar material names if character case is ignored.  i.e. &amp;quot;Black&amp;quot; and &amp;quot;black&amp;quot; are considered the same by Trainz.&lt;br /&gt;
:* Not using UV mapping for textures that are either using alpha, normal or specular.&lt;br /&gt;
:* Not using UV or reflect mapping for diffuse textures.&lt;br /&gt;
&lt;br /&gt;
==== Animation Errors ====&lt;br /&gt;
&lt;br /&gt;
:* More than one root bone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
Warnings are basically flaws or possible flaws that the user may wish to address.  Warnings do not prevent production of the IM output files. Some typicals warnings include:&lt;br /&gt;
&lt;br /&gt;
==== Animation Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Possible incorrect location and rotation of root bone.&lt;br /&gt;
:* Bones not found or no animation data found.&lt;br /&gt;
:* Events not found or unrecognised.&lt;br /&gt;
:* Event frame numbers in wrong positions.&lt;br /&gt;
&lt;br /&gt;
==== Mesh Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Vertices influenced by more than four vertex groups.&lt;br /&gt;
&lt;br /&gt;
==== Name Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Unrecommended characters.  Material, texture, object and path names should only be composed of a-z, A-Z, 0-9 or -_./\ characters.  A typical error is use of a space character in a path name.  The Exporter will change Blender file names that include upper case letters to lower case letters.  Generally, it is recommended you avoid the use of upper case characters in names.&lt;br /&gt;
&lt;br /&gt;
==== Material Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Surfaceless faces in an object.  The Exporter will gather these faces and put them into a Vertex Group to aid identification. The Vertex Group can be found in the triangle panel associated with the Safety Valve object.&lt;br /&gt;
:* Objects exported with double sided faces.   This will become an error if a material is used for both single and double sided objects.&lt;br /&gt;
:* Material renamed.  If the name does not match one of the standard Trainz material names then the Exporter will try and effect a solution.  Typically a name such as &amp;quot;black&amp;quot; will be renamed &amp;quot;blackm.onetex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Export Log ===&lt;br /&gt;
&lt;br /&gt;
The Exporter Log contains a record of events during the export process including errors and warnings.  The numTriangles report is the number of polygons (aka polys) in the mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Material Recognition by the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Exporter tries to identify materials in use by the asset mesh and will provide a warning if the detected material decoration varies from that declared in the Blender file.  The term &amp;quot;material decoration&amp;quot; is one of the standard Trainz material names such as &amp;quot;m.onetext&amp;quot; or &amp;quot;m.tbumptex&amp;quot;. The following decision process, provided by Torsten, may be useful for developers.&lt;br /&gt;
&lt;br /&gt;
The decision which material decoration is used is made by the texturing schema used for the material:&lt;br /&gt;
&lt;br /&gt;
: no texture used -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: one texture used:&lt;br /&gt;
:: invalid texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: reflection texture  -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: two textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse &amp;amp; reflection -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: three textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha &amp;amp; reflection -&amp;gt;&#039;&#039;&#039; m.gloss&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: normal texture used:&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; alpha &amp;amp; no reflection -&amp;gt; &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; reflection &amp;amp; no alpha -&amp;gt; &#039;&#039;&#039;m.tbumpgloss&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; no alpha &amp;amp; no reflection-&amp;gt; &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As material &#039;&#039;&#039;m.notex&#039;&#039;&#039; causes problems with specific assets&#039;&#039;&#039;, m.onetex&#039;&#039;&#039; is used instead. It also works perfectly without any texture.&lt;br /&gt;
The problem with &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039; and &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is that, besides the usage of an alpha texture (which is not used for &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039;), both use a diffuse and normal texture. In this case &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is chosen.&lt;br /&gt;
&lt;br /&gt;
Generally, you can use any material decoration you want. The script does not change a syntactically correct material decoration(e.g. Material&#039;&#039;&#039;m.billboard&#039;&#039;&#039; would pass unchanged).  It only drops a message to remind you that you either use an unsupported material(as warning) or that it had chosen another material(as info).&lt;br /&gt;
&lt;br /&gt;
If you check the issue and find it to be OK than you can safely ignore those messages.&lt;br /&gt;
&lt;br /&gt;
Blenders texture influences are nearly equivalent to MAX material maps. Because diffuse textures and reflection textures both influence diffuse color, the decision between them is made by checking texture mapping coordinates to:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;MAX map -&amp;gt; Blender texture influence&#039;&#039;&#039;&lt;br /&gt;
: Ambient Color -&amp;gt; Shading Ambient&lt;br /&gt;
: Diffuse Color -&amp;gt; Diffuse Color &amp;amp; UV mapping&lt;br /&gt;
: Specular Color -&amp;gt; Specular Color&lt;br /&gt;
: Specular Level -&amp;gt; Specular Intensity&lt;br /&gt;
: Glossiness -&amp;gt; Specular Hardness&lt;br /&gt;
: Self-Illumination -&amp;gt; Shading Emit&lt;br /&gt;
: Opacity -&amp;gt; Diffuse Alpha&lt;br /&gt;
: Filter Color -&amp;gt; Diffuse Translucency&lt;br /&gt;
: Bump -&amp;gt; Geometry Normal&lt;br /&gt;
: Reflection -&amp;gt; Diffuse Color &amp;amp; Reflection mapping &lt;br /&gt;
: Refraction -&amp;gt; not available(not found?)&lt;br /&gt;
: Displacement -&amp;gt; Geometry Displacement&lt;br /&gt;
&lt;br /&gt;
== Torsten&#039;s Hints  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These hints are reproduced from the Exporter script since many will not want to edit or view the actual script contents.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Trainz models you can have two kinds of special objects: attachment points and bones. For attachment points, the exporter expects objects of type &amp;quot;Empty&amp;quot;. For bones, objects of type &amp;quot;Lattice&amp;quot; and &amp;quot;Armature&amp;quot; will be accepted.  All of them need to be named according the naming conventions in effect for attachements( a.* ) and bones( b.r.* ). Objects of other type and objects with proper type but names not matching this conventions will be ignored as attachment points or bones.&lt;br /&gt;
&lt;br /&gt;
If you want to export animations with events, than you have to create a Blender TX object and enter the lines as you would do to create an event file. By renaming this object to &amp;quot;events&amp;quot; you ensure the exporter will not ignore your event list.&lt;br /&gt;
&lt;br /&gt;
It is possible to make parent-child-relations between meshes to simplify the design process. However, the chain must be end with a valid parent bone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Blender Data Files ===&lt;br /&gt;
 &lt;br /&gt;
Blender keeps certain data files, such as add-on utilities, in a special location. This has given Trainz content creators some difficulties due to access rights. If you used the Blender Installer then this is usually in the Windows logged on user space.&lt;br /&gt;
&lt;br /&gt;
Say, for example, your user name is Patrick, then the location is likely to be similiar to &amp;quot;C:\Users\Patrick\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you cannot see this folder in the user folder then it is likely the folder has been hidden by Windows.  You can unhide folders in the Windows Explorer by going to Tools-&amp;gt;Folder Options-&amp;gt;View and selecting &amp;quot;Show hidden files, folders and drives&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under The Hood or, How the Exporter Works ==&lt;br /&gt;
&lt;br /&gt;
Basically the Blender export process works in three phases:&lt;br /&gt;
&lt;br /&gt;
:* Phase 1 is the checking process where the Exporter does some validation.  Where it can, the Exporter will make minor corrections and just issue a warning.  Warnings do not stop the process but an error will.  The warnings and errors should provide enough information to enable correction.&lt;br /&gt;
:* Phase 2 is the creation of the XML file required by the TrainzMeshImporter.  The XML file is a text file using a common language used by many applications.  It is also N3V&#039;s preferred import format.&lt;br /&gt;
:* On succession completion of the first two phases, the Exporter passes control to the TrainzMeshImport program which takes the XML file plus other information and produces the IM mesh file used by Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
Many thanks to USCHI0815 (Torsten) for his time and effort that went into producing and supporting the Blender Exporter.  Without it there would be no Blender models in Trainz.&lt;br /&gt;
&lt;br /&gt;
Thanks to Mick_Berg and Jananton for their comments, and to Mick_Berg for his [http://www.mickberg.com/blenderexport1.html Blender installation tutorial].&lt;br /&gt;
&lt;br /&gt;
== Tutorial Updates ==&lt;br /&gt;
Please feel free to update as necessary and correct errors in this tutorial.  It is a WiKi contribution and intended to be maintained this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Material Types]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
{{FUN-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8546</id>
		<title>HowTo/Export from Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8546"/>
		<updated>2015-10-13T04:11:45Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Introduction of Blender */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FUN-beg}}&lt;br /&gt;
== Introduction of Blender ==&lt;br /&gt;
&lt;br /&gt;
{{plain link|http://www.blender.org |Blender}} is an open source free {{Wp|3D graphics|3D modelling}} application or tool supported by the contribution of programming and development time by the user community.  For more information on Blender and its capabilities, please visit the {{plain link|http://www.blender.org |Blender website}}.  Blender evolves rapidly and it is not uncommon to see releases about every two months. As of 11 October, 2015, the current version is 2.76. For those working with a tutorial written based upon an older version of Blender, all past versions of Blender can be downloaded on the [http://download.blender.org/release// Blender past releases] page. &lt;br /&gt;
&lt;br /&gt;
Blender is extendable through the use of &amp;quot;add-ons&amp;quot; produced either by the Blender Foundation or by Blender users.  One of those add-ons is the Trainz Blender exporter that was built and is maintained by USCHI0815 (Torsten).  Torsten usually announces updates to the Exporter through the Trainz Content Creation Support forum.  As of 24 April, 2014, the current version of the Blender exporter is V0.96.&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
===Caveat===&lt;br /&gt;
[http://www.blender.org Blender] is not currently supported by N3V as an officially sanctioned modeling platform for producing Trainz assets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== About This Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The scope of this tutorial has been extended to include installation of Blender and installation of the Blender Exporter since this has been an issue discussed several times in the N3V Content Creation forum.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
To export to Trainz you need the following:&lt;br /&gt;
&lt;br /&gt;
:*  Trainz (TS09 or later preferred)&lt;br /&gt;
:*  [[Downloads|TrainzMeshImporter.exe]].   This is provided by N3V.&lt;br /&gt;
:*  [http://www.blender.org/download/ Blender] (v. 2.57 or later is recommended).&lt;br /&gt;
:*  [https://bitbucket.org/uschi0815/blender-exporter-for-trainz/downloads/ The Blender Exporter]. &lt;br /&gt;
:*  Windows XP, Vista, Windows 7 (32 or 64 bit) or Windows 8 (32 or 64 bit) or Mac OS X (32 or 64 bits).&lt;br /&gt;
&lt;br /&gt;
=== Blender Installation Notes ===&lt;br /&gt;
&lt;br /&gt;
Blender is available for a number of operating systems including Windows XP, Windows Vista and Windows 7.  Both 32 bit and 64 bit versions are available.&lt;br /&gt;
You can choose either the installer version or a zip archive.  Please read any notes on the Blender.org download page: particularly if you are upgrading from a previous version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installer Version ===&lt;br /&gt;
&lt;br /&gt;
The Installer Version is the easiest way to install Blender but there can be complications.  If you install Blender into the default directory you should choose &amp;quot;Use Application Data Directory&amp;quot; during installation of Blender. Otherwise it might not be possible to save your preferred Exporter options due to insufficient permissions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blender Zip Archive Version ===&lt;br /&gt;
&lt;br /&gt;
The zip archive version allows you to unzip the entire Blender folder structure and locate it in any location that suits you.  The only drawback is that you will need to set up your own links to the Blender executable (Blender.exe).&lt;br /&gt;
&lt;br /&gt;
== Installing the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Blender exporter add-on must be installed in the &amp;quot;scripts\addons&amp;quot; area of the Blender data space. The following process will install it in the correct location.&lt;br /&gt;
&lt;br /&gt;
=== Install Blender Exporter for Trainz ===&lt;br /&gt;
&lt;br /&gt;
:* Download the exporter.&lt;br /&gt;
:* Start Blender.&lt;br /&gt;
:* Open a new project(File -&amp;gt; New).&lt;br /&gt;
:* Open User Preferences(File -&amp;gt; User Preferences...).&lt;br /&gt;
:* Select Add-Ons panel and press button &amp;quot;Install from file...&amp;quot; down at the panel button bar.&lt;br /&gt;
:* Select and install downloaded file: you don&#039;t need to extract it.&lt;br /&gt;
:* Enable &amp;quot;TRAINZ Exporter&amp;quot; in Add-On list and press button &amp;quot;Save As Default&amp;quot; to keep it enabled for all subsequent Blender starts.&lt;br /&gt;
&lt;br /&gt;
=== Install the N3V TrainzMeshImporter ===&lt;br /&gt;
&lt;br /&gt;
:* Download the [http://online.ts2009.com/mediaWiki/index.php5/Downloads TrainzMeshImporter.exe].  The file is in the RAR format that can be extracted by most zip file management programs.&lt;br /&gt;
:* Before using the exporter you must copy the TrainzMeshExporter.exe to the same location as the Blender Exporter add-on.  The following will help find that location:&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and leave the default cube mesh in place.&lt;br /&gt;
:* If necessary, open the console window so you can read the error messages. In versions 2.5 through 2.63a, the console window is opened using the &amp;quot;toggle system console&amp;quot; menu entry in the &amp;quot;help&amp;quot; menu in the Blender menu bar. Beginning with version 2.64, the &amp;quot;toggle system console&amp;quot; menu has been moved to the &amp;quot;window&amp;quot; menu in the Blender menu bar. Those running a Blender version 2.49 or earlier can disregard this step, as the system console is in a window that is open whenever Blender is active. &lt;br /&gt;
:* Go to File-&amp;gt;Export and select &amp;quot;Trainz Mesh and Animation&amp;quot;.  Use the default settings but make sure that the save location is a temporary or working space.&lt;br /&gt;
:* The Exporter will complain about a missing file in a specific folder.   The missing file is TrainzMeshImporter and the folder name is the location you need.&lt;br /&gt;
:* The location is usually in the form of &amp;quot;ERROR&amp;quot;  file &amp;quot;C:Users\your name\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons\TrainzMeshExporter.exe&amp;quot; not found&amp;quot;.  This example is typical of using the default Blender Installer.  If you chose to install Blender using the zip archive then the location will be different.&lt;br /&gt;
:* Copy TrainzMeshExporter.exe to the location provided.  If you cannot access the AppData folder see the [http://online.ts2009.com/mediaWiki/index.php5?title=HowTo/Export_from_Blender&amp;amp;action=submit#Additional_Notes Additional Notes] section for help.&lt;br /&gt;
:* Once you have copied TrainzMeshExporter.exe to the correct location retry the export.&lt;br /&gt;
&lt;br /&gt;
== Exporting an Asset ==&lt;br /&gt;
&lt;br /&gt;
The creation of an asset suitable for Trainz is a long and complex process.  For the purposes of this tutorial we will only export the standard Blender cube.  Some knowledge of Blender and creation of assets for Trainz purposes is assumed.&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and save the default cube as &amp;quot;cube.blend&amp;quot; in your preferred working location.&lt;br /&gt;
:* Create a simple material such as &amp;quot;cube.m.onetex&amp;quot; and allocate a simple colour texture file. For the purpose of this tutorial leave the default mapping technique to &amp;quot;generated&amp;quot;.  This will cause an error.&lt;br /&gt;
:* UV map the cube to the texture.&lt;br /&gt;
:* Save the Blender file.&lt;br /&gt;
:* Go to File-&amp;gt;Export and select Trainz Mesh and Animation.&lt;br /&gt;
:* The dialog box that appears gives a output save location for the XML, log, texture description and other files produced by the process.  Select your preferred location.&lt;br /&gt;
:* All the other options can be left as default.  If you were exporting a mesh that included animation, then you would also select &amp;quot;Export Animation Data&amp;quot;.&lt;br /&gt;
:* When you are ready, select &amp;quot;Export Trainz&amp;quot; in the top right hand corner.&lt;br /&gt;
:* This export process will fail with an error since the &amp;quot;generated&amp;quot; mapping option for textures is not supported when using an image file.  Go back to the Texture section and change the mapping option to UV and then export again.  This time it should export correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporter Output ==&lt;br /&gt;
&lt;br /&gt;
=== Files Created ===&lt;br /&gt;
The Exporter produces:&lt;br /&gt;
&lt;br /&gt;
:* An XML file.  This is used by TrainzMeshImporter.&lt;br /&gt;
:* The IM mesh file required by Trainz.&lt;br /&gt;
:* The texture description files (nnn.texture.txt) required by Trainz.&lt;br /&gt;
:* The KIN animation file required by Trainz if animation is used.&lt;br /&gt;
:* A log of the export process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error Reporting ===&lt;br /&gt;
Errors are reported in the Blender System Console and the Exporter log. Errors will prevent the production of the target IM file and therefore must be addressed.&lt;br /&gt;
Typical errors are:&lt;br /&gt;
&lt;br /&gt;
==== Mesh Errors ====&lt;br /&gt;
&lt;br /&gt;
:*Objects without a parent where a root bone exists.&lt;br /&gt;
&lt;br /&gt;
==== Material Related Errors ====&lt;br /&gt;
&lt;br /&gt;
:* No UV layer for UV mapped objects. Blender usually creates a default.&lt;br /&gt;
:* Use of the same material for both single and double sided meshes.  Recommend only using single sided meshes.&lt;br /&gt;
:* Objects without an assigned material.  Recommend assigning a material for each object.&lt;br /&gt;
:* Faces without a material in an object.  The faces will have been collected into a Vertex Group to enable correction. This error can also be caused by material slots in blender to which no material is assigned.   &lt;br /&gt;
:* Use of similar material names if character case is ignored.  i.e. &amp;quot;Black&amp;quot; and &amp;quot;black&amp;quot; are considered the same by Trainz.&lt;br /&gt;
:* Not using UV mapping for textures that are either using alpha, normal or specular.&lt;br /&gt;
:* Not using UV or reflect mapping for diffuse textures.&lt;br /&gt;
&lt;br /&gt;
==== Animation Errors ====&lt;br /&gt;
&lt;br /&gt;
:* More than one root bone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
Warnings are basically flaws or possible flaws that the user may wish to address.  Warnings do not prevent production of the IM output files. Some typicals warnings include:&lt;br /&gt;
&lt;br /&gt;
==== Animation Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Possible incorrect location and rotation of root bone.&lt;br /&gt;
:* Bones not found or no animation data found.&lt;br /&gt;
:* Events not found or unrecognised.&lt;br /&gt;
:* Event frame numbers in wrong positions.&lt;br /&gt;
&lt;br /&gt;
==== Mesh Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Vertices influenced by more than four vertex groups.&lt;br /&gt;
&lt;br /&gt;
==== Name Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Unrecommended characters.  Material, texture, object and path names should only be composed of a-z, A-Z, 0-9 or -_./\ characters.  A typical error is use of a space character in a path name.  The Exporter will change Blender file names that include upper case letters to lower case letters.  Generally, it is recommended you avoid the use of upper case characters in names.&lt;br /&gt;
&lt;br /&gt;
==== Material Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Surfaceless faces in an object.  The Exporter will gather these faces and put them into a Vertex Group to aid identification. The Vertex Group can be found in the triangle panel associated with the Safety Valve object.&lt;br /&gt;
:* Objects exported with double sided faces.   This will become an error if a material is used for both single and double sided objects.&lt;br /&gt;
:* Material renamed.  If the name does not match one of the standard Trainz material names then the Exporter will try and effect a solution.  Typically a name such as &amp;quot;black&amp;quot; will be renamed &amp;quot;blackm.onetex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Export Log ===&lt;br /&gt;
&lt;br /&gt;
The Exporter Log contains a record of events during the export process including errors and warnings.  The numTriangles report is the number of polygons (aka polys) in the mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Material Recognition by the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Exporter tries to identify materials in use by the asset mesh and will provide a warning if the detected material decoration varies from that declared in the Blender file.  The term &amp;quot;material decoration&amp;quot; is one of the standard Trainz material names such as &amp;quot;m.onetext&amp;quot; or &amp;quot;m.tbumptex&amp;quot;. The following decision process, provided by Torsten, may be useful for developers.&lt;br /&gt;
&lt;br /&gt;
The decision which material decoration is used is made by the texturing schema used for the material:&lt;br /&gt;
&lt;br /&gt;
: no texture used -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: one texture used:&lt;br /&gt;
:: invalid texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: reflection texture  -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: two textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse &amp;amp; reflection -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: three textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha &amp;amp; reflection -&amp;gt;&#039;&#039;&#039; m.gloss&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: normal texture used:&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; alpha &amp;amp; no reflection -&amp;gt; &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; reflection &amp;amp; no alpha -&amp;gt; &#039;&#039;&#039;m.tbumpgloss&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; no alpha &amp;amp; no reflection-&amp;gt; &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As material &#039;&#039;&#039;m.notex&#039;&#039;&#039; causes problems with specific assets&#039;&#039;&#039;, m.onetex&#039;&#039;&#039; is used instead. It also works perfectly without any texture.&lt;br /&gt;
The problem with &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039; and &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is that, besides the usage of an alpha texture (which is not used for &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039;), both use a diffuse and normal texture. In this case &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is chosen.&lt;br /&gt;
&lt;br /&gt;
Generally, you can use any material decoration you want. The script does not change a syntactically correct material decoration(e.g. Material&#039;&#039;&#039;m.billboard&#039;&#039;&#039; would pass unchanged).  It only drops a message to remind you that you either use an unsupported material(as warning) or that it had chosen another material(as info).&lt;br /&gt;
&lt;br /&gt;
If you check the issue and find it to be OK than you can safely ignore those messages.&lt;br /&gt;
&lt;br /&gt;
Blenders texture influences are nearly equivalent to MAX material maps. Because diffuse textures and reflection textures both influence diffuse color, the decision between them is made by checking texture mapping coordinates to:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;MAX map -&amp;gt; Blender texture influence&#039;&#039;&#039;&lt;br /&gt;
: Ambient Color -&amp;gt; Shading Ambient&lt;br /&gt;
: Diffuse Color -&amp;gt; Diffuse Color &amp;amp; UV mapping&lt;br /&gt;
: Specular Color -&amp;gt; Specular Color&lt;br /&gt;
: Specular Level -&amp;gt; Specular Intensity&lt;br /&gt;
: Glossiness -&amp;gt; Specular Hardness&lt;br /&gt;
: Self-Illumination -&amp;gt; Shading Emit&lt;br /&gt;
: Opacity -&amp;gt; Diffuse Alpha&lt;br /&gt;
: Filter Color -&amp;gt; Diffuse Translucency&lt;br /&gt;
: Bump -&amp;gt; Geometry Normal&lt;br /&gt;
: Reflection -&amp;gt; Diffuse Color &amp;amp; Reflection mapping &lt;br /&gt;
: Refraction -&amp;gt; not available(not found?)&lt;br /&gt;
: Displacement -&amp;gt; Geometry Displacement&lt;br /&gt;
&lt;br /&gt;
== Torsten&#039;s Hints  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These hints are reproduced from the Exporter script since many will not want to edit or view the actual script contents.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Trainz models you can have two kinds of special objects: attachment points and bones. For attachment points, the exporter expects objects of type &amp;quot;Empty&amp;quot;. For bones, objects of type &amp;quot;Lattice&amp;quot; and &amp;quot;Armature&amp;quot; will be accepted.  All of them need to be named according the naming conventions in effect for attachements( a.* ) and bones( b.r.* ). Objects of other type and objects with proper type but names not matching this conventions will be ignored as attachment points or bones.&lt;br /&gt;
&lt;br /&gt;
If you want to export animations with events, than you have to create a Blender TX object and enter the lines as you would do to create an event file. By renaming this object to &amp;quot;events&amp;quot; you ensure the exporter will not ignore your event list.&lt;br /&gt;
&lt;br /&gt;
It is possible to make parent-child-relations between meshes to simplify the design process. However, the chain must be end with a valid parent bone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Blender Data Files ===&lt;br /&gt;
 &lt;br /&gt;
Blender keeps certain data files, such as add-on utilities, in a special location. This has given Trainz content creators some difficulties due to access rights. If you used the Blender Installer then this is usually in the Windows logged on user space.&lt;br /&gt;
&lt;br /&gt;
Say, for example, your user name is Patrick, then the location is likely to be similiar to &amp;quot;C:\Users\Patrick\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you cannot see this folder in the user folder then it is likely the folder has been hidden by Windows.  You can unhide folders in the Windows Explorer by going to Tools-&amp;gt;Folder Options-&amp;gt;View and selecting &amp;quot;Show hidden files, folders and drives&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under The Hood or, How the Exporter Works ==&lt;br /&gt;
&lt;br /&gt;
Basically the Blender export process works in three phases:&lt;br /&gt;
&lt;br /&gt;
:* Phase 1 is the checking process where the Exporter does some validation.  Where it can, the Exporter will make minor corrections and just issue a warning.  Warnings do not stop the process but an error will.  The warnings and errors should provide enough information to enable correction.&lt;br /&gt;
:* Phase 2 is the creation of the XML file required by the TrainzMeshImporter.  The XML file is a text file using a common language used by many applications.  It is also N3V&#039;s preferred import format.&lt;br /&gt;
:* On succession completion of the first two phases, the Exporter passes control to the TrainzMeshImport program which takes the XML file plus other information and produces the IM mesh file used by Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
Many thanks to USCHI0815 (Torsten) for his time and effort that went into producing and supporting the Blender Exporter.  Without it there would be no Blender models in Trainz.&lt;br /&gt;
&lt;br /&gt;
Thanks to Mick_Berg and Jananton for their comments, and to Mick_Berg for his [http://www.mickberg.com/blenderexport1.html Blender installation tutorial].&lt;br /&gt;
&lt;br /&gt;
== Tutorial Updates ==&lt;br /&gt;
Please feel free to update as necessary and correct errors in this tutorial.  It is a WiKi contribution and intended to be maintained this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Material Types]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
{{FUN-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8545</id>
		<title>HowTo/Export from Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8545"/>
		<updated>2015-10-13T04:05:20Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Introduction of Blender */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FUN-beg}}&lt;br /&gt;
== Introduction of Blender ==&lt;br /&gt;
&lt;br /&gt;
{{plain link|http://www.blender.org |Blender}} is an open source free {{Wp|3D graphics|3D modelling}} application or tool supported by the contribution of programming and development time by the user community.  For more information on Blender and its capabilities, please visit the {{plain link|http://www.blender.org |Blender website}}.  Blender evolves rapidly and it is not uncommon to see releases about every two months. As of 12 October, 2015, the current version is 2.76. For those working with a tutorial written based upon an older version of Blender, all past versions of Blender can be downloaded on the [http://download.blender.org/release// Blender past releases] page. &lt;br /&gt;
&lt;br /&gt;
Blender is extendable through the use of &amp;quot;add-ons&amp;quot; produced either by the Blender Foundation or by Blender users.  One of those add-ons is the Trainz Blender exporter that was built and is maintained by USCHI0815 (Torsten).  Torsten usually announces updates to the Exporter through the Trainz Content Creation Support forum.  As of 24 April, 2014, the current version of the Blender exporter is V0.96.&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
===Caveat===&lt;br /&gt;
[http://www.blender.org Blender] is not currently supported by N3V as an officially sanctioned modeling platform for producing Trainz assets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== About This Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The scope of this tutorial has been extended to include installation of Blender and installation of the Blender Exporter since this has been an issue discussed several times in the N3V Content Creation forum.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
To export to Trainz you need the following:&lt;br /&gt;
&lt;br /&gt;
:*  Trainz (TS09 or later preferred)&lt;br /&gt;
:*  [[Downloads|TrainzMeshImporter.exe]].   This is provided by N3V.&lt;br /&gt;
:*  [http://www.blender.org/download/ Blender] (v. 2.57 or later is recommended).&lt;br /&gt;
:*  [https://bitbucket.org/uschi0815/blender-exporter-for-trainz/downloads/ The Blender Exporter]. &lt;br /&gt;
:*  Windows XP, Vista, Windows 7 (32 or 64 bit) or Windows 8 (32 or 64 bit) or Mac OS X (32 or 64 bits).&lt;br /&gt;
&lt;br /&gt;
=== Blender Installation Notes ===&lt;br /&gt;
&lt;br /&gt;
Blender is available for a number of operating systems including Windows XP, Windows Vista and Windows 7.  Both 32 bit and 64 bit versions are available.&lt;br /&gt;
You can choose either the installer version or a zip archive.  Please read any notes on the Blender.org download page: particularly if you are upgrading from a previous version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installer Version ===&lt;br /&gt;
&lt;br /&gt;
The Installer Version is the easiest way to install Blender but there can be complications.  If you install Blender into the default directory you should choose &amp;quot;Use Application Data Directory&amp;quot; during installation of Blender. Otherwise it might not be possible to save your preferred Exporter options due to insufficient permissions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blender Zip Archive Version ===&lt;br /&gt;
&lt;br /&gt;
The zip archive version allows you to unzip the entire Blender folder structure and locate it in any location that suits you.  The only drawback is that you will need to set up your own links to the Blender executable (Blender.exe).&lt;br /&gt;
&lt;br /&gt;
== Installing the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Blender exporter add-on must be installed in the &amp;quot;scripts\addons&amp;quot; area of the Blender data space. The following process will install it in the correct location.&lt;br /&gt;
&lt;br /&gt;
=== Install Blender Exporter for Trainz ===&lt;br /&gt;
&lt;br /&gt;
:* Download the exporter.&lt;br /&gt;
:* Start Blender.&lt;br /&gt;
:* Open a new project(File -&amp;gt; New).&lt;br /&gt;
:* Open User Preferences(File -&amp;gt; User Preferences...).&lt;br /&gt;
:* Select Add-Ons panel and press button &amp;quot;Install from file...&amp;quot; down at the panel button bar.&lt;br /&gt;
:* Select and install downloaded file: you don&#039;t need to extract it.&lt;br /&gt;
:* Enable &amp;quot;TRAINZ Exporter&amp;quot; in Add-On list and press button &amp;quot;Save As Default&amp;quot; to keep it enabled for all subsequent Blender starts.&lt;br /&gt;
&lt;br /&gt;
=== Install the N3V TrainzMeshImporter ===&lt;br /&gt;
&lt;br /&gt;
:* Download the [http://online.ts2009.com/mediaWiki/index.php5/Downloads TrainzMeshImporter.exe].  The file is in the RAR format that can be extracted by most zip file management programs.&lt;br /&gt;
:* Before using the exporter you must copy the TrainzMeshExporter.exe to the same location as the Blender Exporter add-on.  The following will help find that location:&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and leave the default cube mesh in place.&lt;br /&gt;
:* If necessary, open the console window so you can read the error messages. In versions 2.5 through 2.63a, the console window is opened using the &amp;quot;toggle system console&amp;quot; menu entry in the &amp;quot;help&amp;quot; menu in the Blender menu bar. Beginning with version 2.64, the &amp;quot;toggle system console&amp;quot; menu has been moved to the &amp;quot;window&amp;quot; menu in the Blender menu bar. Those running a Blender version 2.49 or earlier can disregard this step, as the system console is in a window that is open whenever Blender is active. &lt;br /&gt;
:* Go to File-&amp;gt;Export and select &amp;quot;Trainz Mesh and Animation&amp;quot;.  Use the default settings but make sure that the save location is a temporary or working space.&lt;br /&gt;
:* The Exporter will complain about a missing file in a specific folder.   The missing file is TrainzMeshImporter and the folder name is the location you need.&lt;br /&gt;
:* The location is usually in the form of &amp;quot;ERROR&amp;quot;  file &amp;quot;C:Users\your name\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons\TrainzMeshExporter.exe&amp;quot; not found&amp;quot;.  This example is typical of using the default Blender Installer.  If you chose to install Blender using the zip archive then the location will be different.&lt;br /&gt;
:* Copy TrainzMeshExporter.exe to the location provided.  If you cannot access the AppData folder see the [http://online.ts2009.com/mediaWiki/index.php5?title=HowTo/Export_from_Blender&amp;amp;action=submit#Additional_Notes Additional Notes] section for help.&lt;br /&gt;
:* Once you have copied TrainzMeshExporter.exe to the correct location retry the export.&lt;br /&gt;
&lt;br /&gt;
== Exporting an Asset ==&lt;br /&gt;
&lt;br /&gt;
The creation of an asset suitable for Trainz is a long and complex process.  For the purposes of this tutorial we will only export the standard Blender cube.  Some knowledge of Blender and creation of assets for Trainz purposes is assumed.&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and save the default cube as &amp;quot;cube.blend&amp;quot; in your preferred working location.&lt;br /&gt;
:* Create a simple material such as &amp;quot;cube.m.onetex&amp;quot; and allocate a simple colour texture file. For the purpose of this tutorial leave the default mapping technique to &amp;quot;generated&amp;quot;.  This will cause an error.&lt;br /&gt;
:* UV map the cube to the texture.&lt;br /&gt;
:* Save the Blender file.&lt;br /&gt;
:* Go to File-&amp;gt;Export and select Trainz Mesh and Animation.&lt;br /&gt;
:* The dialog box that appears gives a output save location for the XML, log, texture description and other files produced by the process.  Select your preferred location.&lt;br /&gt;
:* All the other options can be left as default.  If you were exporting a mesh that included animation, then you would also select &amp;quot;Export Animation Data&amp;quot;.&lt;br /&gt;
:* When you are ready, select &amp;quot;Export Trainz&amp;quot; in the top right hand corner.&lt;br /&gt;
:* This export process will fail with an error since the &amp;quot;generated&amp;quot; mapping option for textures is not supported when using an image file.  Go back to the Texture section and change the mapping option to UV and then export again.  This time it should export correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporter Output ==&lt;br /&gt;
&lt;br /&gt;
=== Files Created ===&lt;br /&gt;
The Exporter produces:&lt;br /&gt;
&lt;br /&gt;
:* An XML file.  This is used by TrainzMeshImporter.&lt;br /&gt;
:* The IM mesh file required by Trainz.&lt;br /&gt;
:* The texture description files (nnn.texture.txt) required by Trainz.&lt;br /&gt;
:* The KIN animation file required by Trainz if animation is used.&lt;br /&gt;
:* A log of the export process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error Reporting ===&lt;br /&gt;
Errors are reported in the Blender System Console and the Exporter log. Errors will prevent the production of the target IM file and therefore must be addressed.&lt;br /&gt;
Typical errors are:&lt;br /&gt;
&lt;br /&gt;
==== Mesh Errors ====&lt;br /&gt;
&lt;br /&gt;
:*Objects without a parent where a root bone exists.&lt;br /&gt;
&lt;br /&gt;
==== Material Related Errors ====&lt;br /&gt;
&lt;br /&gt;
:* No UV layer for UV mapped objects. Blender usually creates a default.&lt;br /&gt;
:* Use of the same material for both single and double sided meshes.  Recommend only using single sided meshes.&lt;br /&gt;
:* Objects without an assigned material.  Recommend assigning a material for each object.&lt;br /&gt;
:* Faces without a material in an object.  The faces will have been collected into a Vertex Group to enable correction. This error can also be caused by material slots in blender to which no material is assigned.   &lt;br /&gt;
:* Use of similar material names if character case is ignored.  i.e. &amp;quot;Black&amp;quot; and &amp;quot;black&amp;quot; are considered the same by Trainz.&lt;br /&gt;
:* Not using UV mapping for textures that are either using alpha, normal or specular.&lt;br /&gt;
:* Not using UV or reflect mapping for diffuse textures.&lt;br /&gt;
&lt;br /&gt;
==== Animation Errors ====&lt;br /&gt;
&lt;br /&gt;
:* More than one root bone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
Warnings are basically flaws or possible flaws that the user may wish to address.  Warnings do not prevent production of the IM output files. Some typicals warnings include:&lt;br /&gt;
&lt;br /&gt;
==== Animation Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Possible incorrect location and rotation of root bone.&lt;br /&gt;
:* Bones not found or no animation data found.&lt;br /&gt;
:* Events not found or unrecognised.&lt;br /&gt;
:* Event frame numbers in wrong positions.&lt;br /&gt;
&lt;br /&gt;
==== Mesh Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Vertices influenced by more than four vertex groups.&lt;br /&gt;
&lt;br /&gt;
==== Name Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Unrecommended characters.  Material, texture, object and path names should only be composed of a-z, A-Z, 0-9 or -_./\ characters.  A typical error is use of a space character in a path name.  The Exporter will change Blender file names that include upper case letters to lower case letters.  Generally, it is recommended you avoid the use of upper case characters in names.&lt;br /&gt;
&lt;br /&gt;
==== Material Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Surfaceless faces in an object.  The Exporter will gather these faces and put them into a Vertex Group to aid identification. The Vertex Group can be found in the triangle panel associated with the Safety Valve object.&lt;br /&gt;
:* Objects exported with double sided faces.   This will become an error if a material is used for both single and double sided objects.&lt;br /&gt;
:* Material renamed.  If the name does not match one of the standard Trainz material names then the Exporter will try and effect a solution.  Typically a name such as &amp;quot;black&amp;quot; will be renamed &amp;quot;blackm.onetex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Export Log ===&lt;br /&gt;
&lt;br /&gt;
The Exporter Log contains a record of events during the export process including errors and warnings.  The numTriangles report is the number of polygons (aka polys) in the mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Material Recognition by the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Exporter tries to identify materials in use by the asset mesh and will provide a warning if the detected material decoration varies from that declared in the Blender file.  The term &amp;quot;material decoration&amp;quot; is one of the standard Trainz material names such as &amp;quot;m.onetext&amp;quot; or &amp;quot;m.tbumptex&amp;quot;. The following decision process, provided by Torsten, may be useful for developers.&lt;br /&gt;
&lt;br /&gt;
The decision which material decoration is used is made by the texturing schema used for the material:&lt;br /&gt;
&lt;br /&gt;
: no texture used -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: one texture used:&lt;br /&gt;
:: invalid texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: reflection texture  -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: two textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse &amp;amp; reflection -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: three textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha &amp;amp; reflection -&amp;gt;&#039;&#039;&#039; m.gloss&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: normal texture used:&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; alpha &amp;amp; no reflection -&amp;gt; &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; reflection &amp;amp; no alpha -&amp;gt; &#039;&#039;&#039;m.tbumpgloss&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; no alpha &amp;amp; no reflection-&amp;gt; &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As material &#039;&#039;&#039;m.notex&#039;&#039;&#039; causes problems with specific assets&#039;&#039;&#039;, m.onetex&#039;&#039;&#039; is used instead. It also works perfectly without any texture.&lt;br /&gt;
The problem with &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039; and &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is that, besides the usage of an alpha texture (which is not used for &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039;), both use a diffuse and normal texture. In this case &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is chosen.&lt;br /&gt;
&lt;br /&gt;
Generally, you can use any material decoration you want. The script does not change a syntactically correct material decoration(e.g. Material&#039;&#039;&#039;m.billboard&#039;&#039;&#039; would pass unchanged).  It only drops a message to remind you that you either use an unsupported material(as warning) or that it had chosen another material(as info).&lt;br /&gt;
&lt;br /&gt;
If you check the issue and find it to be OK than you can safely ignore those messages.&lt;br /&gt;
&lt;br /&gt;
Blenders texture influences are nearly equivalent to MAX material maps. Because diffuse textures and reflection textures both influence diffuse color, the decision between them is made by checking texture mapping coordinates to:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;MAX map -&amp;gt; Blender texture influence&#039;&#039;&#039;&lt;br /&gt;
: Ambient Color -&amp;gt; Shading Ambient&lt;br /&gt;
: Diffuse Color -&amp;gt; Diffuse Color &amp;amp; UV mapping&lt;br /&gt;
: Specular Color -&amp;gt; Specular Color&lt;br /&gt;
: Specular Level -&amp;gt; Specular Intensity&lt;br /&gt;
: Glossiness -&amp;gt; Specular Hardness&lt;br /&gt;
: Self-Illumination -&amp;gt; Shading Emit&lt;br /&gt;
: Opacity -&amp;gt; Diffuse Alpha&lt;br /&gt;
: Filter Color -&amp;gt; Diffuse Translucency&lt;br /&gt;
: Bump -&amp;gt; Geometry Normal&lt;br /&gt;
: Reflection -&amp;gt; Diffuse Color &amp;amp; Reflection mapping &lt;br /&gt;
: Refraction -&amp;gt; not available(not found?)&lt;br /&gt;
: Displacement -&amp;gt; Geometry Displacement&lt;br /&gt;
&lt;br /&gt;
== Torsten&#039;s Hints  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These hints are reproduced from the Exporter script since many will not want to edit or view the actual script contents.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Trainz models you can have two kinds of special objects: attachment points and bones. For attachment points, the exporter expects objects of type &amp;quot;Empty&amp;quot;. For bones, objects of type &amp;quot;Lattice&amp;quot; and &amp;quot;Armature&amp;quot; will be accepted.  All of them need to be named according the naming conventions in effect for attachements( a.* ) and bones( b.r.* ). Objects of other type and objects with proper type but names not matching this conventions will be ignored as attachment points or bones.&lt;br /&gt;
&lt;br /&gt;
If you want to export animations with events, than you have to create a Blender TX object and enter the lines as you would do to create an event file. By renaming this object to &amp;quot;events&amp;quot; you ensure the exporter will not ignore your event list.&lt;br /&gt;
&lt;br /&gt;
It is possible to make parent-child-relations between meshes to simplify the design process. However, the chain must be end with a valid parent bone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Blender Data Files ===&lt;br /&gt;
 &lt;br /&gt;
Blender keeps certain data files, such as add-on utilities, in a special location. This has given Trainz content creators some difficulties due to access rights. If you used the Blender Installer then this is usually in the Windows logged on user space.&lt;br /&gt;
&lt;br /&gt;
Say, for example, your user name is Patrick, then the location is likely to be similiar to &amp;quot;C:\Users\Patrick\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you cannot see this folder in the user folder then it is likely the folder has been hidden by Windows.  You can unhide folders in the Windows Explorer by going to Tools-&amp;gt;Folder Options-&amp;gt;View and selecting &amp;quot;Show hidden files, folders and drives&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under The Hood or, How the Exporter Works ==&lt;br /&gt;
&lt;br /&gt;
Basically the Blender export process works in three phases:&lt;br /&gt;
&lt;br /&gt;
:* Phase 1 is the checking process where the Exporter does some validation.  Where it can, the Exporter will make minor corrections and just issue a warning.  Warnings do not stop the process but an error will.  The warnings and errors should provide enough information to enable correction.&lt;br /&gt;
:* Phase 2 is the creation of the XML file required by the TrainzMeshImporter.  The XML file is a text file using a common language used by many applications.  It is also N3V&#039;s preferred import format.&lt;br /&gt;
:* On succession completion of the first two phases, the Exporter passes control to the TrainzMeshImport program which takes the XML file plus other information and produces the IM mesh file used by Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
Many thanks to USCHI0815 (Torsten) for his time and effort that went into producing and supporting the Blender Exporter.  Without it there would be no Blender models in Trainz.&lt;br /&gt;
&lt;br /&gt;
Thanks to Mick_Berg and Jananton for their comments, and to Mick_Berg for his [http://www.mickberg.com/blenderexport1.html Blender installation tutorial].&lt;br /&gt;
&lt;br /&gt;
== Tutorial Updates ==&lt;br /&gt;
Please feel free to update as necessary and correct errors in this tutorial.  It is a WiKi contribution and intended to be maintained this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Material Types]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
{{FUN-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Build_a_simple_animated_scenery_asset_in_Blender&amp;diff=8410</id>
		<title>HowTo/Build a simple animated scenery asset in Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Build_a_simple_animated_scenery_asset_in_Blender&amp;diff=8410"/>
		<updated>2015-07-09T04:48:22Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Create the mesh */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Caveat==&lt;br /&gt;
[http://www.blender.org Blender] is not currently supported by N3V as a modeling source for Trainz, however third-party tools exist for this purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
This tutorial demonstrates how to animate a simple ball scenery asset to make it bounce one metre and rotate through 360 degrees.  The asset has no practical purpose in Trainz other than to demonstrate how animation can be used on scenery objects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
&lt;br /&gt;
To export from Trainz you need the following:&lt;br /&gt;
&lt;br /&gt;
:*  Trainz (TS09 or later preferred)&lt;br /&gt;
:*  [[Downloads|TrainzMeshImporter.exe]].   This is provided by N3V.&lt;br /&gt;
:*  Blender V2.57 or later.&lt;br /&gt;
:*  [https://bitbucket.org/uschi0815/blender-exporter-for-trainz/downloads/ The Blender Exporter]. &lt;br /&gt;
:*  Windows Vista or Windows 7 (32 or 64 bit).&lt;br /&gt;
:*  Some experience in the use of Blender to create assets for Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Animating meshes in Blender =&lt;br /&gt;
&lt;br /&gt;
Blender will allow the direct animation of meshes but that will not work for Trainz purposes.  Meshes to be animated must be linked to lattices or armatures and bones.  You must rotate or position the lattices or pose the armatures and bones to enable animation.  Animation in Blender, and particularly for armatures and bones, can be complex.  However, lattice animation is much simpler and a good place to start.&lt;br /&gt;
&lt;br /&gt;
This tutorial animates a beachball mesh by rotating and locating a lattice that is a parent of the beachball.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Process =&lt;br /&gt;
&lt;br /&gt;
== Create the mesh ==&lt;br /&gt;
&lt;br /&gt;
*In Blender create a new sphere object and name it Beachball.&lt;br /&gt;
*Create a simple material called &amp;quot;beachball.m.onetex&amp;quot;.&lt;br /&gt;
*Allocate a simple texture and UV map the sphere to the texture.  This example uses a red 16*16 pixel TGA file.&lt;br /&gt;
*Position the beachball so it just touches the ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Animation Tute-The Beachball.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Create the lattices ==&lt;br /&gt;
&lt;br /&gt;
This asset requires two lattices.  The main lattice, appropriately called b.r.main, is the parent lattice and is not animated.  The second lattice, b.r.beachball will be the parent of the beachball mesh and will be animated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Create the b.r.main lattice ===&lt;br /&gt;
&lt;br /&gt;
The most important lattice is one called b.r.main.  This should be positioned at grid centre (X=0, Y=0, Z=0).&lt;br /&gt;
&lt;br /&gt;
*Position the cursor at the centre using &#039;&#039;&#039;&#039;&#039;Shift S -&amp;gt;Cursor to center&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*Add a lattice and name it b.r.main.  The name is important and it should be in lowercase.  You can resize to whatever size suits you.&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Animation Tute-b.r.main lattice.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Create the b.r.beachball lattice ===&lt;br /&gt;
&lt;br /&gt;
*Select the beachball object and position the cursor at the centre of the beachball using &#039;&#039;&#039;&#039;&#039;Shift S &amp;gt;Cursor to selected&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Note:  In this case the origin of the beachball will be at the centre of the beachball, but if it is not then you can position the origin by selecting the beachball, select Object from the menu bar, then &#039;&#039;&#039;Transform -&amp;gt;Origin to geometry&#039;&#039;&#039;.  Sometimes it is useful to have the origin elsewhere but for this example we need it at the centre of the beachball.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Add a lattice and call it b.r.beachball.  The name can be anything but must be preceded by &amp;quot;b.r.&amp;quot; and should be in lowercase.  The centre of the lattice should be at the centre of the beachball.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Animation Tute-b.r.beachball lattice.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Set up the parent-child relationships ==&lt;br /&gt;
&lt;br /&gt;
=== Make the beachball a child of b.r.beachball ===&lt;br /&gt;
&lt;br /&gt;
*Select the beachball and, while holding down the ShiftKey, select b.r.beachball.&lt;br /&gt;
*Press Ctrl P and then select the Object option.  This makes the beachball mesh a child of b.r.beachball.  This is important because when we animate b.r.beachball, the beachball mesh will animate as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Animation Tute-Parenting the beachball.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Make the b.r.beachball lattice a child of b.r.main ===&lt;br /&gt;
&lt;br /&gt;
All lattices and their children must be a child of b.r.main for the exporter to work.&lt;br /&gt;
&lt;br /&gt;
*Now select b.r.beachball and while holding down the ShiftKey select b.r.main.&lt;br /&gt;
*Press Ctrl P and then select the Object option.  This makes the b.r.beachball lattice a child of b.r.main.&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Animation Tute-Parenting the beachball lattice.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Outliner Window in Blender will show the parent-child relations as well as other attibutes.  It should look like the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Animation Tute-Outliner window.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Set up the animation period ==&lt;br /&gt;
&lt;br /&gt;
Now we are ready to animate the beachball.  Our animation consists of the ball bouncing up and down and spinning at the same time.&lt;br /&gt;
&lt;br /&gt;
*Arrange the screen layout as you wish but make sure you include a Timeline window.  This is my layout for this session that has the Timeline Window at the bottom.&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Animation Tute-Screen layout.jpg]]&lt;br /&gt;
&lt;br /&gt;
*In the Timeline window, change the End frame to 30 and set the current frame to 1.  For Trainz the animation rate is 30 frames per second.&lt;br /&gt;
*Go to the Render window and set the playback rate to 30 fps. &lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Animation Tute-Frame rate.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Animate the lattices ==&lt;br /&gt;
&lt;br /&gt;
Animation uses what are called I frames to make a &amp;quot;snapshot&amp;quot; of the rotation and position of lattices.  This sequence creates those I frames in order from the first to last frame.  The last frame, 30 in our case, is also deemed to be frame 0 (zero).  This makes the animation loop.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This is the tricky bit.  Read through the sequence first so you have an idea of what is to be done.  The sequence is important.  If you make a mistake then delete I frames so that the last I frame is at frame 1.  Creating I frames is done by using the letter i key on the keyboard.  This brings up a menu.&#039;&#039;&#039;  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
*Go back to the 3D View.&lt;br /&gt;
*Select the lattice b.r.beachball.&lt;br /&gt;
*Move the cursor to that lattice by pressing &#039;&#039;&#039;&#039;&#039;Shift S -&amp;gt;Cursor to selected&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*Bring up the Properties menu by pressing or toggling N (the cursor has to be in the 3D View for this to work).&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
In the Transform area of the Properties menu, the Z location of the selected object (b.r.beachball) should be 1.0.  If it slightly out then just change it manually.&lt;br /&gt;
Similarly in the 3D Cursor location in the Properties menu the Z location should also be 1.0.&lt;br /&gt;
&lt;br /&gt;
We are now going to insert the animation keyframes and for this to work the mouse cursor must be in the 3D View window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*With b.r.beachball selected, press I to bring up the Insert Keyframe Menu.&lt;br /&gt;
&lt;br /&gt;
*Select LocRot (location, rotation).  You may notice the transform location windows changing to a yellow colour and the name of the selected object changing to an orange colour.  This means that an I frame exists for that object at this particular frame.  Frame 1 in this case.&lt;br /&gt;
&lt;br /&gt;
*In the Timeline window, change the frame position from frame 1 to frame 15 by typing the number in the Current Frame position.&lt;br /&gt;
&lt;br /&gt;
*With b.r.beachball still selected, in the &#039;&#039;&#039;&#039;&#039;Properties -&amp;gt; Transform -&amp;gt; Location menu&#039;&#039;&#039;&#039;&#039;, change the Z location from 1.0 to 2.0. You can just click on the 1.0 value and type the change.&lt;br /&gt;
&lt;br /&gt;
*Press the Enter key and you will see the lattice and the beachball mesh move upwards.  Note you can also move the lattice by pressing G and then Z and dragging it upwards in the Z axis.&lt;br /&gt;
&lt;br /&gt;
*With b.r.beachball still selected, in the &#039;&#039;&#039;&#039;&#039;Properties -&amp;gt; Transform -&amp;gt; Rotation menu&#039;&#039;&#039;&#039;&#039;, change the Z rotation value from 0 to 180.  You will not see any visible change but that&#039;s OK.&lt;br /&gt;
&lt;br /&gt;
*Back in the 3D Window press I and select LocRot.  This inserts our second I frame at frame 15.&lt;br /&gt;
&lt;br /&gt;
*In the Timeline Window, change the frame position from frame 15 to frame 30 by typing the number in the Current Frame position or by clicking on the Jump to Last Frame button ( &amp;gt;&amp;gt;| ).&lt;br /&gt;
&lt;br /&gt;
*In the Transform Window change the b.r.beachball Z location back to 1.0 and the Z rotation to 360.&lt;br /&gt;
&lt;br /&gt;
*Back in the 3D Window press I and select LocRot.  This inserts our last I frame at frame 30.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following shows the frames for the beachball lattice.  The frames at 1, 15 and 30 are in yellow.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Anim Tute-Beachball lattice animation frames.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running the animation ==&lt;br /&gt;
 &lt;br /&gt;
To test the animation click on the right pointing arrow (Play) key in the Timeline Window.  You might want to change to solid or texture view to see it better.  The ball should bounce every second and do a full rotation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporting ==&lt;br /&gt;
&lt;br /&gt;
*Save the Blender file.&lt;br /&gt;
*To export, select &#039;&#039;&#039;&#039;&#039;File -&amp;gt;Export -&amp;gt; Trainz Mesh and Animation&#039;&#039;&#039;&#039;&#039;.  In the dialog box make sure the Export Animation Data checkbox is checked.  &lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Anim Tute-Exporting.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CONFIG.TXT ==&lt;br /&gt;
&lt;br /&gt;
The config.txt for the asset should look something like this:&lt;br /&gt;
&lt;br /&gt;
 kuid                                    &amp;lt;kuid:xxx:xxx&amp;gt;&lt;br /&gt;
 username                                &amp;quot;AAA Bouncing Beachball&amp;quot;&lt;br /&gt;
 description                             &amp;quot;Beachball animation scenery asset&amp;quot;&lt;br /&gt;
 trainz-build                            3.5&lt;br /&gt;
 kind                                    &amp;quot;scenery&amp;quot;&lt;br /&gt;
 category-era                            &amp;quot;1800s&amp;quot;&lt;br /&gt;
 category-class                          &amp;quot;XVG&amp;quot;&lt;br /&gt;
 category-region                         &amp;quot;00&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
   default&lt;br /&gt;
   {&lt;br /&gt;
     mesh                                &amp;quot;beachball.im&amp;quot;&lt;br /&gt;
     light                               1&lt;br /&gt;
     auto-create                         1&lt;br /&gt;
     anim                                &amp;quot;beachball.kin&amp;quot;&lt;br /&gt;
     animation-loop-speed                1.00&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 thumbnails&lt;br /&gt;
 {&lt;br /&gt;
   0&lt;br /&gt;
   {&lt;br /&gt;
     image                               &amp;quot;$screenshot$.jpg&amp;quot;&lt;br /&gt;
     width                               240&lt;br /&gt;
     height                              180&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Note the use of the tags &amp;quot;anim&amp;quot; and &amp;quot;animation-loop-speed&amp;quot;.  A value of 1 for animation-loop-speed gives normal animation.  You can slow or speed up the animation with different values.&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
This has been a very simple introduction to animation for Trainz with Blender.  The key points to remember are:&lt;br /&gt;
&lt;br /&gt;
:*Meshes cannot be animated for Trainz.  Create a lattice for each mesh, make the mesh a child of the lattice and animate the lattice.&lt;br /&gt;
:*Lattices must be identified with the &amp;quot;b.r.&amp;quot; naming convention. &lt;br /&gt;
:*All lattices must be a child of b.r.main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The beachball in Trainz Surveyor =&lt;br /&gt;
&lt;br /&gt;
Here is the beachball in Trainz Surveyor bouncing next to another test asset of a simple lighthouse with a flashing cursor.&lt;br /&gt;
&lt;br /&gt;
[[Image:Blender Simple Anim Tute-In Trainz.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to guides]]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8409</id>
		<title>HowTo/Export from Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8409"/>
		<updated>2015-07-09T04:20:08Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Introduction of Blender */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FUN-beg}}&lt;br /&gt;
== Introduction of Blender ==&lt;br /&gt;
&lt;br /&gt;
{{plain link|http://www.blender.org |Blender}} is an open source free {{Wp|3D graphics|3D modelling}} application or tool supported by the contribution of programming and development time by the user community.  For more information on Blender and its capabilities, please visit the {{plain link|http://www.blender.org |Blender website}}.  Blender evolves rapidly and it is not uncommon to see releases about every two months. As of 08 July, 2015, the current version is 2.75a. For those working with a tutorial written based upon an older version of Blender, all past versions of Blender can be downloaded on the [http://download.blender.org/release// Blender past releases] page. &lt;br /&gt;
&lt;br /&gt;
Blender is extendable through the use of &amp;quot;add-ons&amp;quot; produced either by the Blender Foundation or by Blender users.  One of those add-ons is the Trainz Blender exporter that was built and is maintained by USCHI0815 (Torsten).  Torsten usually announces updates to the Exporter through the Trainz Content Creation Support forum.  As of 24 April, 2014, the current version of the Blender exporter is V0.96.&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
===Caveat===&lt;br /&gt;
[http://www.blender.org Blender] is not currently supported by N3V as an officially sanctioned modeling platform for producing Trainz assets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== About This Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The scope of this tutorial has been extended to include installation of Blender and installation of the Blender Exporter since this has been an issue discussed several times in the N3V Content Creation forum.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
To export to Trainz you need the following:&lt;br /&gt;
&lt;br /&gt;
:*  Trainz (TS09 or later preferred)&lt;br /&gt;
:*  [[Downloads|TrainzMeshImporter.exe]].   This is provided by N3V.&lt;br /&gt;
:*  [http://www.blender.org/download/ Blender] (v. 2.57 or later is recommended).&lt;br /&gt;
:*  [https://bitbucket.org/uschi0815/blender-exporter-for-trainz/downloads/ The Blender Exporter]. &lt;br /&gt;
:*  Windows XP, Vista, Windows 7 (32 or 64 bit) or Windows 8 (32 or 64 bit) or Mac OS X (32 or 64 bits).&lt;br /&gt;
&lt;br /&gt;
=== Blender Installation Notes ===&lt;br /&gt;
&lt;br /&gt;
Blender is available for a number of operating systems including Windows XP, Windows Vista and Windows 7.  Both 32 bit and 64 bit versions are available.&lt;br /&gt;
You can choose either the installer version or a zip archive.  Please read any notes on the Blender.org download page: particularly if you are upgrading from a previous version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installer Version ===&lt;br /&gt;
&lt;br /&gt;
The Installer Version is the easiest way to install Blender but there can be complications.  If you install Blender into the default directory you should choose &amp;quot;Use Application Data Directory&amp;quot; during installation of Blender. Otherwise it might not be possible to save your preferred Exporter options due to insufficient permissions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blender Zip Archive Version ===&lt;br /&gt;
&lt;br /&gt;
The zip archive version allows you to unzip the entire Blender folder structure and locate it in any location that suits you.  The only drawback is that you will need to set up your own links to the Blender executable (Blender.exe).&lt;br /&gt;
&lt;br /&gt;
== Installing the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Blender exporter add-on must be installed in the &amp;quot;scripts\addons&amp;quot; area of the Blender data space. The following process will install it in the correct location.&lt;br /&gt;
&lt;br /&gt;
=== Install Blender Exporter for Trainz ===&lt;br /&gt;
&lt;br /&gt;
:* Download the exporter.&lt;br /&gt;
:* Start Blender.&lt;br /&gt;
:* Open a new project(File -&amp;gt; New).&lt;br /&gt;
:* Open User Preferences(File -&amp;gt; User Preferences...).&lt;br /&gt;
:* Select Add-Ons panel and press button &amp;quot;Install from file...&amp;quot; down at the panel button bar.&lt;br /&gt;
:* Select and install downloaded file: you don&#039;t need to extract it.&lt;br /&gt;
:* Enable &amp;quot;TRAINZ Exporter&amp;quot; in Add-On list and press button &amp;quot;Save As Default&amp;quot; to keep it enabled for all subsequent Blender starts.&lt;br /&gt;
&lt;br /&gt;
=== Install the N3V TrainzMeshImporter ===&lt;br /&gt;
&lt;br /&gt;
:* Download the [http://online.ts2009.com/mediaWiki/index.php5/Downloads TrainzMeshImporter.exe].  The file is in the RAR format that can be extracted by most zip file management programs.&lt;br /&gt;
:* Before using the exporter you must copy the TrainzMeshExporter.exe to the same location as the Blender Exporter add-on.  The following will help find that location:&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and leave the default cube mesh in place.&lt;br /&gt;
:* If necessary, open the console window so you can read the error messages. In versions 2.5 through 2.63a, the console window is opened using the &amp;quot;toggle system console&amp;quot; menu entry in the &amp;quot;help&amp;quot; menu in the Blender menu bar. Beginning with version 2.64, the &amp;quot;toggle system console&amp;quot; menu has been moved to the &amp;quot;window&amp;quot; menu in the Blender menu bar. Those running a Blender version 2.49 or earlier can disregard this step, as the system console is in a window that is open whenever Blender is active. &lt;br /&gt;
:* Go to File-&amp;gt;Export and select &amp;quot;Trainz Mesh and Animation&amp;quot;.  Use the default settings but make sure that the save location is a temporary or working space.&lt;br /&gt;
:* The Exporter will complain about a missing file in a specific folder.   The missing file is TrainzMeshImporter and the folder name is the location you need.&lt;br /&gt;
:* The location is usually in the form of &amp;quot;ERROR&amp;quot;  file &amp;quot;C:Users\your name\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons\TrainzMeshExporter.exe&amp;quot; not found&amp;quot;.  This example is typical of using the default Blender Installer.  If you chose to install Blender using the zip archive then the location will be different.&lt;br /&gt;
:* Copy TrainzMeshExporter.exe to the location provided.  If you cannot access the AppData folder see the [http://online.ts2009.com/mediaWiki/index.php5?title=HowTo/Export_from_Blender&amp;amp;action=submit#Additional_Notes Additional Notes] section for help.&lt;br /&gt;
:* Once you have copied TrainzMeshExporter.exe to the correct location retry the export.&lt;br /&gt;
&lt;br /&gt;
== Exporting an Asset ==&lt;br /&gt;
&lt;br /&gt;
The creation of an asset suitable for Trainz is a long and complex process.  For the purposes of this tutorial we will only export the standard Blender cube.  Some knowledge of Blender and creation of assets for Trainz purposes is assumed.&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and save the default cube as &amp;quot;cube.blend&amp;quot; in your preferred working location.&lt;br /&gt;
:* Create a simple material such as &amp;quot;cube.m.onetex&amp;quot; and allocate a simple colour texture file. For the purpose of this tutorial leave the default mapping technique to &amp;quot;generated&amp;quot;.  This will cause an error.&lt;br /&gt;
:* UV map the cube to the texture.&lt;br /&gt;
:* Save the Blender file.&lt;br /&gt;
:* Go to File-&amp;gt;Export and select Trainz Mesh and Animation.&lt;br /&gt;
:* The dialog box that appears gives a output save location for the XML, log, texture description and other files produced by the process.  Select your preferred location.&lt;br /&gt;
:* All the other options can be left as default.  If you were exporting a mesh that included animation, then you would also select &amp;quot;Export Animation Data&amp;quot;.&lt;br /&gt;
:* When you are ready, select &amp;quot;Export Trainz&amp;quot; in the top right hand corner.&lt;br /&gt;
:* This export process will fail with an error since the &amp;quot;generated&amp;quot; mapping option for textures is not supported when using an image file.  Go back to the Texture section and change the mapping option to UV and then export again.  This time it should export correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporter Output ==&lt;br /&gt;
&lt;br /&gt;
=== Files Created ===&lt;br /&gt;
The Exporter produces:&lt;br /&gt;
&lt;br /&gt;
:* An XML file.  This is used by TrainzMeshImporter.&lt;br /&gt;
:* The IM mesh file required by Trainz.&lt;br /&gt;
:* The texture description files (nnn.texture.txt) required by Trainz.&lt;br /&gt;
:* The KIN animation file required by Trainz if animation is used.&lt;br /&gt;
:* A log of the export process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error Reporting ===&lt;br /&gt;
Errors are reported in the Blender System Console and the Exporter log. Errors will prevent the production of the target IM file and therefore must be addressed.&lt;br /&gt;
Typical errors are:&lt;br /&gt;
&lt;br /&gt;
==== Mesh Errors ====&lt;br /&gt;
&lt;br /&gt;
:*Objects without a parent where a root bone exists.&lt;br /&gt;
&lt;br /&gt;
==== Material Related Errors ====&lt;br /&gt;
&lt;br /&gt;
:* No UV layer for UV mapped objects. Blender usually creates a default.&lt;br /&gt;
:* Use of the same material for both single and double sided meshes.  Recommend only using single sided meshes.&lt;br /&gt;
:* Objects without an assigned material.  Recommend assigning a material for each object.&lt;br /&gt;
:* Faces without a material in an object.  The faces will have been collected into a Vertex Group to enable correction. This error can also be caused by material slots in blender to which no material is assigned.   &lt;br /&gt;
:* Use of similar material names if character case is ignored.  i.e. &amp;quot;Black&amp;quot; and &amp;quot;black&amp;quot; are considered the same by Trainz.&lt;br /&gt;
:* Not using UV mapping for textures that are either using alpha, normal or specular.&lt;br /&gt;
:* Not using UV or reflect mapping for diffuse textures.&lt;br /&gt;
&lt;br /&gt;
==== Animation Errors ====&lt;br /&gt;
&lt;br /&gt;
:* More than one root bone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
Warnings are basically flaws or possible flaws that the user may wish to address.  Warnings do not prevent production of the IM output files. Some typicals warnings include:&lt;br /&gt;
&lt;br /&gt;
==== Animation Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Possible incorrect location and rotation of root bone.&lt;br /&gt;
:* Bones not found or no animation data found.&lt;br /&gt;
:* Events not found or unrecognised.&lt;br /&gt;
:* Event frame numbers in wrong positions.&lt;br /&gt;
&lt;br /&gt;
==== Mesh Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Vertices influenced by more than four vertex groups.&lt;br /&gt;
&lt;br /&gt;
==== Name Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Unrecommended characters.  Material, texture, object and path names should only be composed of a-z, A-Z, 0-9 or -_./\ characters.  A typical error is use of a space character in a path name.  The Exporter will change Blender file names that include upper case letters to lower case letters.  Generally, it is recommended you avoid the use of upper case characters in names.&lt;br /&gt;
&lt;br /&gt;
==== Material Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Surfaceless faces in an object.  The Exporter will gather these faces and put them into a Vertex Group to aid identification. The Vertex Group can be found in the triangle panel associated with the Safety Valve object.&lt;br /&gt;
:* Objects exported with double sided faces.   This will become an error if a material is used for both single and double sided objects.&lt;br /&gt;
:* Material renamed.  If the name does not match one of the standard Trainz material names then the Exporter will try and effect a solution.  Typically a name such as &amp;quot;black&amp;quot; will be renamed &amp;quot;blackm.onetex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Export Log ===&lt;br /&gt;
&lt;br /&gt;
The Exporter Log contains a record of events during the export process including errors and warnings.  The numTriangles report is the number of polygons (aka polys) in the mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Material Recognition by the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Exporter tries to identify materials in use by the asset mesh and will provide a warning if the detected material decoration varies from that declared in the Blender file.  The term &amp;quot;material decoration&amp;quot; is one of the standard Trainz material names such as &amp;quot;m.onetext&amp;quot; or &amp;quot;m.tbumptex&amp;quot;. The following decision process, provided by Torsten, may be useful for developers.&lt;br /&gt;
&lt;br /&gt;
The decision which material decoration is used is made by the texturing schema used for the material:&lt;br /&gt;
&lt;br /&gt;
: no texture used -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: one texture used:&lt;br /&gt;
:: invalid texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: reflection texture  -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: two textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse &amp;amp; reflection -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: three textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha &amp;amp; reflection -&amp;gt;&#039;&#039;&#039; m.gloss&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: normal texture used:&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; alpha &amp;amp; no reflection -&amp;gt; &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; reflection &amp;amp; no alpha -&amp;gt; &#039;&#039;&#039;m.tbumpgloss&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; no alpha &amp;amp; no reflection-&amp;gt; &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As material &#039;&#039;&#039;m.notex&#039;&#039;&#039; causes problems with specific assets&#039;&#039;&#039;, m.onetex&#039;&#039;&#039; is used instead. It also works perfectly without any texture.&lt;br /&gt;
The problem with &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039; and &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is that, besides the usage of an alpha texture (which is not used for &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039;), both use a diffuse and normal texture. In this case &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is chosen.&lt;br /&gt;
&lt;br /&gt;
Generally, you can use any material decoration you want. The script does not change a syntactically correct material decoration(e.g. Material&#039;&#039;&#039;m.billboard&#039;&#039;&#039; would pass unchanged).  It only drops a message to remind you that you either use an unsupported material(as warning) or that it had chosen another material(as info).&lt;br /&gt;
&lt;br /&gt;
If you check the issue and find it to be OK than you can safely ignore those messages.&lt;br /&gt;
&lt;br /&gt;
Blenders texture influences are nearly equivalent to MAX material maps. Because diffuse textures and reflection textures both influence diffuse color, the decision between them is made by checking texture mapping coordinates to:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;MAX map -&amp;gt; Blender texture influence&#039;&#039;&#039;&lt;br /&gt;
: Ambient Color -&amp;gt; Shading Ambient&lt;br /&gt;
: Diffuse Color -&amp;gt; Diffuse Color &amp;amp; UV mapping&lt;br /&gt;
: Specular Color -&amp;gt; Specular Color&lt;br /&gt;
: Specular Level -&amp;gt; Specular Intensity&lt;br /&gt;
: Glossiness -&amp;gt; Specular Hardness&lt;br /&gt;
: Self-Illumination -&amp;gt; Shading Emit&lt;br /&gt;
: Opacity -&amp;gt; Diffuse Alpha&lt;br /&gt;
: Filter Color -&amp;gt; Diffuse Translucency&lt;br /&gt;
: Bump -&amp;gt; Geometry Normal&lt;br /&gt;
: Reflection -&amp;gt; Diffuse Color &amp;amp; Reflection mapping &lt;br /&gt;
: Refraction -&amp;gt; not available(not found?)&lt;br /&gt;
: Displacement -&amp;gt; Geometry Displacement&lt;br /&gt;
&lt;br /&gt;
== Torsten&#039;s Hints  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These hints are reproduced from the Exporter script since many will not want to edit or view the actual script contents.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Trainz models you can have two kinds of special objects: attachment points and bones. For attachment points, the exporter expects objects of type &amp;quot;Empty&amp;quot;. For bones, objects of type &amp;quot;Lattice&amp;quot; and &amp;quot;Armature&amp;quot; will be accepted.  All of them need to be named according the naming conventions in effect for attachements( a.* ) and bones( b.r.* ). Objects of other type and objects with proper type but names not matching this conventions will be ignored as attachment points or bones.&lt;br /&gt;
&lt;br /&gt;
If you want to export animations with events, than you have to create a Blender TX object and enter the lines as you would do to create an event file. By renaming this object to &amp;quot;events&amp;quot; you ensure the exporter will not ignore your event list.&lt;br /&gt;
&lt;br /&gt;
It is possible to make parent-child-relations between meshes to simplify the design process. However, the chain must be end with a valid parent bone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Blender Data Files ===&lt;br /&gt;
 &lt;br /&gt;
Blender keeps certain data files, such as add-on utilities, in a special location. This has given Trainz content creators some difficulties due to access rights. If you used the Blender Installer then this is usually in the Windows logged on user space.&lt;br /&gt;
&lt;br /&gt;
Say, for example, your user name is Patrick, then the location is likely to be similiar to &amp;quot;C:\Users\Patrick\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you cannot see this folder in the user folder then it is likely the folder has been hidden by Windows.  You can unhide folders in the Windows Explorer by going to Tools-&amp;gt;Folder Options-&amp;gt;View and selecting &amp;quot;Show hidden files, folders and drives&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under The Hood or, How the Exporter Works ==&lt;br /&gt;
&lt;br /&gt;
Basically the Blender export process works in three phases:&lt;br /&gt;
&lt;br /&gt;
:* Phase 1 is the checking process where the Exporter does some validation.  Where it can, the Exporter will make minor corrections and just issue a warning.  Warnings do not stop the process but an error will.  The warnings and errors should provide enough information to enable correction.&lt;br /&gt;
:* Phase 2 is the creation of the XML file required by the TrainzMeshImporter.  The XML file is a text file using a common language used by many applications.  It is also N3V&#039;s preferred import format.&lt;br /&gt;
:* On succession completion of the first two phases, the Exporter passes control to the TrainzMeshImport program which takes the XML file plus other information and produces the IM mesh file used by Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
Many thanks to USCHI0815 (Torsten) for his time and effort that went into producing and supporting the Blender Exporter.  Without it there would be no Blender models in Trainz.&lt;br /&gt;
&lt;br /&gt;
Thanks to Mick_Berg and Jananton for their comments, and to Mick_Berg for his [http://www.mickberg.com/blenderexport1.html Blender installation tutorial].&lt;br /&gt;
&lt;br /&gt;
== Tutorial Updates ==&lt;br /&gt;
Please feel free to update as necessary and correct errors in this tutorial.  It is a WiKi contribution and intended to be maintained this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Material Types]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
{{FUN-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8408</id>
		<title>HowTo/Export from Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8408"/>
		<updated>2015-07-09T04:18:33Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FUN-beg}}&lt;br /&gt;
== Introduction of Blender ==&lt;br /&gt;
&lt;br /&gt;
{{plain link|http://www.blender.org |Blender}} is an open source free {{Wp|3D graphics|3D modelling}} application or tool supported by the contribution of programming and development time by the user community.  For more information on Blender and its capabilities, please visit the {{plain link|http://www.blender.org |Blender website}}.  Blender evolves rapidly and it is not uncommon to see releases about every two months. As of 08 July, 2015, the current version is 2.75a. For those working with a tutorial written based upon an older version of Blender, all past versions of Blender can be downloaded on the [http://download.blender.org/release// Blender past releases] page. &lt;br /&gt;
&lt;br /&gt;
Blender is extendable through the use of &amp;quot;add-ons&amp;quot; produced either by the Blender Foundation or by Blender users.  One of those add-ons is the Trainz Blender exporter that was built and is maintained by USCHI0815 (Torsten).  Torsten usually announces updates to the Exporter through the Trainz Content Creation Support forum.  As of 24 April, 2014, the current version of the Blender exporter is V0.96.&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
===Caveat===&lt;br /&gt;
[http://www.blender.org Blender] is not currently supported by N3V as an official modeling source for Trainz, however third-party tools exist for this purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== About This Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The scope of this tutorial has been extended to include installation of Blender and installation of the Blender Exporter since this has been an issue discussed several times in the N3V Content Creation forum.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
To export to Trainz you need the following:&lt;br /&gt;
&lt;br /&gt;
:*  Trainz (TS09 or later preferred)&lt;br /&gt;
:*  [[Downloads|TrainzMeshImporter.exe]].   This is provided by N3V.&lt;br /&gt;
:*  [http://www.blender.org/download/ Blender] (v. 2.57 or later is recommended).&lt;br /&gt;
:*  [https://bitbucket.org/uschi0815/blender-exporter-for-trainz/downloads/ The Blender Exporter]. &lt;br /&gt;
:*  Windows XP, Vista, Windows 7 (32 or 64 bit) or Windows 8 (32 or 64 bit) or Mac OS X (32 or 64 bits).&lt;br /&gt;
&lt;br /&gt;
=== Blender Installation Notes ===&lt;br /&gt;
&lt;br /&gt;
Blender is available for a number of operating systems including Windows XP, Windows Vista and Windows 7.  Both 32 bit and 64 bit versions are available.&lt;br /&gt;
You can choose either the installer version or a zip archive.  Please read any notes on the Blender.org download page: particularly if you are upgrading from a previous version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installer Version ===&lt;br /&gt;
&lt;br /&gt;
The Installer Version is the easiest way to install Blender but there can be complications.  If you install Blender into the default directory you should choose &amp;quot;Use Application Data Directory&amp;quot; during installation of Blender. Otherwise it might not be possible to save your preferred Exporter options due to insufficient permissions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blender Zip Archive Version ===&lt;br /&gt;
&lt;br /&gt;
The zip archive version allows you to unzip the entire Blender folder structure and locate it in any location that suits you.  The only drawback is that you will need to set up your own links to the Blender executable (Blender.exe).&lt;br /&gt;
&lt;br /&gt;
== Installing the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Blender exporter add-on must be installed in the &amp;quot;scripts\addons&amp;quot; area of the Blender data space. The following process will install it in the correct location.&lt;br /&gt;
&lt;br /&gt;
=== Install Blender Exporter for Trainz ===&lt;br /&gt;
&lt;br /&gt;
:* Download the exporter.&lt;br /&gt;
:* Start Blender.&lt;br /&gt;
:* Open a new project(File -&amp;gt; New).&lt;br /&gt;
:* Open User Preferences(File -&amp;gt; User Preferences...).&lt;br /&gt;
:* Select Add-Ons panel and press button &amp;quot;Install from file...&amp;quot; down at the panel button bar.&lt;br /&gt;
:* Select and install downloaded file: you don&#039;t need to extract it.&lt;br /&gt;
:* Enable &amp;quot;TRAINZ Exporter&amp;quot; in Add-On list and press button &amp;quot;Save As Default&amp;quot; to keep it enabled for all subsequent Blender starts.&lt;br /&gt;
&lt;br /&gt;
=== Install the N3V TrainzMeshImporter ===&lt;br /&gt;
&lt;br /&gt;
:* Download the [http://online.ts2009.com/mediaWiki/index.php5/Downloads TrainzMeshImporter.exe].  The file is in the RAR format that can be extracted by most zip file management programs.&lt;br /&gt;
:* Before using the exporter you must copy the TrainzMeshExporter.exe to the same location as the Blender Exporter add-on.  The following will help find that location:&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and leave the default cube mesh in place.&lt;br /&gt;
:* If necessary, open the console window so you can read the error messages. In versions 2.5 through 2.63a, the console window is opened using the &amp;quot;toggle system console&amp;quot; menu entry in the &amp;quot;help&amp;quot; menu in the Blender menu bar. Beginning with version 2.64, the &amp;quot;toggle system console&amp;quot; menu has been moved to the &amp;quot;window&amp;quot; menu in the Blender menu bar. Those running a Blender version 2.49 or earlier can disregard this step, as the system console is in a window that is open whenever Blender is active. &lt;br /&gt;
:* Go to File-&amp;gt;Export and select &amp;quot;Trainz Mesh and Animation&amp;quot;.  Use the default settings but make sure that the save location is a temporary or working space.&lt;br /&gt;
:* The Exporter will complain about a missing file in a specific folder.   The missing file is TrainzMeshImporter and the folder name is the location you need.&lt;br /&gt;
:* The location is usually in the form of &amp;quot;ERROR&amp;quot;  file &amp;quot;C:Users\your name\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons\TrainzMeshExporter.exe&amp;quot; not found&amp;quot;.  This example is typical of using the default Blender Installer.  If you chose to install Blender using the zip archive then the location will be different.&lt;br /&gt;
:* Copy TrainzMeshExporter.exe to the location provided.  If you cannot access the AppData folder see the [http://online.ts2009.com/mediaWiki/index.php5?title=HowTo/Export_from_Blender&amp;amp;action=submit#Additional_Notes Additional Notes] section for help.&lt;br /&gt;
:* Once you have copied TrainzMeshExporter.exe to the correct location retry the export.&lt;br /&gt;
&lt;br /&gt;
== Exporting an Asset ==&lt;br /&gt;
&lt;br /&gt;
The creation of an asset suitable for Trainz is a long and complex process.  For the purposes of this tutorial we will only export the standard Blender cube.  Some knowledge of Blender and creation of assets for Trainz purposes is assumed.&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and save the default cube as &amp;quot;cube.blend&amp;quot; in your preferred working location.&lt;br /&gt;
:* Create a simple material such as &amp;quot;cube.m.onetex&amp;quot; and allocate a simple colour texture file. For the purpose of this tutorial leave the default mapping technique to &amp;quot;generated&amp;quot;.  This will cause an error.&lt;br /&gt;
:* UV map the cube to the texture.&lt;br /&gt;
:* Save the Blender file.&lt;br /&gt;
:* Go to File-&amp;gt;Export and select Trainz Mesh and Animation.&lt;br /&gt;
:* The dialog box that appears gives a output save location for the XML, log, texture description and other files produced by the process.  Select your preferred location.&lt;br /&gt;
:* All the other options can be left as default.  If you were exporting a mesh that included animation, then you would also select &amp;quot;Export Animation Data&amp;quot;.&lt;br /&gt;
:* When you are ready, select &amp;quot;Export Trainz&amp;quot; in the top right hand corner.&lt;br /&gt;
:* This export process will fail with an error since the &amp;quot;generated&amp;quot; mapping option for textures is not supported when using an image file.  Go back to the Texture section and change the mapping option to UV and then export again.  This time it should export correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporter Output ==&lt;br /&gt;
&lt;br /&gt;
=== Files Created ===&lt;br /&gt;
The Exporter produces:&lt;br /&gt;
&lt;br /&gt;
:* An XML file.  This is used by TrainzMeshImporter.&lt;br /&gt;
:* The IM mesh file required by Trainz.&lt;br /&gt;
:* The texture description files (nnn.texture.txt) required by Trainz.&lt;br /&gt;
:* The KIN animation file required by Trainz if animation is used.&lt;br /&gt;
:* A log of the export process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error Reporting ===&lt;br /&gt;
Errors are reported in the Blender System Console and the Exporter log. Errors will prevent the production of the target IM file and therefore must be addressed.&lt;br /&gt;
Typical errors are:&lt;br /&gt;
&lt;br /&gt;
==== Mesh Errors ====&lt;br /&gt;
&lt;br /&gt;
:*Objects without a parent where a root bone exists.&lt;br /&gt;
&lt;br /&gt;
==== Material Related Errors ====&lt;br /&gt;
&lt;br /&gt;
:* No UV layer for UV mapped objects. Blender usually creates a default.&lt;br /&gt;
:* Use of the same material for both single and double sided meshes.  Recommend only using single sided meshes.&lt;br /&gt;
:* Objects without an assigned material.  Recommend assigning a material for each object.&lt;br /&gt;
:* Faces without a material in an object.  The faces will have been collected into a Vertex Group to enable correction. This error can also be caused by material slots in blender to which no material is assigned.   &lt;br /&gt;
:* Use of similar material names if character case is ignored.  i.e. &amp;quot;Black&amp;quot; and &amp;quot;black&amp;quot; are considered the same by Trainz.&lt;br /&gt;
:* Not using UV mapping for textures that are either using alpha, normal or specular.&lt;br /&gt;
:* Not using UV or reflect mapping for diffuse textures.&lt;br /&gt;
&lt;br /&gt;
==== Animation Errors ====&lt;br /&gt;
&lt;br /&gt;
:* More than one root bone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
Warnings are basically flaws or possible flaws that the user may wish to address.  Warnings do not prevent production of the IM output files. Some typicals warnings include:&lt;br /&gt;
&lt;br /&gt;
==== Animation Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Possible incorrect location and rotation of root bone.&lt;br /&gt;
:* Bones not found or no animation data found.&lt;br /&gt;
:* Events not found or unrecognised.&lt;br /&gt;
:* Event frame numbers in wrong positions.&lt;br /&gt;
&lt;br /&gt;
==== Mesh Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Vertices influenced by more than four vertex groups.&lt;br /&gt;
&lt;br /&gt;
==== Name Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Unrecommended characters.  Material, texture, object and path names should only be composed of a-z, A-Z, 0-9 or -_./\ characters.  A typical error is use of a space character in a path name.  The Exporter will change Blender file names that include upper case letters to lower case letters.  Generally, it is recommended you avoid the use of upper case characters in names.&lt;br /&gt;
&lt;br /&gt;
==== Material Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Surfaceless faces in an object.  The Exporter will gather these faces and put them into a Vertex Group to aid identification. The Vertex Group can be found in the triangle panel associated with the Safety Valve object.&lt;br /&gt;
:* Objects exported with double sided faces.   This will become an error if a material is used for both single and double sided objects.&lt;br /&gt;
:* Material renamed.  If the name does not match one of the standard Trainz material names then the Exporter will try and effect a solution.  Typically a name such as &amp;quot;black&amp;quot; will be renamed &amp;quot;blackm.onetex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Export Log ===&lt;br /&gt;
&lt;br /&gt;
The Exporter Log contains a record of events during the export process including errors and warnings.  The numTriangles report is the number of polygons (aka polys) in the mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Material Recognition by the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Exporter tries to identify materials in use by the asset mesh and will provide a warning if the detected material decoration varies from that declared in the Blender file.  The term &amp;quot;material decoration&amp;quot; is one of the standard Trainz material names such as &amp;quot;m.onetext&amp;quot; or &amp;quot;m.tbumptex&amp;quot;. The following decision process, provided by Torsten, may be useful for developers.&lt;br /&gt;
&lt;br /&gt;
The decision which material decoration is used is made by the texturing schema used for the material:&lt;br /&gt;
&lt;br /&gt;
: no texture used -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: one texture used:&lt;br /&gt;
:: invalid texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: reflection texture  -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: two textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse &amp;amp; reflection -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: three textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha &amp;amp; reflection -&amp;gt;&#039;&#039;&#039; m.gloss&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: normal texture used:&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; alpha &amp;amp; no reflection -&amp;gt; &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; reflection &amp;amp; no alpha -&amp;gt; &#039;&#039;&#039;m.tbumpgloss&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; no alpha &amp;amp; no reflection-&amp;gt; &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As material &#039;&#039;&#039;m.notex&#039;&#039;&#039; causes problems with specific assets&#039;&#039;&#039;, m.onetex&#039;&#039;&#039; is used instead. It also works perfectly without any texture.&lt;br /&gt;
The problem with &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039; and &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is that, besides the usage of an alpha texture (which is not used for &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039;), both use a diffuse and normal texture. In this case &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is chosen.&lt;br /&gt;
&lt;br /&gt;
Generally, you can use any material decoration you want. The script does not change a syntactically correct material decoration(e.g. Material&#039;&#039;&#039;m.billboard&#039;&#039;&#039; would pass unchanged).  It only drops a message to remind you that you either use an unsupported material(as warning) or that it had chosen another material(as info).&lt;br /&gt;
&lt;br /&gt;
If you check the issue and find it to be OK than you can safely ignore those messages.&lt;br /&gt;
&lt;br /&gt;
Blenders texture influences are nearly equivalent to MAX material maps. Because diffuse textures and reflection textures both influence diffuse color, the decision between them is made by checking texture mapping coordinates to:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;MAX map -&amp;gt; Blender texture influence&#039;&#039;&#039;&lt;br /&gt;
: Ambient Color -&amp;gt; Shading Ambient&lt;br /&gt;
: Diffuse Color -&amp;gt; Diffuse Color &amp;amp; UV mapping&lt;br /&gt;
: Specular Color -&amp;gt; Specular Color&lt;br /&gt;
: Specular Level -&amp;gt; Specular Intensity&lt;br /&gt;
: Glossiness -&amp;gt; Specular Hardness&lt;br /&gt;
: Self-Illumination -&amp;gt; Shading Emit&lt;br /&gt;
: Opacity -&amp;gt; Diffuse Alpha&lt;br /&gt;
: Filter Color -&amp;gt; Diffuse Translucency&lt;br /&gt;
: Bump -&amp;gt; Geometry Normal&lt;br /&gt;
: Reflection -&amp;gt; Diffuse Color &amp;amp; Reflection mapping &lt;br /&gt;
: Refraction -&amp;gt; not available(not found?)&lt;br /&gt;
: Displacement -&amp;gt; Geometry Displacement&lt;br /&gt;
&lt;br /&gt;
== Torsten&#039;s Hints  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These hints are reproduced from the Exporter script since many will not want to edit or view the actual script contents.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Trainz models you can have two kinds of special objects: attachment points and bones. For attachment points, the exporter expects objects of type &amp;quot;Empty&amp;quot;. For bones, objects of type &amp;quot;Lattice&amp;quot; and &amp;quot;Armature&amp;quot; will be accepted.  All of them need to be named according the naming conventions in effect for attachements( a.* ) and bones( b.r.* ). Objects of other type and objects with proper type but names not matching this conventions will be ignored as attachment points or bones.&lt;br /&gt;
&lt;br /&gt;
If you want to export animations with events, than you have to create a Blender TX object and enter the lines as you would do to create an event file. By renaming this object to &amp;quot;events&amp;quot; you ensure the exporter will not ignore your event list.&lt;br /&gt;
&lt;br /&gt;
It is possible to make parent-child-relations between meshes to simplify the design process. However, the chain must be end with a valid parent bone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Blender Data Files ===&lt;br /&gt;
 &lt;br /&gt;
Blender keeps certain data files, such as add-on utilities, in a special location. This has given Trainz content creators some difficulties due to access rights. If you used the Blender Installer then this is usually in the Windows logged on user space.&lt;br /&gt;
&lt;br /&gt;
Say, for example, your user name is Patrick, then the location is likely to be similiar to &amp;quot;C:\Users\Patrick\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you cannot see this folder in the user folder then it is likely the folder has been hidden by Windows.  You can unhide folders in the Windows Explorer by going to Tools-&amp;gt;Folder Options-&amp;gt;View and selecting &amp;quot;Show hidden files, folders and drives&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under The Hood or, How the Exporter Works ==&lt;br /&gt;
&lt;br /&gt;
Basically the Blender export process works in three phases:&lt;br /&gt;
&lt;br /&gt;
:* Phase 1 is the checking process where the Exporter does some validation.  Where it can, the Exporter will make minor corrections and just issue a warning.  Warnings do not stop the process but an error will.  The warnings and errors should provide enough information to enable correction.&lt;br /&gt;
:* Phase 2 is the creation of the XML file required by the TrainzMeshImporter.  The XML file is a text file using a common language used by many applications.  It is also N3V&#039;s preferred import format.&lt;br /&gt;
:* On succession completion of the first two phases, the Exporter passes control to the TrainzMeshImport program which takes the XML file plus other information and produces the IM mesh file used by Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
Many thanks to USCHI0815 (Torsten) for his time and effort that went into producing and supporting the Blender Exporter.  Without it there would be no Blender models in Trainz.&lt;br /&gt;
&lt;br /&gt;
Thanks to Mick_Berg and Jananton for their comments, and to Mick_Berg for his [http://www.mickberg.com/blenderexport1.html Blender installation tutorial].&lt;br /&gt;
&lt;br /&gt;
== Tutorial Updates ==&lt;br /&gt;
Please feel free to update as necessary and correct errors in this tutorial.  It is a WiKi contribution and intended to be maintained this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Material Types]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
{{FUN-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8407</id>
		<title>HowTo/Export from Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8407"/>
		<updated>2015-07-09T04:10:34Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Introduction of Blender */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FUN-beg}}&lt;br /&gt;
== Introduction of Blender ==&lt;br /&gt;
&lt;br /&gt;
{{plain link|http://www.blender.org |Blender}} is an open source free {{Wp|3D graphics|3D modelling}} application or tool supported by the contribution of programming and development time by the user community.  For more information on Blender and its capabilities, please visit the {{plain link|http://www.blender.org |Blender website}}.  Blender evolves rapidly and it is not uncommon to see releases about every two months. As of 08 July, 2015, the current version is 2.75a.&lt;br /&gt;
&lt;br /&gt;
Blender is extendable through the use of &amp;quot;add-ons&amp;quot; produced either by the Blender Foundation or by Blender users.  One of those add-ons is the Trainz Blender exporter that was built and is maintained by USCHI0815 (Torsten).  Torsten usually announces updates to the Exporter through the Trainz Content Creation Support forum.  As of 24 April, 2014, the current version of the Blender exporter is V0.96.&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
===Caveat===&lt;br /&gt;
[http://www.blender.org Blender] is not currently supported by N3V as an official modeling source for Trainz, however third-party tools exist for this purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== About This Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The scope of this tutorial has been extended to include installation of Blender and installation of the Blender Exporter since this has been an issue discussed several times in the N3V Content Creation forum.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
To export to Trainz you need the following:&lt;br /&gt;
&lt;br /&gt;
:*  Trainz (TS09 or later preferred)&lt;br /&gt;
:*  [[Downloads|TrainzMeshImporter.exe]].   This is provided by N3V.&lt;br /&gt;
:*  [http://www.blender.org/download/ Blender] (v. 2.57 or later is recommended).&lt;br /&gt;
:*  [https://bitbucket.org/uschi0815/blender-exporter-for-trainz/downloads/ The Blender Exporter]. &lt;br /&gt;
:*  Windows XP, Vista, Windows 7 (32 or 64 bit) or Windows 8 (32 or 64 bit) or Mac OS X (32 or 64 bits).&lt;br /&gt;
&lt;br /&gt;
=== Blender Installation Notes ===&lt;br /&gt;
&lt;br /&gt;
Blender is available for a number of operating systems including Windows XP, Windows Vista and Windows 7.  Both 32 bit and 64 bit versions are available.&lt;br /&gt;
You can choose either the installer version or a zip archive.  Please read any notes on the Blender.org download page: particularly if you are upgrading from a previous version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installer Version ===&lt;br /&gt;
&lt;br /&gt;
The Installer Version is the easiest way to install Blender but there can be complications.  If you install Blender into the default directory you should choose &amp;quot;Use Application Data Directory&amp;quot; during installation of Blender. Otherwise it might not be possible to save your preferred Exporter options due to insufficient permissions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blender Zip Archive Version ===&lt;br /&gt;
&lt;br /&gt;
The zip archive version allows you to unzip the entire Blender folder structure and locate it in any location that suits you.  The only drawback is that you will need to set up your own links to the Blender executable (Blender.exe).&lt;br /&gt;
&lt;br /&gt;
== Installing the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Blender exporter add-on must be installed in the &amp;quot;scripts\addons&amp;quot; area of the Blender data space. The following process will install it in the correct location.&lt;br /&gt;
&lt;br /&gt;
=== Install Blender Exporter for Trainz ===&lt;br /&gt;
&lt;br /&gt;
:* Download the exporter.&lt;br /&gt;
:* Start Blender.&lt;br /&gt;
:* Open a new project(File -&amp;gt; New).&lt;br /&gt;
:* Open User Preferences(File -&amp;gt; User Preferences...).&lt;br /&gt;
:* Select Add-Ons panel and press button &amp;quot;Install from file...&amp;quot; down at the panel button bar.&lt;br /&gt;
:* Select and install downloaded file: you don&#039;t need to extract it.&lt;br /&gt;
:* Enable &amp;quot;TRAINZ Exporter&amp;quot; in Add-On list and press button &amp;quot;Save As Default&amp;quot; to keep it enabled for all subsequent Blender starts.&lt;br /&gt;
&lt;br /&gt;
=== Install the N3V TrainzMeshImporter ===&lt;br /&gt;
&lt;br /&gt;
:* Download the [http://online.ts2009.com/mediaWiki/index.php5/Downloads TrainzMeshImporter.exe].  The file is in the RAR format that can be extracted by most zip file management programs.&lt;br /&gt;
:* Before using the exporter you must copy the TrainzMeshExporter.exe to the same location as the Blender Exporter add-on.  The following will help find that location:&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and leave the default cube mesh in place.&lt;br /&gt;
:* If necessary, open the console window so you can read the error messages. In versions 2.5 through 2.63a, the console window is opened using the &amp;quot;toggle system console&amp;quot; menu entry in the &amp;quot;help&amp;quot; menu in the Blender menu bar. Beginning with version 2.64, the &amp;quot;toggle system console&amp;quot; menu has been moved to the &amp;quot;window&amp;quot; menu in the Blender menu bar. Those running a Blender version 2.49 or earlier can disregard this step, as the system console is in a window that is open whenever Blender is active. &lt;br /&gt;
:* Go to File-&amp;gt;Export and select &amp;quot;Trainz Mesh and Animation&amp;quot;.  Use the default settings but make sure that the save location is a temporary or working space.&lt;br /&gt;
:* The Exporter will complain about a missing file in a specific folder.   The missing file is TrainzMeshImporter and the folder name is the location you need.&lt;br /&gt;
:* The location is usually in the form of &amp;quot;ERROR&amp;quot;  file &amp;quot;C:Users\your name\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons\TrainzMeshExporter.exe&amp;quot; not found&amp;quot;.  This example is typical of using the default Blender Installer.  If you chose to install Blender using the zip archive then the location will be different.&lt;br /&gt;
:* Copy TrainzMeshExporter.exe to the location provided.  If you cannot access the AppData folder see the [http://online.ts2009.com/mediaWiki/index.php5?title=HowTo/Export_from_Blender&amp;amp;action=submit#Additional_Notes Additional Notes] section for help.&lt;br /&gt;
:* Once you have copied TrainzMeshExporter.exe to the correct location retry the export.&lt;br /&gt;
&lt;br /&gt;
== Exporting an Asset ==&lt;br /&gt;
&lt;br /&gt;
The creation of an asset suitable for Trainz is a long and complex process.  For the purposes of this tutorial we will only export the standard Blender cube.  Some knowledge of Blender and creation of assets for Trainz purposes is assumed.&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and save the default cube as &amp;quot;cube.blend&amp;quot; in your preferred working location.&lt;br /&gt;
:* Create a simple material such as &amp;quot;cube.m.onetex&amp;quot; and allocate a simple colour texture file. For the purpose of this tutorial leave the default mapping technique to &amp;quot;generated&amp;quot;.  This will cause an error.&lt;br /&gt;
:* UV map the cube to the texture.&lt;br /&gt;
:* Save the Blender file.&lt;br /&gt;
:* Go to File-&amp;gt;Export and select Trainz Mesh and Animation.&lt;br /&gt;
:* The dialog box that appears gives a output save location for the XML, log, texture description and other files produced by the process.  Select your preferred location.&lt;br /&gt;
:* All the other options can be left as default.  If you were exporting a mesh that included animation, then you would also select &amp;quot;Export Animation Data&amp;quot;.&lt;br /&gt;
:* When you are ready, select &amp;quot;Export Trainz&amp;quot; in the top right hand corner.&lt;br /&gt;
:* This export process will fail with an error since the &amp;quot;generated&amp;quot; mapping option for textures is not supported when using an image file.  Go back to the Texture section and change the mapping option to UV and then export again.  This time it should export correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporter Output ==&lt;br /&gt;
&lt;br /&gt;
=== Files Created ===&lt;br /&gt;
The Exporter produces:&lt;br /&gt;
&lt;br /&gt;
:* An XML file.  This is used by TrainzMeshImporter.&lt;br /&gt;
:* The IM mesh file required by Trainz.&lt;br /&gt;
:* The texture description files (nnn.texture.txt) required by Trainz.&lt;br /&gt;
:* The KIN animation file required by Trainz if animation is used.&lt;br /&gt;
:* A log of the export process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error Reporting ===&lt;br /&gt;
Errors are reported in the Blender System Console and the Exporter log. Errors will prevent the production of the target IM file and therefore must be addressed.&lt;br /&gt;
Typical errors are:&lt;br /&gt;
&lt;br /&gt;
==== Mesh Errors ====&lt;br /&gt;
&lt;br /&gt;
:*Objects without a parent where a root bone exists.&lt;br /&gt;
&lt;br /&gt;
==== Material Related Errors ====&lt;br /&gt;
&lt;br /&gt;
:* No UV layer for UV mapped objects. Blender usually creates a default.&lt;br /&gt;
:* Use of the same material for both single and double sided meshes.  Recommend only using single sided meshes.&lt;br /&gt;
:* Objects without an assigned material.  Recommend assigning a material for each object.&lt;br /&gt;
:* Faces without a material in an object.  The faces will have been collected into a Vertex Group to enable correction. This error can also be caused by material slots in blender to which no material is assigned.   &lt;br /&gt;
:* Use of similar material names if character case is ignored.  i.e. &amp;quot;Black&amp;quot; and &amp;quot;black&amp;quot; are considered the same by Trainz.&lt;br /&gt;
:* Not using UV mapping for textures that are either using alpha, normal or specular.&lt;br /&gt;
:* Not using UV or reflect mapping for diffuse textures.&lt;br /&gt;
&lt;br /&gt;
==== Animation Errors ====&lt;br /&gt;
&lt;br /&gt;
:* More than one root bone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
Warnings are basically flaws or possible flaws that the user may wish to address.  Warnings do not prevent production of the IM output files. Some typicals warnings include:&lt;br /&gt;
&lt;br /&gt;
==== Animation Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Possible incorrect location and rotation of root bone.&lt;br /&gt;
:* Bones not found or no animation data found.&lt;br /&gt;
:* Events not found or unrecognised.&lt;br /&gt;
:* Event frame numbers in wrong positions.&lt;br /&gt;
&lt;br /&gt;
==== Mesh Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Vertices influenced by more than four vertex groups.&lt;br /&gt;
&lt;br /&gt;
==== Name Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Unrecommended characters.  Material, texture, object and path names should only be composed of a-z, A-Z, 0-9 or -_./\ characters.  A typical error is use of a space character in a path name.  The Exporter will change Blender file names that include upper case letters to lower case letters.  Generally, it is recommended you avoid the use of upper case characters in names.&lt;br /&gt;
&lt;br /&gt;
==== Material Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Surfaceless faces in an object.  The Exporter will gather these faces and put them into a Vertex Group to aid identification. The Vertex Group can be found in the triangle panel associated with the Safety Valve object.&lt;br /&gt;
:* Objects exported with double sided faces.   This will become an error if a material is used for both single and double sided objects.&lt;br /&gt;
:* Material renamed.  If the name does not match one of the standard Trainz material names then the Exporter will try and effect a solution.  Typically a name such as &amp;quot;black&amp;quot; will be renamed &amp;quot;blackm.onetex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Export Log ===&lt;br /&gt;
&lt;br /&gt;
The Exporter Log contains a record of events during the export process including errors and warnings.  The numTriangles report is the number of polygons (aka polys) in the mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Material Recognition by the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Exporter tries to identify materials in use by the asset mesh and will provide a warning if the detected material decoration varies from that declared in the Blender file.  The term &amp;quot;material decoration&amp;quot; is one of the standard Trainz material names such as &amp;quot;m.onetext&amp;quot; or &amp;quot;m.tbumptex&amp;quot;. The following decision process, provided by Torsten, may be useful for developers.&lt;br /&gt;
&lt;br /&gt;
The decision which material decoration is used is made by the texturing schema used for the material:&lt;br /&gt;
&lt;br /&gt;
: no texture used -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: one texture used:&lt;br /&gt;
:: invalid texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: reflection texture  -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: two textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse &amp;amp; reflection -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: three textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha &amp;amp; reflection -&amp;gt;&#039;&#039;&#039; m.gloss&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: normal texture used:&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; alpha &amp;amp; no reflection -&amp;gt; &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; reflection &amp;amp; no alpha -&amp;gt; &#039;&#039;&#039;m.tbumpgloss&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; no alpha &amp;amp; no reflection-&amp;gt; &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As material &#039;&#039;&#039;m.notex&#039;&#039;&#039; causes problems with specific assets&#039;&#039;&#039;, m.onetex&#039;&#039;&#039; is used instead. It also works perfectly without any texture.&lt;br /&gt;
The problem with &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039; and &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is that, besides the usage of an alpha texture (which is not used for &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039;), both use a diffuse and normal texture. In this case &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is chosen.&lt;br /&gt;
&lt;br /&gt;
Generally, you can use any material decoration you want. The script does not change a syntactically correct material decoration(e.g. Material&#039;&#039;&#039;m.billboard&#039;&#039;&#039; would pass unchanged).  It only drops a message to remind you that you either use an unsupported material(as warning) or that it had chosen another material(as info).&lt;br /&gt;
&lt;br /&gt;
If you check the issue and find it to be OK than you can safely ignore those messages.&lt;br /&gt;
&lt;br /&gt;
Blenders texture influences are nearly equivalent to MAX material maps. Because diffuse textures and reflection textures both influence diffuse color, the decision between them is made by checking texture mapping coordinates to:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;MAX map -&amp;gt; Blender texture influence&#039;&#039;&#039;&lt;br /&gt;
: Ambient Color -&amp;gt; Shading Ambient&lt;br /&gt;
: Diffuse Color -&amp;gt; Diffuse Color &amp;amp; UV mapping&lt;br /&gt;
: Specular Color -&amp;gt; Specular Color&lt;br /&gt;
: Specular Level -&amp;gt; Specular Intensity&lt;br /&gt;
: Glossiness -&amp;gt; Specular Hardness&lt;br /&gt;
: Self-Illumination -&amp;gt; Shading Emit&lt;br /&gt;
: Opacity -&amp;gt; Diffuse Alpha&lt;br /&gt;
: Filter Color -&amp;gt; Diffuse Translucency&lt;br /&gt;
: Bump -&amp;gt; Geometry Normal&lt;br /&gt;
: Reflection -&amp;gt; Diffuse Color &amp;amp; Reflection mapping &lt;br /&gt;
: Refraction -&amp;gt; not available(not found?)&lt;br /&gt;
: Displacement -&amp;gt; Geometry Displacement&lt;br /&gt;
&lt;br /&gt;
== Torsten&#039;s Hints  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These hints are reproduced from the Exporter script since many will not want to edit or view the actual script contents.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Trainz models you can have two kinds of special objects: attachment points and bones. For attachment points, the exporter expects objects of type &amp;quot;Empty&amp;quot;. For bones, objects of type &amp;quot;Lattice&amp;quot; and &amp;quot;Armature&amp;quot; will be accepted.  All of them need to be named according the naming conventions in effect for attachements( a.* ) and bones( b.r.* ). Objects of other type and objects with proper type but names not matching this conventions will be ignored as attachment points or bones.&lt;br /&gt;
&lt;br /&gt;
If you want to export animations with events, than you have to create a Blender TX object and enter the lines as you would do to create an event file. By renaming this object to &amp;quot;events&amp;quot; you ensure the exporter will not ignore your event list.&lt;br /&gt;
&lt;br /&gt;
It is possible to make parent-child-relations between meshes to simplify the design process. However, the chain must be end with a valid parent bone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Blender Data Files ===&lt;br /&gt;
 &lt;br /&gt;
Blender keeps certain data files, such as add-on utilities, in a special location. This has given Trainz content creators some difficulties due to access rights. If you used the Blender Installer then this is usually in the Windows logged on user space.&lt;br /&gt;
&lt;br /&gt;
Say, for example, your user name is Patrick, then the location is likely to be similiar to &amp;quot;C:\Users\Patrick\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you cannot see this folder in the user folder then it is likely the folder has been hidden by Windows.  You can unhide folders in the Windows Explorer by going to Tools-&amp;gt;Folder Options-&amp;gt;View and selecting &amp;quot;Show hidden files, folders and drives&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under The Hood or, How the Exporter Works ==&lt;br /&gt;
&lt;br /&gt;
Basically the Blender export process works in three phases:&lt;br /&gt;
&lt;br /&gt;
:* Phase 1 is the checking process where the Exporter does some validation.  Where it can, the Exporter will make minor corrections and just issue a warning.  Warnings do not stop the process but an error will.  The warnings and errors should provide enough information to enable correction.&lt;br /&gt;
:* Phase 2 is the creation of the XML file required by the TrainzMeshImporter.  The XML file is a text file using a common language used by many applications.  It is also N3V&#039;s preferred import format.&lt;br /&gt;
:* On succession completion of the first two phases, the Exporter passes control to the TrainzMeshImport program which takes the XML file plus other information and produces the IM mesh file used by Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
Many thanks to USCHI0815 (Torsten) for his time and effort that went into producing and supporting the Blender Exporter.  Without it there would be no Blender models in Trainz.&lt;br /&gt;
&lt;br /&gt;
Thanks to Mick_Berg and Jananton for their comments, and to Mick_Berg for his [http://www.mickberg.com/blenderexport1.html Blender installation tutorial].&lt;br /&gt;
&lt;br /&gt;
== Tutorial Updates ==&lt;br /&gt;
Please feel free to update as necessary and correct errors in this tutorial.  It is a WiKi contribution and intended to be maintained this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Material Types]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
{{FUN-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8404</id>
		<title>HowTo/Export from Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8404"/>
		<updated>2015-07-02T04:12:37Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Introduction of Blender */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FUN-beg}}&lt;br /&gt;
== Introduction of Blender ==&lt;br /&gt;
&lt;br /&gt;
{{plain link|http://www.blender.org |Blender}} is an open source free {{Wp|3D graphics|3D modelling}} application or tool supported by the contribution of programming and development time by the user community.  For more information on Blender and its capabilities, please visit the {{plain link|http://www.blender.org |Blender website}}.  Blender evolves rapidly and it is not uncommon to see releases about every two months. As of 01 July, 2015, the current version is 2.75.&lt;br /&gt;
&lt;br /&gt;
Blender is extendable through the use of &amp;quot;add-ons&amp;quot; produced either by the Blender Foundation or by Blender users.  One of those add-ons is the Trainz Blender exporter that was built and is maintained by USCHI0815 (Torsten).  Torsten usually announces updates to the Exporter through the Trainz Content Creation Support forum.  As of 24 April, 2014, the current version of the Blender exporter is V0.96.&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
===Caveat===&lt;br /&gt;
[http://www.blender.org Blender] is not currently supported by N3V as an official modeling source for Trainz, however third-party tools exist for this purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== About This Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The scope of this tutorial has been extended to include installation of Blender and installation of the Blender Exporter since this has been an issue discussed several times in the N3V Content Creation forum.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
To export to Trainz you need the following:&lt;br /&gt;
&lt;br /&gt;
:*  Trainz (TS09 or later preferred)&lt;br /&gt;
:*  [[Downloads|TrainzMeshImporter.exe]].   This is provided by N3V.&lt;br /&gt;
:*  [http://www.blender.org/download/ Blender] (v. 2.57 or later is recommended).&lt;br /&gt;
:*  [https://bitbucket.org/uschi0815/blender-exporter-for-trainz/downloads/ The Blender Exporter]. &lt;br /&gt;
:*  Windows XP, Vista, Windows 7 (32 or 64 bit) or Windows 8 (32 or 64 bit) or Mac OS X (32 or 64 bits).&lt;br /&gt;
&lt;br /&gt;
=== Blender Installation Notes ===&lt;br /&gt;
&lt;br /&gt;
Blender is available for a number of operating systems including Windows XP, Windows Vista and Windows 7.  Both 32 bit and 64 bit versions are available.&lt;br /&gt;
You can choose either the installer version or a zip archive.  Please read any notes on the Blender.org download page: particularly if you are upgrading from a previous version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installer Version ===&lt;br /&gt;
&lt;br /&gt;
The Installer Version is the easiest way to install Blender but there can be complications.  If you install Blender into the default directory you should choose &amp;quot;Use Application Data Directory&amp;quot; during installation of Blender. Otherwise it might not be possible to save your preferred Exporter options due to insufficient permissions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blender Zip Archive Version ===&lt;br /&gt;
&lt;br /&gt;
The zip archive version allows you to unzip the entire Blender folder structure and locate it in any location that suits you.  The only drawback is that you will need to set up your own links to the Blender executable (Blender.exe).&lt;br /&gt;
&lt;br /&gt;
== Installing the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Blender exporter add-on must be installed in the &amp;quot;scripts\addons&amp;quot; area of the Blender data space. The following process will install it in the correct location.&lt;br /&gt;
&lt;br /&gt;
=== Install Blender Exporter for Trainz ===&lt;br /&gt;
&lt;br /&gt;
:* Download the exporter.&lt;br /&gt;
:* Start Blender.&lt;br /&gt;
:* Open a new project(File -&amp;gt; New).&lt;br /&gt;
:* Open User Preferences(File -&amp;gt; User Preferences...).&lt;br /&gt;
:* Select Add-Ons panel and press button &amp;quot;Install from file...&amp;quot; down at the panel button bar.&lt;br /&gt;
:* Select and install downloaded file: you don&#039;t need to extract it.&lt;br /&gt;
:* Enable &amp;quot;TRAINZ Exporter&amp;quot; in Add-On list and press button &amp;quot;Save As Default&amp;quot; to keep it enabled for all subsequent Blender starts.&lt;br /&gt;
&lt;br /&gt;
=== Install the N3V TrainzMeshImporter ===&lt;br /&gt;
&lt;br /&gt;
:* Download the [http://online.ts2009.com/mediaWiki/index.php5/Downloads TrainzMeshImporter.exe].  The file is in the RAR format that can be extracted by most zip file management programs.&lt;br /&gt;
:* Before using the exporter you must copy the TrainzMeshExporter.exe to the same location as the Blender Exporter add-on.  The following will help find that location:&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and leave the default cube mesh in place.&lt;br /&gt;
:* If necessary, open the console window so you can read the error messages. In versions 2.5 through 2.63a, the console window is opened using the &amp;quot;toggle system console&amp;quot; menu entry in the &amp;quot;help&amp;quot; menu in the Blender menu bar. Beginning with version 2.64, the &amp;quot;toggle system console&amp;quot; menu has been moved to the &amp;quot;window&amp;quot; menu in the Blender menu bar. Those running a Blender version 2.49 or earlier can disregard this step, as the system console is in a window that is open whenever Blender is active. &lt;br /&gt;
:* Go to File-&amp;gt;Export and select &amp;quot;Trainz Mesh and Animation&amp;quot;.  Use the default settings but make sure that the save location is a temporary or working space.&lt;br /&gt;
:* The Exporter will complain about a missing file in a specific folder.   The missing file is TrainzMeshImporter and the folder name is the location you need.&lt;br /&gt;
:* The location is usually in the form of &amp;quot;ERROR&amp;quot;  file &amp;quot;C:Users\your name\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons\TrainzMeshExporter.exe&amp;quot; not found&amp;quot;.  This example is typical of using the default Blender Installer.  If you chose to install Blender using the zip archive then the location will be different.&lt;br /&gt;
:* Copy TrainzMeshExporter.exe to the location provided.  If you cannot access the AppData folder see the [http://online.ts2009.com/mediaWiki/index.php5?title=HowTo/Export_from_Blender&amp;amp;action=submit#Additional_Notes Additional Notes] section for help.&lt;br /&gt;
:* Once you have copied TrainzMeshExporter.exe to the correct location retry the export.&lt;br /&gt;
&lt;br /&gt;
== Exporting an Asset ==&lt;br /&gt;
&lt;br /&gt;
The creation of an asset suitable for Trainz is a long and complex process.  For the purposes of this tutorial we will only export the standard Blender cube.  Some knowledge of Blender and creation of assets for Trainz purposes is assumed.&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and save the default cube as &amp;quot;cube.blend&amp;quot; in your preferred working location.&lt;br /&gt;
:* Create a simple material such as &amp;quot;cube.m.onetex&amp;quot; and allocate a simple colour texture file. For the purpose of this tutorial leave the default mapping technique to &amp;quot;generated&amp;quot;.  This will cause an error.&lt;br /&gt;
:* UV map the cube to the texture.&lt;br /&gt;
:* Save the Blender file.&lt;br /&gt;
:* Go to File-&amp;gt;Export and select Trainz Mesh and Animation.&lt;br /&gt;
:* The dialog box that appears gives a output save location for the XML, log, texture description and other files produced by the process.  Select your preferred location.&lt;br /&gt;
:* All the other options can be left as default.  If you were exporting a mesh that included animation, then you would also select &amp;quot;Export Animation Data&amp;quot;.&lt;br /&gt;
:* When you are ready, select &amp;quot;Export Trainz&amp;quot; in the top right hand corner.&lt;br /&gt;
:* This export process will fail with an error since the &amp;quot;generated&amp;quot; mapping option for textures is not supported when using an image file.  Go back to the Texture section and change the mapping option to UV and then export again.  This time it should export correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporter Output ==&lt;br /&gt;
&lt;br /&gt;
=== Files Created ===&lt;br /&gt;
The Exporter produces:&lt;br /&gt;
&lt;br /&gt;
:* An XML file.  This is used by TrainzMeshImporter.&lt;br /&gt;
:* The IM mesh file required by Trainz.&lt;br /&gt;
:* The texture description files (nnn.texture.txt) required by Trainz.&lt;br /&gt;
:* The KIN animation file required by Trainz if animation is used.&lt;br /&gt;
:* A log of the export process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error Reporting ===&lt;br /&gt;
Errors are reported in the Blender System Console and the Exporter log. Errors will prevent the production of the target IM file and therefore must be addressed.&lt;br /&gt;
Typical errors are:&lt;br /&gt;
&lt;br /&gt;
==== Mesh Errors ====&lt;br /&gt;
&lt;br /&gt;
:*Objects without a parent where a root bone exists.&lt;br /&gt;
&lt;br /&gt;
==== Material Related Errors ====&lt;br /&gt;
&lt;br /&gt;
:* No UV layer for UV mapped objects. Blender usually creates a default.&lt;br /&gt;
:* Use of the same material for both single and double sided meshes.  Recommend only using single sided meshes.&lt;br /&gt;
:* Objects without an assigned material.  Recommend assigning a material for each object.&lt;br /&gt;
:* Faces without a material in an object.  The faces will have been collected into a Vertex Group to enable correction. This error can also be caused by material slots in blender to which no material is assigned.   &lt;br /&gt;
:* Use of similar material names if character case is ignored.  i.e. &amp;quot;Black&amp;quot; and &amp;quot;black&amp;quot; are considered the same by Trainz.&lt;br /&gt;
:* Not using UV mapping for textures that are either using alpha, normal or specular.&lt;br /&gt;
:* Not using UV or reflect mapping for diffuse textures.&lt;br /&gt;
&lt;br /&gt;
==== Animation Errors ====&lt;br /&gt;
&lt;br /&gt;
:* More than one root bone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
Warnings are basically flaws or possible flaws that the user may wish to address.  Warnings do not prevent production of the IM output files. Some typicals warnings include:&lt;br /&gt;
&lt;br /&gt;
==== Animation Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Possible incorrect location and rotation of root bone.&lt;br /&gt;
:* Bones not found or no animation data found.&lt;br /&gt;
:* Events not found or unrecognised.&lt;br /&gt;
:* Event frame numbers in wrong positions.&lt;br /&gt;
&lt;br /&gt;
==== Mesh Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Vertices influenced by more than four vertex groups.&lt;br /&gt;
&lt;br /&gt;
==== Name Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Unrecommended characters.  Material, texture, object and path names should only be composed of a-z, A-Z, 0-9 or -_./\ characters.  A typical error is use of a space character in a path name.  The Exporter will change Blender file names that include upper case letters to lower case letters.  Generally, it is recommended you avoid the use of upper case characters in names.&lt;br /&gt;
&lt;br /&gt;
==== Material Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Surfaceless faces in an object.  The Exporter will gather these faces and put them into a Vertex Group to aid identification. The Vertex Group can be found in the triangle panel associated with the Safety Valve object.&lt;br /&gt;
:* Objects exported with double sided faces.   This will become an error if a material is used for both single and double sided objects.&lt;br /&gt;
:* Material renamed.  If the name does not match one of the standard Trainz material names then the Exporter will try and effect a solution.  Typically a name such as &amp;quot;black&amp;quot; will be renamed &amp;quot;blackm.onetex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Export Log ===&lt;br /&gt;
&lt;br /&gt;
The Exporter Log contains a record of events during the export process including errors and warnings.  The numTriangles report is the number of polygons (aka polys) in the mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Material Recognition by the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Exporter tries to identify materials in use by the asset mesh and will provide a warning if the detected material decoration varies from that declared in the Blender file.  The term &amp;quot;material decoration&amp;quot; is one of the standard Trainz material names such as &amp;quot;m.onetext&amp;quot; or &amp;quot;m.tbumptex&amp;quot;. The following decision process, provided by Torsten, may be useful for developers.&lt;br /&gt;
&lt;br /&gt;
The decision which material decoration is used is made by the texturing schema used for the material:&lt;br /&gt;
&lt;br /&gt;
: no texture used -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: one texture used:&lt;br /&gt;
:: invalid texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: reflection texture  -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: two textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse &amp;amp; reflection -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: three textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha &amp;amp; reflection -&amp;gt;&#039;&#039;&#039; m.gloss&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: normal texture used:&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; alpha &amp;amp; no reflection -&amp;gt; &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; reflection &amp;amp; no alpha -&amp;gt; &#039;&#039;&#039;m.tbumpgloss&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; no alpha &amp;amp; no reflection-&amp;gt; &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As material &#039;&#039;&#039;m.notex&#039;&#039;&#039; causes problems with specific assets&#039;&#039;&#039;, m.onetex&#039;&#039;&#039; is used instead. It also works perfectly without any texture.&lt;br /&gt;
The problem with &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039; and &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is that, besides the usage of an alpha texture (which is not used for &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039;), both use a diffuse and normal texture. In this case &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is chosen.&lt;br /&gt;
&lt;br /&gt;
Generally, you can use any material decoration you want. The script does not change a syntactically correct material decoration(e.g. Material&#039;&#039;&#039;m.billboard&#039;&#039;&#039; would pass unchanged).  It only drops a message to remind you that you either use an unsupported material(as warning) or that it had chosen another material(as info).&lt;br /&gt;
&lt;br /&gt;
If you check the issue and find it to be OK than you can safely ignore those messages.&lt;br /&gt;
&lt;br /&gt;
Blenders texture influences are nearly equivalent to MAX material maps. Because diffuse textures and reflection textures both influence diffuse color, the decision between them is made by checking texture mapping coordinates to:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;MAX map -&amp;gt; Blender texture influence&#039;&#039;&#039;&lt;br /&gt;
: Ambient Color -&amp;gt; Shading Ambient&lt;br /&gt;
: Diffuse Color -&amp;gt; Diffuse Color &amp;amp; UV mapping&lt;br /&gt;
: Specular Color -&amp;gt; Specular Color&lt;br /&gt;
: Specular Level -&amp;gt; Specular Intensity&lt;br /&gt;
: Glossiness -&amp;gt; Specular Hardness&lt;br /&gt;
: Self-Illumination -&amp;gt; Shading Emit&lt;br /&gt;
: Opacity -&amp;gt; Diffuse Alpha&lt;br /&gt;
: Filter Color -&amp;gt; Diffuse Translucency&lt;br /&gt;
: Bump -&amp;gt; Geometry Normal&lt;br /&gt;
: Reflection -&amp;gt; Diffuse Color &amp;amp; Reflection mapping &lt;br /&gt;
: Refraction -&amp;gt; not available(not found?)&lt;br /&gt;
: Displacement -&amp;gt; Geometry Displacement&lt;br /&gt;
&lt;br /&gt;
== Torsten&#039;s Hints  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These hints are reproduced from the Exporter script since many will not want to edit or view the actual script contents.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Trainz models you can have two kinds of special objects: attachment points and bones. For attachment points, the exporter expects objects of type &amp;quot;Empty&amp;quot;. For bones, objects of type &amp;quot;Lattice&amp;quot; and &amp;quot;Armature&amp;quot; will be accepted.  All of them need to be named according the naming conventions in effect for attachements( a.* ) and bones( b.r.* ). Objects of other type and objects with proper type but names not matching this conventions will be ignored as attachment points or bones.&lt;br /&gt;
&lt;br /&gt;
If you want to export animations with events, than you have to create a Blender TX object and enter the lines as you would do to create an event file. By renaming this object to &amp;quot;events&amp;quot; you ensure the exporter will not ignore your event list.&lt;br /&gt;
&lt;br /&gt;
It is possible to make parent-child-relations between meshes to simplify the design process. However, the chain must be end with a valid parent bone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Blender Data Files ===&lt;br /&gt;
 &lt;br /&gt;
Blender keeps certain data files, such as add-on utilities, in a special location. This has given Trainz content creators some difficulties due to access rights. If you used the Blender Installer then this is usually in the Windows logged on user space.&lt;br /&gt;
&lt;br /&gt;
Say, for example, your user name is Patrick, then the location is likely to be similiar to &amp;quot;C:\Users\Patrick\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you cannot see this folder in the user folder then it is likely the folder has been hidden by Windows.  You can unhide folders in the Windows Explorer by going to Tools-&amp;gt;Folder Options-&amp;gt;View and selecting &amp;quot;Show hidden files, folders and drives&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under The Hood or, How the Exporter Works ==&lt;br /&gt;
&lt;br /&gt;
Basically the Blender export process works in three phases:&lt;br /&gt;
&lt;br /&gt;
:* Phase 1 is the checking process where the Exporter does some validation.  Where it can, the Exporter will make minor corrections and just issue a warning.  Warnings do not stop the process but an error will.  The warnings and errors should provide enough information to enable correction.&lt;br /&gt;
:* Phase 2 is the creation of the XML file required by the TrainzMeshImporter.  The XML file is a text file using a common language used by many applications.  It is also N3V&#039;s preferred import format.&lt;br /&gt;
:* On succession completion of the first two phases, the Exporter passes control to the TrainzMeshImport program which takes the XML file plus other information and produces the IM mesh file used by Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
Many thanks to USCHI0815 (Torsten) for his time and effort that went into producing and supporting the Blender Exporter.  Without it there would be no Blender models in Trainz.&lt;br /&gt;
&lt;br /&gt;
Thanks to Mick_Berg and Jananton for their comments, and to Mick_Berg for his [http://www.mickberg.com/blenderexport1.html Blender installation tutorial].&lt;br /&gt;
&lt;br /&gt;
== Tutorial Updates ==&lt;br /&gt;
Please feel free to update as necessary and correct errors in this tutorial.  It is a WiKi contribution and intended to be maintained this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Material Types]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
{{FUN-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8385</id>
		<title>Resources: Images</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8385"/>
		<updated>2015-06-11T02:39:05Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Reference images  -  Reorganized and added content*/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
&lt;br /&gt;
=== Reference and Texture Image Resources ===&lt;br /&gt;
&lt;br /&gt;
This page contains links to resources for finding images useful in creating models for Trainz is a stub.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  [http://www.episcura.com/ Episcura] A source for high definition images and textures. A communication from the company, stated, in part:&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;...It is perfectly fine to use images from our site ... As long as the image is being used &lt;br /&gt;
     in the creation of an asset that is being sold, (i. e. models / backgrounds / advertisements,&lt;br /&gt;
     etc.) and NOT being redistributed as individual images/textures [and you] Episcura as a &lt;br /&gt;
     resource credit, [in the Config.sys file] and link back to our site where available.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*  [http://www.texturemate.com/ Texturemate] Free materials and image textures.&lt;br /&gt;
&lt;br /&gt;
=== Reference images ===&lt;br /&gt;
&lt;br /&gt;
Some of the images in the collections available on the sites listed below have railroad subjects, but the non-railroad subjects may also contain valuable information for asset and route builders. &lt;br /&gt;
&lt;br /&gt;
==== United States ==== &lt;br /&gt;
&lt;br /&gt;
*  [http://www.loc.gov/photos/ Library of Congress (US)]&lt;br /&gt;
&lt;br /&gt;
*  [http://libcat.smu.edu/ Southern Methodist University Library] Has a substantial archive of material from the Baldwin Locomotive works.&lt;br /&gt;
&lt;br /&gt;
*  [https://collections.stanford.edu/images/bin/page?forward=home   Stanford University public image archive]&lt;br /&gt;
&lt;br /&gt;
*  [http://eris.uky.edu/catalog/ University of Kentucky digital library]&lt;br /&gt;
&lt;br /&gt;
*  [http://www.umvphotoarchive.org/ Upper Mississippi digital photo archive]&lt;br /&gt;
&lt;br /&gt;
*  [http://digitallibrary.usc.edu/cdm/ University of Southern California digital archive]&lt;br /&gt;
&lt;br /&gt;
*  [http://wrh.statelib.lib.wa.us/cdm/search/searchterm/railroad/order/nosort Washington Rural Heritage]&lt;br /&gt;
&lt;br /&gt;
=== Texture Images ===&lt;br /&gt;
&lt;br /&gt;
*  [http://www.texturemate.com/ TextureMate]&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling| ]]&lt;br /&gt;
{{ORP-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8384</id>
		<title>Resources: Images</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8384"/>
		<updated>2015-06-10T03:19:23Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Texture Images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
&lt;br /&gt;
=== Reference and Texture Image Resources ===&lt;br /&gt;
&lt;br /&gt;
This page contains links to resources for finding images useful in creating models for Trainz is a stub.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  [http://www.episcura.com/ Episcura] A source for high definition images and textures. A communication from the company, stated, in part:&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;...It is perfectly fine to use images from our site ... As long as the image is being used &lt;br /&gt;
     in the creation of an asset that is being sold, (i. e. models / backgrounds / advertisements,&lt;br /&gt;
     etc.) and NOT being redistributed as individual images/textures [and you] Episcura as a &lt;br /&gt;
     resource credit, [in the Config.sys file] and link back to our site where available.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*  [http://www.texturemate.com/ Texturemate] Free materials and image textures.&lt;br /&gt;
&lt;br /&gt;
=== Reference images ===&lt;br /&gt;
&lt;br /&gt;
Some of the images in the collections available on the sites listed below have railroad subjects, but the non-railroad subjects may also contain valuable information for asset and route builders.  &lt;br /&gt;
&lt;br /&gt;
*  [http://www.loc.gov/photos/ Library of Congress (US)]&lt;br /&gt;
&lt;br /&gt;
*  [http://eris.uky.edu/catalog/ University of Kentucky digital library]&lt;br /&gt;
&lt;br /&gt;
*  [http://www.umvphotoarchive.org/ Upper Mississippi digital photo archive]&lt;br /&gt;
&lt;br /&gt;
*  [http://libcat.smu.edu/ Southern University Library] Has a substantial archive of material from the Baldwin Locomotive works.&lt;br /&gt;
&lt;br /&gt;
*  [https://collections.stanford.edu/images/bin/page?forward=home   Stanford University public image archive]&lt;br /&gt;
&lt;br /&gt;
=== Texture Images ===&lt;br /&gt;
&lt;br /&gt;
*  [http://www.texturemate.com/ TextureMate]&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling| ]]&lt;br /&gt;
{{ORP-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8383</id>
		<title>Resources: Images</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8383"/>
		<updated>2015-06-10T03:18:58Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Texture Images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
&lt;br /&gt;
=== Reference and Texture Image Resources ===&lt;br /&gt;
&lt;br /&gt;
This page contains links to resources for finding images useful in creating models for Trainz is a stub.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  [http://www.episcura.com/ Episcura] A source for high definition images and textures. A communication from the company, stated, in part:&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;...It is perfectly fine to use images from our site ... As long as the image is being used &lt;br /&gt;
     in the creation of an asset that is being sold, (i. e. models / backgrounds / advertisements,&lt;br /&gt;
     etc.) and NOT being redistributed as individual images/textures [and you] Episcura as a &lt;br /&gt;
     resource credit, [in the Config.sys file] and link back to our site where available.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*  [http://www.texturemate.com/ Texturemate] Free materials and image textures.&lt;br /&gt;
&lt;br /&gt;
=== Reference images ===&lt;br /&gt;
&lt;br /&gt;
Some of the images in the collections available on the sites listed below have railroad subjects, but the non-railroad subjects may also contain valuable information for asset and route builders.  &lt;br /&gt;
&lt;br /&gt;
*  [http://www.loc.gov/photos/ Library of Congress (US)]&lt;br /&gt;
&lt;br /&gt;
*  [http://eris.uky.edu/catalog/ University of Kentucky digital library]&lt;br /&gt;
&lt;br /&gt;
*  [http://www.umvphotoarchive.org/ Upper Mississippi digital photo archive]&lt;br /&gt;
&lt;br /&gt;
*  [http://libcat.smu.edu/ Southern University Library] Has a substantial archive of material from the Baldwin Locomotive works.&lt;br /&gt;
&lt;br /&gt;
*  [https://collections.stanford.edu/images/bin/page?forward=home   Stanford University public image archive]&lt;br /&gt;
&lt;br /&gt;
=== Texture Images ===&lt;br /&gt;
&lt;br /&gt;
*  [http://www.texturemate.com/]&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling| ]]&lt;br /&gt;
{{ORP-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8382</id>
		<title>Resources: Images</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8382"/>
		<updated>2015-06-10T03:17:16Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
&lt;br /&gt;
=== Reference and Texture Image Resources ===&lt;br /&gt;
&lt;br /&gt;
This page contains links to resources for finding images useful in creating models for Trainz is a stub.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  [http://www.episcura.com/ Episcura] A source for high definition images and textures. A communication from the company, stated, in part:&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;...It is perfectly fine to use images from our site ... As long as the image is being used &lt;br /&gt;
     in the creation of an asset that is being sold, (i. e. models / backgrounds / advertisements,&lt;br /&gt;
     etc.) and NOT being redistributed as individual images/textures [and you] Episcura as a &lt;br /&gt;
     resource credit, [in the Config.sys file] and link back to our site where available.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*  [http://www.texturemate.com/ Texturemate] Free materials and image textures.&lt;br /&gt;
&lt;br /&gt;
=== Reference images ===&lt;br /&gt;
&lt;br /&gt;
Some of the images in the collections available on the sites listed below have railroad subjects, but the non-railroad subjects may also contain valuable information for asset and route builders.  &lt;br /&gt;
&lt;br /&gt;
*  [http://www.loc.gov/photos/ Library of Congress (US)]&lt;br /&gt;
&lt;br /&gt;
*  [http://eris.uky.edu/catalog/ University of Kentucky digital library]&lt;br /&gt;
&lt;br /&gt;
*  [http://www.umvphotoarchive.org/ Upper Mississippi digital photo archive]&lt;br /&gt;
&lt;br /&gt;
*  [http://libcat.smu.edu/ Southern University Library] Has a substantial archive of material from the Baldwin Locomotive works.&lt;br /&gt;
&lt;br /&gt;
*  [https://collections.stanford.edu/images/bin/page?forward=home   Stanford University public image archive]&lt;br /&gt;
&lt;br /&gt;
=== Texture Images ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling| ]]&lt;br /&gt;
{{ORP-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8381</id>
		<title>Resources: Images</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8381"/>
		<updated>2015-06-09T20:52:22Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Reference images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
&lt;br /&gt;
=== Textures ===&lt;br /&gt;
&lt;br /&gt;
This page contains links to resources for finding images useful in creating models for Trainz is a stub.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  [http://www.episcura.com/ Episcura] A source for high definition images and textures. A communication from the company, stated, in part:&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;...It is perfectly fine to use images from our site ... As long as the image is being used &lt;br /&gt;
     in the creation of an asset that is being sold, (i. e. models / backgrounds / advertisements,&lt;br /&gt;
     etc.) and NOT being redistributed as individual images/textures [and you] Episcura as a &lt;br /&gt;
     resource credit, [in the Config.sys file] and link back to our site where available.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*  [http://www.texturemate.com/ Texturemate] Free materials and image textures.&lt;br /&gt;
&lt;br /&gt;
=== Reference images ===&lt;br /&gt;
&lt;br /&gt;
Some of the images in the collections available on the sites listed below have railroad subjects, but the non-railroad subjects may also contain valuable information for asset and route builders.  &lt;br /&gt;
&lt;br /&gt;
*  [http://www.loc.gov/photos/ Library of Congress (US)]&lt;br /&gt;
&lt;br /&gt;
*  [http://eris.uky.edu/catalog/ University of Kentucky digital library]&lt;br /&gt;
&lt;br /&gt;
*  [http://www.umvphotoarchive.org/ Upper Mississippi digital photo archive]&lt;br /&gt;
&lt;br /&gt;
*  [http://libcat.smu.edu/ Southern University Library] Has a substantial archive of material from the Baldwin Locomotive works.&lt;br /&gt;
&lt;br /&gt;
*  [https://collections.stanford.edu/images/bin/page?forward=home   Stanford University public image archive]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8380</id>
		<title>Resources: Images</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8380"/>
		<updated>2015-06-09T20:49:41Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Textures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
&lt;br /&gt;
=== Textures ===&lt;br /&gt;
&lt;br /&gt;
This page contains links to resources for finding images useful in creating models for Trainz is a stub.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  [http://www.episcura.com/ Episcura] A source for high definition images and textures. A communication from the company, stated, in part:&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;...It is perfectly fine to use images from our site ... As long as the image is being used &lt;br /&gt;
     in the creation of an asset that is being sold, (i. e. models / backgrounds / advertisements,&lt;br /&gt;
     etc.) and NOT being redistributed as individual images/textures [and you] Episcura as a &lt;br /&gt;
     resource credit, [in the Config.sys file] and link back to our site where available.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*  [http://www.texturemate.com/ Texturemate] Free materials and image textures.&lt;br /&gt;
&lt;br /&gt;
=== Reference images ===&lt;br /&gt;
&lt;br /&gt;
The resources below contain images suitable as references for Trainz, but contain significant other resources as well. &lt;br /&gt;
&lt;br /&gt;
*  [http://www.loc.gov/photos/ Library of Congress (US)]&lt;br /&gt;
&lt;br /&gt;
*  [http://eris.uky.edu/catalog/ University of Kentucky digital library]&lt;br /&gt;
&lt;br /&gt;
*  [http://www.umvphotoarchive.org/ Upper Mississippi digital photo archive]&lt;br /&gt;
&lt;br /&gt;
*  [http://libcat.smu.edu/ Southern University Library] Has a substantial archive of material from the Baldwin Locomotive works.&lt;br /&gt;
&lt;br /&gt;
*  [https://collections.stanford.edu/images/bin/page?forward=home   Stanford University public image archive]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8379</id>
		<title>Resources: Images</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8379"/>
		<updated>2015-06-09T20:16:57Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Reference images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
&lt;br /&gt;
=== Textures ===&lt;br /&gt;
&lt;br /&gt;
This page contains links to resources for finding images useful in creating models for Trainz is a stub.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  [http://www.episcura.com/ Episcura] A source for high definition images and textures, According to a communication from the company, which reads, in part&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;...It is perfectly fine to use images from our site ... As long as the image is being used &lt;br /&gt;
     in the creation of an asset that is being sold, (i. e. models / backgrounds / advertisements,&lt;br /&gt;
     etc.) and NOT being redistributed as individual images/textures [and you] Episcura as a &lt;br /&gt;
     resource credit, [in the Config.sys file] and link back to our site where available.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*  [http://www.texturemate.com/ Texturemate] Free materials and image textures.&lt;br /&gt;
&lt;br /&gt;
=== Reference images ===&lt;br /&gt;
&lt;br /&gt;
The resources below contain images suitable as references for Trainz, but contain significant other resources as well. &lt;br /&gt;
&lt;br /&gt;
*  [http://www.loc.gov/photos/ Library of Congress (US)]&lt;br /&gt;
&lt;br /&gt;
*  [http://eris.uky.edu/catalog/ University of Kentucky digital library]&lt;br /&gt;
&lt;br /&gt;
*  [http://www.umvphotoarchive.org/ Upper Mississippi digital photo archive]&lt;br /&gt;
&lt;br /&gt;
*  [http://libcat.smu.edu/ Southern University Library] Has a substantial archive of material from the Baldwin Locomotive works.&lt;br /&gt;
&lt;br /&gt;
*  [https://collections.stanford.edu/images/bin/page?forward=home   Stanford University public image archive]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8378</id>
		<title>Resources: Images</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8378"/>
		<updated>2015-06-09T20:15:32Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Textures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
&lt;br /&gt;
=== Textures ===&lt;br /&gt;
&lt;br /&gt;
This page contains links to resources for finding images useful in creating models for Trainz is a stub.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  [http://www.episcura.com/ Episcura] A source for high definition images and textures, According to a communication from the company, which reads, in part&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;...It is perfectly fine to use images from our site ... As long as the image is being used &lt;br /&gt;
     in the creation of an asset that is being sold, (i. e. models / backgrounds / advertisements,&lt;br /&gt;
     etc.) and NOT being redistributed as individual images/textures [and you] Episcura as a &lt;br /&gt;
     resource credit, [in the Config.sys file] and link back to our site where available.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*  [http://www.texturemate.com/ Texturemate] Free materials and image textures.&lt;br /&gt;
&lt;br /&gt;
=== Reference images ===&lt;br /&gt;
&lt;br /&gt;
*  [http://www.loc.gov/photos/ Library of Congress (US)]&lt;br /&gt;
&lt;br /&gt;
*  [http://eris.uky.edu/catalog/ University of Kentucky digital library]&lt;br /&gt;
&lt;br /&gt;
*  [http://www.umvphotoarchive.org/ Upper Mississippi digital photo archive]&lt;br /&gt;
&lt;br /&gt;
*  [http://libcat.smu.edu/ Southern University Library] Has a substantial archive of material from the Baldwin Locomotive works.&lt;br /&gt;
&lt;br /&gt;
*  [https://collections.stanford.edu/images/bin/page?forward=home   Stanford University public image archive]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8377</id>
		<title>Resources: Images</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8377"/>
		<updated>2015-06-09T20:14:58Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
&lt;br /&gt;
=== Textures ===&lt;br /&gt;
&lt;br /&gt;
This page related to resources for finding images useful in creating models for Trainz is a stub.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  [http://www.episcura.com/ Episcura] A source for high definition images and textures, According to a communication from the company, which reads, in part&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;...It is perfectly fine to use images from our site ... As long as the image is being used &lt;br /&gt;
     in the creation of an asset that is being sold, (i. e. models / backgrounds / advertisements,&lt;br /&gt;
     etc.) and NOT being redistributed as individual images/textures [and you] Episcura as a &lt;br /&gt;
     resource credit, [in the Config.sys file] and link back to our site where available.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*  [http://www.texturemate.com/ Texturemate] Free materials and image textures.&lt;br /&gt;
&lt;br /&gt;
=== Reference images ===&lt;br /&gt;
&lt;br /&gt;
*  [http://www.loc.gov/photos/ Library of Congress (US)]&lt;br /&gt;
&lt;br /&gt;
*  [http://eris.uky.edu/catalog/ University of Kentucky digital library]&lt;br /&gt;
&lt;br /&gt;
*  [http://www.umvphotoarchive.org/ Upper Mississippi digital photo archive]&lt;br /&gt;
&lt;br /&gt;
*  [http://libcat.smu.edu/ Southern University Library] Has a substantial archive of material from the Baldwin Locomotive works.&lt;br /&gt;
&lt;br /&gt;
*  [https://collections.stanford.edu/images/bin/page?forward=home   Stanford University public image archive]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8376</id>
		<title>Resources: Images</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8376"/>
		<updated>2015-06-09T20:08:20Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Textures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Textures ===&lt;br /&gt;
&lt;br /&gt;
This page related to resources for finding images useful in creating models for Trainz is a stub.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  [http://www.episcura.com/ Episcura] A source for high definition images and textures, According to a communication from the company, which reads, in part&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;...It is perfectly fine to use images from our site ... As long as the image is being used &lt;br /&gt;
     in the creation of an asset that is being sold, (i. e. models / backgrounds / advertisements,&lt;br /&gt;
     etc.) and NOT being redistributed as individual images/textures [and you] Episcura as a &lt;br /&gt;
     resource credit, [in the Config.sys file] and link back to our site where available.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*  [http://www.texturemate.com/ Texturemate] Free materials and image textures.&lt;br /&gt;
&lt;br /&gt;
=== Reference images ===&lt;br /&gt;
&lt;br /&gt;
*  [http://www.loc.gov/photos/ Library of Congress (US)]&lt;br /&gt;
&lt;br /&gt;
*  [http://eris.uky.edu/catalog/ University of Kentucky digital library]&lt;br /&gt;
&lt;br /&gt;
*  [http://www.umvphotoarchive.org/ Upper Mississippi digital photo archive]&lt;br /&gt;
&lt;br /&gt;
*  [http://libcat.smu.edu/ Southern University Library] Has a substantial archive of material from the Baldwin Locomotive works.&lt;br /&gt;
&lt;br /&gt;
*  [https://collections.stanford.edu/images/bin/page?forward=home   Stanford University public image archive]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8375</id>
		<title>Resources: Images</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Resources:_Images&amp;diff=8375"/>
		<updated>2015-06-09T20:06:18Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Textures ===&lt;br /&gt;
&lt;br /&gt;
This page related to resources for finding images useful in creating models for Trainz is a stub.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  [http://www.episcura.com/ Episcura] A source for high definition images and textures, According to a communication from the company, which reads, in part&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;...It is perfectly fine to use images from our site ... As long as the image is being used in the creation of an asset that is being sold, (i. e. models / backgrounds / advertisements, etc.) and NOT being redistributed as individual images/textures [and you] Episcura as a resource credit, [in the Config.sys file] and link back to our site where available.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*  [http://www.texturemate.com/ Texturemate] Free materials and image textures.&lt;br /&gt;
&lt;br /&gt;
=== Reference images ===&lt;br /&gt;
&lt;br /&gt;
*  [http://www.loc.gov/photos/ Library of Congress (US)]&lt;br /&gt;
&lt;br /&gt;
*  [http://eris.uky.edu/catalog/ University of Kentucky digital library]&lt;br /&gt;
&lt;br /&gt;
*  [http://www.umvphotoarchive.org/ Upper Mississippi digital photo archive]&lt;br /&gt;
&lt;br /&gt;
*  [http://libcat.smu.edu/ Southern University Library] Has a substantial archive of material from the Baldwin Locomotive works.&lt;br /&gt;
&lt;br /&gt;
*  [https://collections.stanford.edu/images/bin/page?forward=home   Stanford University public image archive]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Modeling&amp;diff=8374</id>
		<title>Modeling</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Modeling&amp;diff=8374"/>
		<updated>2015-06-09T19:40:09Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ORP-top}}&lt;br /&gt;
N3V Games uses Autodesk 3DS Max for internal modeling needs. At the current time, this is the only N3V-supported tool for creating models for the Trainz environment. Details on exporters can be [[Max Exporters | found here]]. N3V does not support any other 3D modelling software or exporters at the current time. Third-party programmers looking to write exporters should investigate the [[Trainz Mesh Importer]] tool. Community members have also created exporters for the Blender and SketchUp modeling tools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction to Trainz modeling ==&lt;br /&gt;
&lt;br /&gt;
* [[Modeling Trains for Trainz]] - General Information for Artists&lt;br /&gt;
* [[Attachment Points]]&lt;br /&gt;
* [[Level of Detail]]&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
The following guides describe best practices for modeling in various scenarios, including a discussion of techniques, polygon counts, etc.&lt;br /&gt;
&lt;br /&gt;
* [[Modeling Guidelines]]&lt;br /&gt;
* [[Modeling Splines]]&lt;br /&gt;
* [[Modeling Scenery]]&lt;br /&gt;
* [[Runtime Performance Statistics]]&lt;br /&gt;
&lt;br /&gt;
== Modeling Resources ==&lt;br /&gt;
&lt;br /&gt;
=== Reference Tables ===&lt;br /&gt;
&lt;br /&gt;
* [[Resources:_Fixed_dimensions | Table of fixed dimensions]]&lt;br /&gt;
* [[Resources:_Density,_weight,_and_volume_of_materials | Table of density, volume, and weight of materials]]&lt;br /&gt;
&lt;br /&gt;
=== Books and publications ===&lt;br /&gt;
&lt;br /&gt;
=== Maps ===&lt;br /&gt;
&lt;br /&gt;
[[Resources:_Maps]]&lt;br /&gt;
&lt;br /&gt;
=== Plans ===&lt;br /&gt;
&lt;br /&gt;
[[Resources:_Plans]]&lt;br /&gt;
&lt;br /&gt;
=== Images ===&lt;br /&gt;
&lt;br /&gt;
[[Resources:_Images]]&lt;br /&gt;
&lt;br /&gt;
== Modern Content ==&lt;br /&gt;
&lt;br /&gt;
Trainz is a long-running project and some content (both user-created, and supplied by N3V Games) is built to outdated standards. If you&#039;re new to content creation in Trainz, or have recently upgraded from an older version of the product, you should take some time to familiarise yourself with the capabilities of the product and the expectations placed on any new content. All content built for current versions of Trainz should comply with the following:&lt;br /&gt;
&lt;br /&gt;
* 3D models require [[normal map]]s.&lt;br /&gt;
* [[KIND Groundtexture|Ground textures]] require normal maps and should have a texture resolution such as 1024x1024 or higher.&lt;br /&gt;
* Models should have high polygon detail, with [[Level of Detail|LOD]] fallbacks for older cards and distant objects.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
[[TC &amp;amp; TS2009 Example Meshes]] - 3D Studio Max files provided to demonstrate features and techniques used by the Trainz team during TS2009 developement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
[[Content Types]] - Using your models to build one of the supported Trainz content types, such as locomotives, scenery, and track.&lt;br /&gt;
&lt;br /&gt;
[[ACS Coupling System]] - How to create models that use working couplings&lt;br /&gt;
&lt;br /&gt;
[[Updating Steam Locos to TC3 Standards]] - Changing older models to use the new features introduced in TC3&lt;br /&gt;
&lt;br /&gt;
[[Getting Started with Normal Mapping]] - Creating a simple model using normal mapping.&lt;br /&gt;
&lt;br /&gt;
[[Material Types]] - Material types supported by Trainz.&lt;br /&gt;
&lt;br /&gt;
[[Max Exporters]] - 3D Studio Max exporters.&lt;br /&gt;
&lt;br /&gt;
[[Exporting with 3D Studio Max]] - Material setup and exporting with 3DS Max.&lt;br /&gt;
&lt;br /&gt;
[[New Vs Old Exporter]] - Comparison and FAQ between the new and old 3D Studio Max exporters.&lt;br /&gt;
&lt;br /&gt;
[[Trainz Mesh Importer]] - Trainz Mesh Importer a tool to assist importing models and animations from 3rd party applications.&lt;br /&gt;
&lt;br /&gt;
[[.texture.txt Files]] - What goes into a .texture.txt file&lt;br /&gt;
&lt;br /&gt;
[[Attachment Points]] - Information on attachment points&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling| ]]&lt;br /&gt;
{{ORP-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=KIND_Groundtexture&amp;diff=8345</id>
		<title>KIND Groundtexture</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=KIND_Groundtexture&amp;diff=8345"/>
		<updated>2015-05-21T01:39:13Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Scale, usage. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[KIND Groundtexture]] is an extension of [[KIND Texture]]. A ground texture is tiled in [[Surveyor]] to color and cover the base grid.&lt;br /&gt;
&lt;br /&gt;
==KIND Hierarchy==&lt;br /&gt;
===Parent Classes===&lt;br /&gt;
* [[KIND TrainzBaseSpec]]&lt;br /&gt;
===Child Classes===&lt;br /&gt;
&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Supported Tags==&lt;br /&gt;
The [[KIND Groundtexture]] [[config.txt file]] supports the following tags. Each tag is show here with its default value.&lt;br /&gt;
&lt;br /&gt;
 texture &amp;quot;&amp;quot;&lt;br /&gt;
 normal-texture &amp;quot;&amp;quot;&lt;br /&gt;
 clutter-mesh &amp;lt;NULL&amp;gt;&lt;br /&gt;
 season-selector&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
 texture-variants&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== texture ===&lt;br /&gt;
The &amp;quot;texture&amp;quot; tag specifies a [[Texture file]] located within the asset folder. See the discussion on the ground material below for more information on how this image is utilized.&lt;br /&gt;
&lt;br /&gt;
=== normal-texture ===&lt;br /&gt;
The &amp;quot;normal-texture&amp;quot; tag specifies a [[Texture file]] located within the asset folder. See the discussion on the ground material below for more information on how this image is utilized.&lt;br /&gt;
&lt;br /&gt;
=== clutter-mesh ===&lt;br /&gt;
A ground texture can optionally reference a low polygon mesh (a &amp;quot;clutter mesh&amp;quot;) and insert the mesh automatically as the ground is painted.&lt;br /&gt;
&lt;br /&gt;
=== season-selector ===&lt;br /&gt;
The [[&amp;quot;Season-selector&amp;quot; container]] allows the ground texture asset to adapt its appearance based on the current environmental conditions. This container provides selection logic to determine which seasonal variant to display.&lt;br /&gt;
&lt;br /&gt;
=== texture-variants ===&lt;br /&gt;
The [[&amp;quot;Texture-variants&amp;quot; container]] allows alternative appearances to be defined beyond the default. The container holds zero or more numbered variants, which correspond to the seasons defined by the [[&amp;quot;Season-selector&amp;quot; container]]. The default variant specified through the use of the &#039;&#039;texture&#039;&#039; tag is implicitly considered variant #0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Material==&lt;br /&gt;
The ground uses a material with three texture inputs. The first two are supplied by the Ground Texture asset, the third is supplied by Trainz at runtime.&lt;br /&gt;
&lt;br /&gt;
===Scale===&lt;br /&gt;
When choosing your image, make sure it is the proper scale so details does not look too large or too small in game.  The smallest scale setting in surveyor corresponds to an image 10 meters across, while the largest scale setting corresponds to 24 meters across.&lt;br /&gt;
&lt;br /&gt;
===Diffuse Texture===&lt;br /&gt;
The diffuse texture provides a [[diffuse map]], containing color information for the material.&lt;br /&gt;
&lt;br /&gt;
The alpha channel is not used for transparency, but instead controls the strength of the Reflective Texture on a per-pixel basis. White alpha shows diffuse only. Black alpha shows reflection only. Grays are a blend between the diffuse and the reflection. In most cases, a white or light gray value is appropriate.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
 texture &amp;quot;demo-diffuse.tga&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 [[image:demo-diffuse.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Normal Texture===&lt;br /&gt;
The normal texture provides a [[normal map]].&lt;br /&gt;
&lt;br /&gt;
The alpha channel provides per-pixel control of the [[specular highlight]]. White (255) gives a strong specular, suitable for metals and water. Black (0) gives no specular, more suitable for dark earth. Grays (1 - 254) give an intermediate specular ranging from very dark to very light.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When creating the .texture.txt file for the normal map, remember to include the following line, otherwise you will end up with odd effects such as shadowing when you rotate the texture.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NormalMapHint=normalmap&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
 normal-texture &amp;quot;demo-normal.tga&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 [[image:demo-normal.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Reflective Texture===&lt;br /&gt;
The reflective texture is a cubemap supplied by Trainz which provides an approximate reflection of the surrounding environment. The ground texture has no direct control over this texture, however the use of this texture can be switched on or off per ground texture and the strength of the reflection is controlled per pixel via the diffuse texture&#039;s alpha channel.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Attach sample files here?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sample [[config.txt file]] for a ground texture with a &#039;&#039;&#039;clutter mesh&#039;&#039;&#039;, with the Standard Tags excluded for brevity:&lt;br /&gt;
&lt;br /&gt;
 kind &amp;quot;groundtexture&amp;quot;&lt;br /&gt;
 texture &amp;quot;demo-diffuse.texture&amp;quot;&lt;br /&gt;
 normal-texture &amp;quot;demo-normal.texture&amp;quot;&lt;br /&gt;
 clutter-mesh &amp;lt;kuid:-3:10128&amp;gt;&lt;br /&gt;
 description &amp;quot;A very ugly Ground Texture with a whole bunch of Alaistair’s running around as the clutter mesh.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Categories==&lt;br /&gt;
[[Category:Asset KIND|G]]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Scaling_setup_in_Blender&amp;diff=8328</id>
		<title>HowTo/Scaling setup in Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Scaling_setup_in_Blender&amp;diff=8328"/>
		<updated>2015-05-18T18:59:17Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Setup Blender so that you can model to scale.&#039;&#039;&#039;&lt;br /&gt;
There are many ways of achieving a correct scale to your models in blender. This tutorial will cover a couple of those methods.&lt;br /&gt;
&lt;br /&gt;
First obtain a digital copy of a drawing of the object you wish to model. For this tutorial I found scale drawings of Pacific freight truck. The scale drawing had only one scale marker in the drawing but that&#039;s all I need. First I had to do some image editing so that the four different views all had a separate file for the view. Some cut and paste was necessary so that my scale marker was in each view. Then I saved them all to my project directory.&lt;br /&gt;
&lt;br /&gt;
[[File:files.png]]&lt;br /&gt;
&lt;br /&gt;
Open blender. Leave the default cube where it is and save your blend file to your project directory. The default unit for blender is a generic &#039;blender unit&#039;. We have to first change this. In the properties area of the UI go to the third tab over which is the scene tab. Under the scene tab there is a units section. I&#039;m selecting imperial because the scale marking in my diagram is in inches.&lt;br /&gt;
&lt;br /&gt;
[[File:Imp-select.png]]&lt;br /&gt;
&lt;br /&gt;
Hit N or go to the view menu and select properties. Notice that blender has two view menus. One is on the timeline window, but the one we want is at the bottom of the 3d view-port. There is a section in properties labeled mesh display. In there click on the radio button for length. Now go into object edit mode and select at least two vertices on your default cube. You will now see how far apart those points are.&lt;br /&gt;
&lt;br /&gt;
[[File:Measurements.png]]&lt;br /&gt;
&lt;br /&gt;
The default cube is 6.562&#039; square. Setup the left hand projection view-port with a background scale image. Hit CTRL + numpad 3 or go to view -&amp;gt; left. If you are still viewing things in the default 3d mode so hit numpad 5 or select view-&amp;gt; View Pers/Ortho. Next in the properties find the section background images and check the radio button for that. Then press the add image button and a new subsection will appear. In this subsection change the axis from all views to left. &lt;br /&gt;
&lt;br /&gt;
[[File:Background1.png]]&lt;br /&gt;
&lt;br /&gt;
Click on the open button and browse to your scale image for the left side and select it. Once you have a file selected there are more options that pop up in the current section. Your background image should now display in the 3d view-port as well. The image is centered at 0,0 of the view-port and scaling is set to 5.0. You should still be in edit mode working on the default cube. Scale that cube up until it is the same size as the scale marker on the background image. My marker is 240&amp;quot; so scale the default cube up to 20&#039;. Lastly adjust size value of my background image and reposition my default cube until they both match up as the same size.&lt;br /&gt;
&lt;br /&gt;
[[File:Background2.png]]&lt;br /&gt;
&lt;br /&gt;
The background image is the right size so that if I model things relative to that image everything will be to scale. You may notice that I&#039;m off a bit (.001) on the scaling of the default cube. For scenery items this is not that big of a deal but for engines and rail cars your going to want to play with the scale until its exactly right. Then don&#039;t touch the scale value for your background image ever again once you have it right. &lt;br /&gt;
&lt;br /&gt;
Lastly adjust Y value for the background image position and move the image up until the tires are sitting right on the Y axis. Repeat this process for each view that you have an image for and your all setup to start modeling.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Method 2&#039;&#039;&#039;&lt;br /&gt;
An alternate method that works well for scenery objects is to just start with one image of your scaled drawing. Do all the steps up until you have added the background image and can view it in the view-port. &#039;&#039;&#039;Don&#039;t&#039;&#039;&#039; change the scaling at all. This is very important because if you do this things will get messed up. Simply use the x and y positioning values to adjust the portion of the background centered appropriate for the view-port you currently working with. &lt;br /&gt;
&lt;br /&gt;
[[File:Background3.png]]&lt;br /&gt;
&lt;br /&gt;
Repeat this process until all your views are setup and then model away. You will not be modeling to scale but your proportions will all be the same. Once your done modelling you then select all your meshes and scale them up / down to the right scale before exporting. &lt;br /&gt;
&lt;br /&gt;
This is a good strategy if you have a scale drawing with no scale markings on it. All you have to know is the dimensions of one of any one part of your mesh. Scale everything so that that one part is correct and everything is then correct. For example if you have a scale drawing of a building and the door to your building is an 8&#039; door you use that measurement to see if your door is the right size. Just remember to scale everything together.&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Solve_Blender_Modelling_Problems&amp;diff=8308</id>
		<title>HowTo/Solve Blender Modelling Problems</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Solve_Blender_Modelling_Problems&amp;diff=8308"/>
		<updated>2015-05-13T09:57:17Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Using Blender for Making Trainz Content ==&lt;br /&gt;
&lt;br /&gt;
The Blender 3D modelling software is ideal for making content for Trainz and many 3rd party add-ons, tutorials, and documentation may be found online. Examples include the main {{plain link|http://www.blender.org |Blender}} site, {{plain link|http://http://www.blendernation.com/ |BlenderNation}} and {{plain link|http://blenderartists.org/ |Blender Artists}}.  A search of the web will reveal many others.&lt;br /&gt;
&lt;br /&gt;
Blender is a comples software suite with extensive functionality, some of which is not usable in Trainz. People looking to create content for Trainz using Blender would be well advised to start by learning Blender. Besides a variety of printed materials available commercially, there are two courses which can help a prospective content creator learn to use Blender for creating content. One of these is a {{plain link|http://www.cdschools.org/Page/455 |course}} geared towards high school students, taught by James Chronister, and available through the auspices of the Central Dauphin High School in Harrisburg, Pennsylvania. The other course is offered under the auspices of Tufts University in the US, and is geared towards college students. This {{plain link|http://http://gryllus.net/Blender/3D.html  |course}} is taught by Neil Hirsig. If in doubt, take both.&lt;br /&gt;
&lt;br /&gt;
Help specifically for Trainz purposes is harder to find.  There are some &amp;quot;How/Tos&amp;quot; on this site, some on {{plain link|http://en.wikibooks.org/wiki/Trainz/Tutorial_for_Blender |WiKi Books}}, Ian Cayden&#039;s {{plain link|http://www.doug56.net/MBC/ |Blender Notes}} and Paul Hobbs&#039; {{plain link|http://44090digitalmodels.co.uk/tutorials/index.htmltutorials Tutorials}}.  Paul Hobbs&#039; tutorial still recommends Blender 2.49b although a later revision may be available soon.&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
This page contains answers to frequently asked questions (FAQ) relating specifically to Trainz modelling and should be useful for both beginner and more experienced creators.  The Trainz Blender community is encouraged to add their own submissions.&lt;br /&gt;
&lt;br /&gt;
== Asking for Assistance ==&lt;br /&gt;
&lt;br /&gt;
When asking for help in the Trainz forums on issues related to using Blender for content creation, the following suggestions will help other members of the Trainz community assist you better.&lt;br /&gt;
&lt;br /&gt;
1) Get an account with a hosting service such as dropbox, where you can upload files about which you have questions.&lt;br /&gt;
&lt;br /&gt;
2) When seeking help with an issue related to Blender for content creation, upload a copy of your Blend file, and any other supporting files (textures, animations, screenshots, &amp;amp;c) to the dropbox file so that those who would wish to offer help can see the material with which you are working, and better understand the problems.&lt;br /&gt;
&lt;br /&gt;
== Exporting ==&lt;br /&gt;
&lt;br /&gt;
=== Surfaceless Polygons ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Symptom&#039;&#039;&#039;:  The exporter log contains a message like this:&lt;br /&gt;
&lt;br /&gt;
  15:33:10 WARNING: surfaceless Polygon(s) in Object &amp;quot;rdc12349end.001&amp;quot;, Mesh &amp;quot;Cube.097&amp;quot; detected&lt;br /&gt;
  15:33:10 INFO:    Vertices of surfaceless Polygon(s) gathered in Vertex Group &amp;quot;ERROR_surfaceless_Polygons&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Comment&#039;&#039;&#039;:  Surfaceless polygons (aka faceless faces) are polygons which cannot form a plane (face) between the polygons vertices.  This problem often arises when an extrusion is initiated but not completed.  In this case two or more vertices may occupy the same location.  Here is another explanation by Torsten:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Let&#039;s call the corner points (vertices) of a triangle (the simplest possible face) A, B and C. As long as all three corners have different locations they define a plane, a two dimensional object. The part of the plane inside all three vertices is what we call surface or face. So far for the &amp;quot;good&amp;quot; case. Now the &amp;quot;bad&amp;quot; case. Imagine point B moves to the location of A: suddenly we can no longer tell if what we see is a triangle or a line. We can no longer define a plane because all three vertices now only form a line (of course a line with three points instead the necessary two points). As our triangle (aka polygon) now has no surface (we need a plane -&amp;gt; 2D and have a line -&amp;gt; 1D) we have created a &amp;quot;surfaceless polygon&amp;quot;.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;The exporter itself needs a plane because for every exported triangle Trainz want to know its normal (to calculate the color of that face for example), and a 3D normal needs a 2D plane. Try to calculate the normal for a surfaceless polygon will end in a division by zero.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Solution&#039;&#039;&#039;:  This can be cured by selecting the mesh and using the &amp;quot;Remove doubles&amp;quot; command.  You can identify the problem vertices by selecting the problem mesh and then going into the Properties Browser and the Object Data (the triangle) tab.  There is a section called Vertex Groups and the newly created vertex group with the problem should be listed.  There are options to highlight the vertices in the group.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Comment&#039;&#039;&#039;:  Another cause of surfaceless polygons is when there are two edges that seem to join, but where the edge on one side does not have the same number of vertices as the edge on the other. As an example, if one starts with the default Blender cube, and extrudes the top face of the cube to create a first story. and extrudes the top face again to create a second story, the result is a stack of 3 &amp;quot;cubes&amp;quot;. Now, if one decides to add a door, or a window, in one face of the center cube of the stack by deleting the center face one side, and extrudes both vertical edges towards the center, and then makes a face from the two resulting extruded edges, one has created two surfaceless polygons, one from the four vertices that lie in a line at the top of the door, and one from the four vertices which lie at the bottom.  &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Solution&#039;&#039;&#039;:  A modificaton of the work flow. If one decides to add a opening, instead of deleting the face, and creating the opening by extruding edges or vertices, either make loop cuts around the object as needed, and delete the necessary face, or subdivide the face&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;See Also&#039;&#039;&#039;: This Trainz forum [http://forums.auran.com/trainz/showthread.php?111191-Trying-to-Get-Back-into-the-Blender-Game&amp;amp;p=1281909#post1281909  thread]&lt;br /&gt;
&lt;br /&gt;
== Making updating updating from one version of Blender to the next easier ==&lt;br /&gt;
&lt;br /&gt;
Blender updates every couple of months, on the average. One way to make the updating process easier is to store any Blender add-ons you use that are not included in the ordinary Blender distribution in a convenient place on your computer. Among the things to store in this folder are the latest version of the Trainz mesh exporter, and the Trainz mesh importer. This makes it easy to make the new version have all of the material of the old one, as it is simply necessary to copy the contents of the update folder into the appropriate locations of the Blender installation.&lt;br /&gt;
&lt;br /&gt;
== Next major topic ==&lt;br /&gt;
&lt;br /&gt;
=== Next FAQ ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling]]&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
[[Category:TBD]]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Mesh_stitching&amp;diff=8307</id>
		<title>Mesh stitching</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Mesh_stitching&amp;diff=8307"/>
		<updated>2015-05-13T09:50:48Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Limitations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Mesh stitching]] is an TS2009 rendering optimization that is automatically applied to many types of static meshes. It allows multiple smaller objects to be uploaded to the GPU as a single object, reducing per-object overheads that would otherwise apply.&lt;br /&gt;
&lt;br /&gt;
=Performance=&lt;br /&gt;
Modern GPUs have a per-material setup cost which results in a cost of roughly 300 polygons for any render chunk, regardless of whether that chunk is 1 polygon or 300. For chunks with significantly higher polygon count, this overhead is negligible, however when dealing with large numbers of small objects the overhead can quickly become far more expensive than the actual polygon rendering. [[Mesh stitching]] provides a mechanism, transparent to the content creator, of batching large numbers of small chunks into a single render call.&lt;br /&gt;
&lt;br /&gt;
In order for this technique to work, the chunks must all share the same material type. This is typically true when the same asset is placed repeatedly (for example, track, or trees in a forest) but can also occur through the use of a [[Mesh library]].&lt;br /&gt;
&lt;br /&gt;
[[Mesh stitching]] causes the provided mesh(es) to be broken into their component chunks, and then each chunk is stitched against other chunks in the scene which share the same material.&lt;br /&gt;
&lt;br /&gt;
Specific [[Level of Detail]] techniques apply to stitched meshes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Suitability=&lt;br /&gt;
TS2009 automatically determines whether a given object is a suitable candidate for [[Mesh stitching]]. There is no user mechanism for specifically enabling or disabling mesh stitching on a specific object, however there are various specific cases which are not supported by [[Mesh stitching]] and should be avoided where possible to allow maximum performance.&lt;br /&gt;
&lt;br /&gt;
* [[Mesh stitching]] is only applicable to meshes in the .IM file format. Meshes in .PM or .LM format are not candidates for stitching. &lt;br /&gt;
&lt;br /&gt;
* Meshes with animation skeletons are excluded from mesh stitching.&lt;br /&gt;
&lt;br /&gt;
* Meshes which are attached to a mesh which is not stitched, are typically not stitched.&lt;br /&gt;
&lt;br /&gt;
* Certain asset types are excluded from stitching because they are expected to move frequently. [[KIND Traincar]] and [[KIND Interior]] are examples of this (TBD: full list here.)&lt;br /&gt;
&lt;br /&gt;
* Meshes which have very high polygon counts are typically excluded from mesh stitching, as the cost of stitching is roughly proportional to the number of triangles and the benefit of stitching falls as the triangle count approaches the maximum hardware buffer size.&lt;br /&gt;
&lt;br /&gt;
* TBD: Other restrictions which prevent mesh stitching.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Limitations=&lt;br /&gt;
&lt;br /&gt;
Although for many purposes, [[mesh stitching]] is a huge win, there are a few potential downsides to the this approach.&lt;br /&gt;
&lt;br /&gt;
* There is a higher cost, both in terms of actual cpu time and in terms of latency, to modifying a stitched mesh in any way. Even a simple change, for example rotation or positioning, will require the mesh to be restitched. Meshes which are modified frequently are not good candidates for [[mesh stitching]], however it is not always possible for the game to detect that a mesh will be used in this manner. Care should be taken to avoid unnecessary modifications to meshes.&lt;br /&gt;
&lt;br /&gt;
* Since [[mesh stitching]] determines whether materials are shared at load time, it is not possible to use effects which would require the material to be manipulated at runtime where [[mesh stitching]] is active. This means that certain material-manipulating effects are now considered obsolete:&lt;br /&gt;
&lt;br /&gt;
:* Texture replacement must be performed by a texture-replacement effect in the mesh-table, so that the game is aware that the materials will be dynamically modified and is not suitable for [[mesh stitching]]. Texture replacement via script without using a texture-replacement effect will not function.&lt;br /&gt;
&lt;br /&gt;
:* Changes to material lighting parameters from script will not function. The material should be configured correctly in Max so that the final configuration is available to the game at load time.&lt;br /&gt;
&lt;br /&gt;
=Metrics=&lt;br /&gt;
The [[Runtime Performance Statistics]] display in Surveyor can be used to analyse the performance of the stitched mesh system. This is useful for testing entire scenes as well as accurately gathering data on single objects. Unlike counters in external tools, the statistics display provides a measure of how content is actually performing on your hardware. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TBD: How are attachment points affected?&lt;br /&gt;
&lt;br /&gt;
TBD: Script control of stitched meshes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See Also&lt;br /&gt;
[[Runtime_Performance_Statistics]]&lt;br /&gt;
&lt;br /&gt;
[[Category:TBD]]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Solve_Blender_Modelling_Problems&amp;diff=8282</id>
		<title>HowTo/Solve Blender Modelling Problems</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Solve_Blender_Modelling_Problems&amp;diff=8282"/>
		<updated>2015-05-12T18:50:23Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Asking for Assistance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Using Blender for Making Trainz Content ==&lt;br /&gt;
&lt;br /&gt;
The Blender 3D modelling software is ideal for making content for Trainz and many 3rd party add-ons, tutorials, and documentation may be found online. Examples include the main {{plain link|http://www.blender.org |Blender}} site, {{plain link|http://http://www.blendernation.com/ |BlenderNation}} and {{plain link|http://blenderartists.org/ |Blender Artists}}.  A search of the web will reveal many others.&lt;br /&gt;
&lt;br /&gt;
Blender is a comples software suite with extensive functionality, some of which is not usable in Trainz. People looking to create content for Trainz using Blender would be well advised to start by learning Blender. Besides a variety of printed materials available commercially, there are two courses which can help a prospective content creator learn to use Blender for creating content. One of these is a {{plain link|http://www.cdschools.org/Page/455 |course}} geared towards high school students, taught by James Chronister, and available through the auspices of the Central Dauphin High School in Harrisburg, Pennsylvania. The other course is offered under the auspices of Tufts University in the US, and is geared towards college students. This {{plain link|http://http://gryllus.net/Blender/3D.html  |course}} is taught by Neil Hirsig. If in doubt, take both.&lt;br /&gt;
&lt;br /&gt;
Help specifically for Trainz purposes is harder to find.  There are some &amp;quot;How/Tos&amp;quot; on this site, some on {{plain link|http://en.wikibooks.org/wiki/Trainz/Tutorial_for_Blender |WiKi Books}}, Ian Cayden&#039;s {{plain link|http://www.doug56.net/MBC/ |Blender Notes}} and Paul Hobbs&#039; {{plain link|http://44090digitalmodels.co.uk/tutorials/index.htmltutorials Tutorials}}.  Paul Hobbs&#039; tutorial still recommends Blender 2.49b although a later revision may be available soon.&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
This page contains answers to frequently asked questions (FAQ) relating specifically to Trainz modelling and should be useful for both beginner and more experienced creators.  The Trainz Blender community is encouraged to add their own submissions.&lt;br /&gt;
&lt;br /&gt;
== Asking for Assistance ==&lt;br /&gt;
&lt;br /&gt;
When asking for help in the Trainz forums on issues related to using Blender for content creation, the following suggestions will help other members of the Trainz community assist you better.&lt;br /&gt;
&lt;br /&gt;
1) Get an account with a hosting service such as dropbox, where you can upload files about which you have questions.&lt;br /&gt;
&lt;br /&gt;
2) When seeking help with an issue related to Blender for content creation, upload a copy of your Blend file, and any other supporting files (textures, animations, screenshots, &amp;amp;c) to the dropbox file so that those who would wish to offer help can see the material with which you are working, and better understand the problems.&lt;br /&gt;
&lt;br /&gt;
== Exporting ==&lt;br /&gt;
&lt;br /&gt;
=== Surfaceless Polygons ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Symptom&#039;&#039;&#039;:  The exporter log contains a message like this:&lt;br /&gt;
&lt;br /&gt;
  15:33:10 WARNING: surfaceless Polygon(s) in Object &amp;quot;rdc12349end.001&amp;quot;, Mesh &amp;quot;Cube.097&amp;quot; detected&lt;br /&gt;
  15:33:10 INFO:    Vertices of surfaceless Polygon(s) gathered in Vertex Group &amp;quot;ERROR_surfaceless_Polygons&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Comment&#039;&#039;&#039;:  Surfaceless polygons (aka faceless faces) are polygons which cannot form a plane (face) between the polygons vertices.  This problem often arises when an extrusion is initiated but not completed.  In this case two or more vertices may occupy the same location.  Here is another explanation by Torsten:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Let&#039;s call the corner points (vertices) of a triangle (the simplest possible face) A, B and C. As long as all three corners have different locations they define a plane, a two dimensional object. The part of the plane inside all three vertices is what we call surface or face. So far for the &amp;quot;good&amp;quot; case. Now the &amp;quot;bad&amp;quot; case. Imagine point B moves to the location of A: suddenly we can no longer tell if what we see is a triangle or a line. We can no longer define a plane because all three vertices now only form a line (of course a line with three points instead the necessary two points). As our triangle (aka polygon) now has no surface (we need a plane -&amp;gt; 2D and have a line -&amp;gt; 1D) we have created a &amp;quot;surfaceless polygon&amp;quot;.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;The exporter itself needs a plane because for every exported triangle Trainz want to know its normal (to calculate the color of that face for example), and a 3D normal needs a 2D plane. Try to calculate the normal for a surfaceless polygon will end in a division by zero.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Solution&#039;&#039;&#039;:  This can be cured by selecting the mesh and using the &amp;quot;Remove doubles&amp;quot; command.  You can identify the problem vertices by selecting the problem mesh and then going into the Properties Browser and the Object Data (the triangle) tab.  There is a section called Vertex Groups and the newly created vertex group with the problem should be listed.  There are options to highlight the vertices in the group.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Comment&#039;&#039;&#039;:  Another cause of surfaceless polygons is when there are two edges that seem to join, but where the edge on one side does not have the same number of vertices as the edge on the other. As an example, if one starts with the default Blender cube, and extrudes the top face of the cube to create a first story. and extrudes the top face again to create a second story, the result is a stack of 3 &amp;quot;cubes&amp;quot;. Now, if one decides to add a door, or a window, in one face of the center cube of the stack by deleting the center face one side, and extrudes both vertical edges towards the center, and then makes a face from the two resulting extruded edges, one has created two surfaceless polygons, one from the four vertices that lie in a line at the top of the door, and one from the four vertices which lie at the bottom.  &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Solution&#039;&#039;&#039;:  A modificaton of the work flow. If one decides to add a opening, instead of deleting the face, and creating the opening by extruding edges or vertices, either make loop cuts around the object as needed, and delete the necessary face, or subdivide the face&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;See Also&#039;&#039;&#039;: This Trainz forum [http://forums.auran.com/trainz/showthread.php?111191-Trying-to-Get-Back-into-the-Blender-Game&amp;amp;p=1281909#post1281909  thread]&lt;br /&gt;
&lt;br /&gt;
== Next major topic ==&lt;br /&gt;
&lt;br /&gt;
=== Next FAQ ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling]]&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
[[Category:TBD]]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Scaling_setup_in_Blender&amp;diff=8281</id>
		<title>HowTo/Scaling setup in Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Scaling_setup_in_Blender&amp;diff=8281"/>
		<updated>2015-05-12T18:47:41Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /General clean-up: correct spelling, remove unnecessary verbiage.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Setup Blender so that you can model to scale.&#039;&#039;&#039;&lt;br /&gt;
There are many ways of achieving a correct scale to your models in blender. This tutorial will cover a couple of those methods.&lt;br /&gt;
&lt;br /&gt;
First obtain a digital copy of a drawing of the object you wish to model. For this tutorial I found scale drawings of Pacific freight truck. The scale drawing had only one scale marker in the drawing but that&#039;s all I need. First I had to do some image editing so that the four different views all had a separate file for the view. Some cut and paste was necessary so that my scale marker was in each view. Then I saved them all to my project directory.&lt;br /&gt;
&lt;br /&gt;
[[File:files.png]]&lt;br /&gt;
&lt;br /&gt;
Open blender. Leave the default cube where it is and save your blend file to your project directory. The default unit for blender is some kind of non-existent &#039;blender&#039; unit. We have to first change this. In the properties area of the UI go to the third tab over which is the scene tab. Under the scene tab there is a units section. I&#039;m selecting imperial because the scale marking in my diagram is in inches.&lt;br /&gt;
&lt;br /&gt;
[[File:Imp-select.png]]&lt;br /&gt;
&lt;br /&gt;
Hit N or go to the view menu and select properties. Notice that blender has two view menus. One is on the timeline window, but the one we want is at the bottom of the 3d view-port. There is a section in properties labeled mesh display. In there click on the radio button for length. Now go into object edit mode and select at least two vertices on your default cube. You will now see how far apart those points are.&lt;br /&gt;
&lt;br /&gt;
[[File:Measurements.png]]&lt;br /&gt;
&lt;br /&gt;
The default cube is 6.562&#039; square. Setup the left hand projection view-port with a background scale image. Hit CTRL + numpad 3 or go to view -&amp;gt; left. If you are still viewing things in the default 3d mode so hit numpad 5 or select view-&amp;gt; View Pers/Ortho. Next in the properties find the section background images and check the radio button for that. Then press the add image button and a new subsection will appear. In this subsection change the axis from all views to left. &lt;br /&gt;
&lt;br /&gt;
[[File:Background1.png]]&lt;br /&gt;
&lt;br /&gt;
Click on the open button and browse to your scale image for the left side and select it. Once you have a file selected there are more options that pop up in the current section. Your background image should now display in the 3d view-port as well. The image is centered at 0,0 of the view-port and scaling is set to 5.0. You should still be in edit mode working on the default cube. Scale that cube up until it is the same size as the scale marker on the background image. My marker is 240&amp;quot; so scale the default cube up to 20&#039;. Lastly adjust size value of my background image and reposition my default cube until they both match up as the same size.&lt;br /&gt;
&lt;br /&gt;
[[File:Background2.png]]&lt;br /&gt;
&lt;br /&gt;
The background image is the right size so that if I model things relative to that image everything will be to scale. You may notice that I&#039;m off a bit (.001) on the scaling of the default cube. For scenery items this is not that big of a deal but for engines and rail cars your going to want to play with the scale until its exactly right. Then don&#039;t touch the scale value for your background image ever again once you have it right. &lt;br /&gt;
&lt;br /&gt;
Lastly adjust Y value for the background image position and move the image up until the tires are sitting right on the Y axis. Repeat this process for each view that you have an image for and your all setup to start modeling.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Method 2&#039;&#039;&#039;&lt;br /&gt;
An alternate method that works well for scenery objects is to just start with one image of your scaled drawing. Do all the steps up until you have added the background image and can view it in the view-port. &#039;&#039;&#039;Don&#039;t&#039;&#039;&#039; change the scaling at all. This is very important because if you do this things will get messed up. Simply use the x and y positioning values to adjust the portion of the background centered appropriate for the view-port you currently working with. &lt;br /&gt;
&lt;br /&gt;
[[File:Background3.png]]&lt;br /&gt;
&lt;br /&gt;
Repeat this process until all your views are setup and then model away. You will not be modeling to scale but your proportions will all be the same. Once your done modelling you then select all your meshes and scale them up / down to the right scale before exporting. &lt;br /&gt;
&lt;br /&gt;
This is a good strategy if you have a scale drawing with no scale markings on it. All you have to know is the dimensions of one of any one part of your mesh. Scale everything so that that one part is correct and everything is then correct. For example if you have a scale drawing of a building and the door to your building is an 8&#039; door you use that measurement to see if your door is the right size. Just remember to scale everything together.&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Scaling_setup_in_Blender&amp;diff=8280</id>
		<title>HowTo/Scaling setup in Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Scaling_setup_in_Blender&amp;diff=8280"/>
		<updated>2015-05-12T18:18:53Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Setup Blender so that you can model to scale.&#039;&#039;&#039;&lt;br /&gt;
There are many ways of achieving a correct scale to your models in blender. This tutorial will cover a couple of those methods.&lt;br /&gt;
&lt;br /&gt;
First obtain a digital copy of a drawing of the object you wish to model. For this tutorial I found scale drawings of Pacific freight truck. The scale drawing had only one scale marker in the drawing but that&#039;s all I need. First I had to do some image editing so that the four different views all had a separate file for the view. Some cut and paste was necessary so that my scale marker was in each view. Then I saved them all to my project directory.&lt;br /&gt;
&lt;br /&gt;
[[File:files.png]]&lt;br /&gt;
[http://i.imgur.com/SMaO6Gi.png]&lt;br /&gt;
&lt;br /&gt;
Ok now open blender. Leave the default cube where it is and save your blend file to your project directory. The default unit for blender is some kind of non-existent &#039;blender&#039; unit. We have to first change this. In the properties area of the UI go to the third tab over which is the scene tab. Under the scene tab there is a units section. I&#039;m selecting imperial because the scale marking in my diagram is in inches.&lt;br /&gt;
&lt;br /&gt;
[[File:Imp-select.png]]&lt;br /&gt;
[http://i.imgur.com/3lwCVrj.png]&lt;br /&gt;
&lt;br /&gt;
Now hit N or go to the view menu and select properties. Notice that blender has two view menus. One is on the timeline window, but the one we want is at the bottom of the 3d view-port. There is a section in properties labeled mesh display. In there click on the radio button for length. Now go into object edit mode and select at least two vertices on your default cube. You will now see how far apart those points are.&lt;br /&gt;
&lt;br /&gt;
[[File:Measurements.png]]&lt;br /&gt;
[http://i.imgur.com/HedZQIe.png]&lt;br /&gt;
&lt;br /&gt;
The default cube is 6.562&#039; square. Ok so next im going to setup my left hand projection view-port with a background scale image. Hit CTRL + numpad 3 or go to view -&amp;gt; left. Your probably still viewing things in the default 3d mode so hit numpad 5 or select view-&amp;gt; View Pers/Ortho. Next in the properties find the section background images and check the radio button for that. Then press the add image button and a new subsection will appear. In this subsection change the axis from all views to left. &lt;br /&gt;
&lt;br /&gt;
[[File:Background1.png]]&lt;br /&gt;
[http://i.imgur.com/Qux6tTi.png]&lt;br /&gt;
&lt;br /&gt;
Now click on the open button and brows to your scale image for the left side and select it. Once you have a file selected there are more options that pop up in the current section. Your background image should now display in the 3d view-port as well. The image is centered at 0,0 of the view-port and scaling is set to 5.0. You should still be in edit mode working on the default cube. Scale that cube up intil it is the same size as the scale marker on the background image. My marker is 240&amp;quot; so i scale the default cube up to 20&#039;. Lastly I play with the size value of my background image and reposition my default cube until they both match up as the same size.&lt;br /&gt;
&lt;br /&gt;
[[File:Background2.png]]&lt;br /&gt;
[http://i.imgur.com/ucsObgm.png]&lt;br /&gt;
&lt;br /&gt;
Ok now the background image is the right size so that if I model things relative to that image everything will be to scale. You may notice that I&#039;m off a bit (.001) on the scaling of the default cube. For scenery items this is not that big of a deal but for engines and rail cars your going to want to play with the scale until its exactly right. Then don&#039;t touch the scale value for your background image ever again once you have it right. &lt;br /&gt;
&lt;br /&gt;
Lastly im going to play with the Y value for the background image position and move the image up until the tires are sitting right on the Y axis. Repeat this process for each view that you have an image for and your all setup to start modeling.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Method 2&#039;&#039;&#039;&lt;br /&gt;
An alternate method that works well for scenery objects is to just start with one image of your scaled drawing. Do all the steps up until you have added the background image and can view it in the view-port. &#039;&#039;&#039;Don&#039;t&#039;&#039;&#039; change the scaling at all. This is very important because if you do this things will get messed up. Simply use the x and y positioning values to adjust the portion of the background centered appropriate for the view-port you currently working with. &lt;br /&gt;
&lt;br /&gt;
[[File:Background3.png]]&lt;br /&gt;
[http://i.imgur.com/LNN4f5i.png?1]&lt;br /&gt;
&lt;br /&gt;
Now repeat this process until all your views are setup and then model away. You will not be modeling to scale but your proportions will all be the same. Once your done modelling you then select all your meshes and scale them up / down to the right scale before exporting. &lt;br /&gt;
&lt;br /&gt;
This is a good strategy if you have a scale drawing with no scale markings on it. All you have to know is the dimensions of one of any one part of your mesh. Scale everything so that that one part is correct and everything is then correct. For example if you have a scale drawing of a building and the door to your building is an 8&#039; door you use that measurement to see if your door is the right size. Just remember to scale everything together.&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=CCG/Effects&amp;diff=8147</id>
		<title>CCG/Effects</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=CCG/Effects&amp;diff=8147"/>
		<updated>2015-04-23T08:12:26Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Breakdown of KIND NAME */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==EFFECTS (optional mesh-table variables)==&lt;br /&gt;
&lt;br /&gt;
==EFFECT: KIND NAME==&lt;br /&gt;
Some assets may have editable signs. When you set an asset&#039;s name in surveyor through the Edit Properties icon (&#039;?&#039; icon) the signage can be set-up to automatically update. The variables can be set for each sign.&lt;br /&gt;
&lt;br /&gt;
Typical Kind Name mesh table set-up You do not have to use the 0,1,2... block naming convention.&lt;br /&gt;
&lt;br /&gt;
For the name effects described in the example, 0 could easily be mainsign or something more relevant to your model.&lt;br /&gt;
&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
   default&lt;br /&gt;
   {&lt;br /&gt;
     mesh industry.lm&lt;br /&gt;
     auto-create 1&lt;br /&gt;
     effects&lt;br /&gt;
     {&lt;br /&gt;
       0&lt;br /&gt;
       {&lt;br /&gt;
         kind name&lt;br /&gt;
         fontsize 0.15&lt;br /&gt;
         fontcolor 30,30,30&lt;br /&gt;
         att a.name0&lt;br /&gt;
         name name&lt;br /&gt;
       }&lt;br /&gt;
       1&lt;br /&gt;
       {&lt;br /&gt;
         kind name&lt;br /&gt;
         fontsize 0.3&lt;br /&gt;
         fontcolor 30,30,30&lt;br /&gt;
         att a.name1&lt;br /&gt;
         name name&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Setting unique names may be useful for script purposes, so you can easily recognise a script reference for instance.&lt;br /&gt;
&lt;br /&gt;
===Breakdown of KIND NAME===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kind name&#039;&#039;&#039;&lt;br /&gt;
The effect kind&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fontsize&#039;&#039;&#039;&lt;br /&gt;
The size of the sign text&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fontcolor&#039;&#039;&#039;&lt;br /&gt;
The colour of the sign text in r.g.b.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;att&#039;&#039;&#039;&lt;br /&gt;
The sign text insertion point (part of the mesh). The attachment point must be orientated correctly in Blender, 3dsmax or gmax. The diagram shows the correct orientation of the axis.&lt;br /&gt;
 [NB: Note that there is a discontinuity between Blender, and GMAX. In Blender, the Z axis represents up, while in GMAX, the Y axis represents up. &lt;br /&gt;
 This needs to be taken to account in determining the proper orientation of your object, and the name to be attached.] &lt;br /&gt;
&lt;br /&gt;
[[Image:CCG_text_orientation.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Points are placed in top view in 3dsmax/gmax. When aligning the point in 3DSMax or GMax, click on the Hierarchy - Affect Pivot Only option to examine the axis direction, turn off the Affect Pivot Only selection, and rotate the point itself to the correct orientation. Click on the Affect Pivot Only option again to check the new alignment. Make sure you rotate the point, not the axis.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;name&#039;&#039;&#039;&lt;br /&gt;
The default text when placed&lt;br /&gt;
&lt;br /&gt;
When name name is specified, it uses the asset&#039;s changeable name option, changed through the Edit Properties icon (the `?&#039; icon) in Surveyor.&lt;br /&gt;
&lt;br /&gt;
If name &#039;&#039;Graceland&#039;&#039; (for example) were used, the sign would never be able to be changed, even though the user may have changed the asset&#039;s name in Surveyor. When you use the name tag, this name will appear in the minimap. In some instances the names will be hard to distinguish in a crowded map. For this reason, it may be advisable to limit the use of the name tag to objects that have a use for the attribute.&lt;br /&gt;
&lt;br /&gt;
==EFFECT: KIND CORONA==&lt;br /&gt;
&lt;br /&gt;
A corona is a `glow&#039; light effect. It is a simple texture that is inserted at an attachment point within the mesh. Coronas can be added to any asset that uses a mesh-table.&lt;br /&gt;
&lt;br /&gt;
Examples of coronas used in-game can be seen on the Cessna and the Airport tower all use flashing coronas.&lt;br /&gt;
&lt;br /&gt;
===Breakdown of KIND CORONA:===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kind corona&#039;&#039;&#039; (required)&lt;br /&gt;
The effect kind&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;att&#039;&#039;&#039; (required)&lt;br /&gt;
The corona insertion point in the main mesh.(an attachment point)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;texture-kuid&#039;&#039;&#039; (optional)&lt;br /&gt;
Add this tag only when you want to specify your own texture for the corona. It specifies the KUID of a kind texture asset. See KIND TEXTURE.&lt;br /&gt;
&lt;br /&gt;
Typical Kind Corona mesh-table set-up&lt;br /&gt;
&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
   default&lt;br /&gt;
   {&lt;br /&gt;
     mesh asset.lm&lt;br /&gt;
     auto-create 1&lt;br /&gt;
     effects&lt;br /&gt;
     {&lt;br /&gt;
       0&lt;br /&gt;
       {&lt;br /&gt;
         kind corona&lt;br /&gt;
         att a.corona0&lt;br /&gt;
         texture-kuid &amp;lt;KUID:-3:10110&amp;gt;&lt;br /&gt;
         frequency 2&lt;br /&gt;
         directional 0&lt;br /&gt;
         object-size 0.20&lt;br /&gt;
       }&lt;br /&gt;
       1&lt;br /&gt;
       {&lt;br /&gt;
         kind corona&lt;br /&gt;
         att a.corona1&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the texture-kuid tag is not present the corona will use the default yellow/orange texture in TRS. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;frequency&#039;&#039;&#039; 2 (optional)&lt;br /&gt;
This variable specifies the frequency in Hz (or `flashes&#039; per second). e.g. 1 for once per second, 0.5 for once every 2 seconds, 2 for twice per second.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;directional&#039;&#039;&#039; 0 (optional)&lt;br /&gt;
The default for coronas is to be aligned to the attachment point to face the NEGATIVE Z direction. This is especially useful for Traincars.&lt;br /&gt;
&lt;br /&gt;
Adding this tag over-rides this behavior, to make the corona always face the screen ­ useful for scenery objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;object-size&#039;&#039;&#039; 0.15 (optional)&lt;br /&gt;
Size of the corona on the object when viewed up close,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Trainz released corona textures:&lt;br /&gt;
    · Yellow/orange corona     Default (if no texture-kuid)&lt;br /&gt;
    · Green corona             &amp;lt;KUID:-3:10110&amp;gt;&lt;br /&gt;
    · Red corona               &amp;lt;KUID:-3:10112&amp;gt;&lt;br /&gt;
    · White corona             &amp;lt;KUID:-3:10111&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==EFFECT: KIND TEXTURE-REPLACEMENT==&lt;br /&gt;
This effect was created for rolling stock items to swap the visible texture of bulk loads (such as coal or woodchips). If a coal car is set up to take any bulk load (which includes woodchips) the `coal&#039; texture on the load mesh will update to a `woodchips&#039; texture when it loads woodchips.&lt;br /&gt;
&lt;br /&gt;
For detailed information on the setup of rolling stock load, see Page 375 .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==EFFECT: KIND ATTACHMENT==&lt;br /&gt;
&lt;br /&gt;
In Trainz we have the ability to attach a mesh into another mesh by referencing it&#039;s KUID through a mesh-table.&lt;br /&gt;
An example is the red display arrows for the fixed-track assets.&lt;br /&gt;
&lt;br /&gt;
Rather than having an arrow in each fixed-track asset directory, we saved a lot of memory space by making the config.txt file reference a KUID of that mesh. Therefore,it only needed to be cached once. The mesh to be used should only be of kind scenery or kind mesh.&lt;br /&gt;
&lt;br /&gt;
Kind Attachment example (fixed-track)&lt;br /&gt;
&lt;br /&gt;
 username FT 10 Deg 700m Rad&lt;br /&gt;
 kind fixedtrack&lt;br /&gt;
 kuid &amp;lt;KUID2:####:#######:1&amp;gt;&lt;br /&gt;
 region Fixed track&lt;br /&gt;
 preview-mesh-kuid &amp;lt;KUID:-3:10099&amp;gt;&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
   default&lt;br /&gt;
   {&lt;br /&gt;
     mesh 10-700.im&lt;br /&gt;
     auto-create 1&lt;br /&gt;
     effects&lt;br /&gt;
     {&lt;br /&gt;
       arrow0&lt;br /&gt;
       {&lt;br /&gt;
         kind attachment&lt;br /&gt;
         att a.track0a&lt;br /&gt;
         default-mesh &amp;lt;KUID:-3:10092&amp;gt;&lt;br /&gt;
         surveyor-only 1&lt;br /&gt;
       }&lt;br /&gt;
       arrow1&lt;br /&gt;
       {&lt;br /&gt;
         kind attachment&lt;br /&gt;
         att a.track0e&lt;br /&gt;
         default-mesh &amp;lt;KUID:-3:10092&amp;gt;&lt;br /&gt;
         surveyor-only 1&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 attached-track&lt;br /&gt;
 {&lt;br /&gt;
   track0&lt;br /&gt;
   {&lt;br /&gt;
     track &amp;lt;KUID:-1:15&amp;gt;&lt;br /&gt;
     vertices&lt;br /&gt;
     {&lt;br /&gt;
       0 a.track0a&lt;br /&gt;
       1 a.track0c&lt;br /&gt;
       2 a.track0e&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
WARNING: Never cross-reference a kind attachment KUID with the assets own KUID, unless of course you want to see an instant fatal error!&lt;br /&gt;
&lt;br /&gt;
Fixed Track configuration used in this example&lt;br /&gt;
&lt;br /&gt;
[[Image:CCG_Arrow_on_Fixed_track.jpg]]&lt;br /&gt;
&lt;br /&gt;
Arrow mesh config.txt (for reference)&lt;br /&gt;
&lt;br /&gt;
  kuid &amp;lt;KUID:-3:10092&amp;gt;&lt;br /&gt;
  kind mesh&lt;br /&gt;
  mesh-table&lt;br /&gt;
  {&lt;br /&gt;
    default&lt;br /&gt;
    {&lt;br /&gt;
      mesh arrow.im&lt;br /&gt;
      auto-create 1&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
===Breakdown of KIND ATTACHMENT:===&lt;br /&gt;
&lt;br /&gt;
Note that the example covers the information relating to the attachment. Additional entries for category region, era, trainz-build, etc. are necessary to make a complete config.txt file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kind attachment&#039;&#039;&#039; (required)&lt;br /&gt;
The effect kind&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;att&#039;&#039;&#039; (required)&lt;br /&gt;
The insertion point of the attached mesh. In the example left, it is the origin of the `default&#039; mesh.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;default-mesh&#039;&#039;&#039; &amp;lt;KUID2:####:#######:1&amp;gt; (required)&lt;br /&gt;
The KUID of the attached mesh.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;surveyor-only&#039;&#039;&#039; 1 (optional)&lt;br /&gt;
Adding this means the attached mesh will only be visible in Surveyor and not Driver. For tracks, this is especially handy so you know when it starts and ends, but it won&#039;t be there when driving around.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;attached-track&#039;&#039;&#039;&lt;br /&gt;
Information on the track to be attached to the model by Trainz. This includes a name for the track (track0), the track KUID to be used, and attachment points placed in the 3dsmax/gmax model to define the curve for the attached track to follow.&lt;br /&gt;
&lt;br /&gt;
The points use the a.name naming convention, any names may be used, but using the &amp;quot;track&amp;quot; name (a.track0a) for rails, and the &amp;quot;road&amp;quot; name (a.road0a) is convenient. A specified road spline connection will generate road traffic.&lt;br /&gt;
&lt;br /&gt;
See Page 91 for more details on using the attachment points and the special orientation of the axis at the ends of the track.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==EFFECT: KIND ANIMATION==&lt;br /&gt;
&lt;br /&gt;
This effect is used when a mesh has a variety of animations. Usually the animations will be controlled by a script related to the asset.&lt;br /&gt;
An example of the kind animation effect is the PB15 interior coalman. The script for this ties in the animations with the coal requirements of the steam locomotive.&lt;br /&gt;
&lt;br /&gt;
 coalman&lt;br /&gt;
   {&lt;br /&gt;
     mesh coalman/coalman.im&lt;br /&gt;
     auto-create 1&lt;br /&gt;
     att-parent default&lt;br /&gt;
     att a.coalman&lt;br /&gt;
     effects&lt;br /&gt;
     {&lt;br /&gt;
       shovel&lt;br /&gt;
       {&lt;br /&gt;
          kind animation&lt;br /&gt;
          anim coalman/coalman_shovel.kin&lt;br /&gt;
       }&lt;br /&gt;
       wave&lt;br /&gt;
       {&lt;br /&gt;
          kind animation&lt;br /&gt;
          anim coalman/Coalman_wave.kin&lt;br /&gt;
       }&lt;br /&gt;
   Etc...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Breakdown of KIND ANIMATION:===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kind animation&#039;&#039;&#039; (required)&lt;br /&gt;
The effect kind&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;anim&#039;&#039;&#039; (required)&lt;br /&gt;
Reference to the animation file (.kin)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;looped&#039;&#039;&#039; 1 (optional) &lt;br /&gt;
Use only if the animation is looping (repeating). &#039;&#039;Default 0 (i.e. not looped).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;speed&#039;&#039;&#039; 1 (optional)&lt;br /&gt;
Speed factor of the animation. &#039;&#039;Default 1, 2 = Double speed and 0.5 = Half speed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The PB15 config.txt can be viewed on:&lt;br /&gt;
&lt;br /&gt;
The PB15 interior script can be viewed on:&lt;br /&gt;
&lt;br /&gt;
==Return to CCG Index==&lt;br /&gt;
[[Content Creator&#039;s Guide]]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=CCG/Effects&amp;diff=8146</id>
		<title>CCG/Effects</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=CCG/Effects&amp;diff=8146"/>
		<updated>2015-04-23T05:25:28Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Added note about difference in orientation of &amp;quot;up&amp;quot; in Blender, and &amp;quot;up&amp;quot; in GMAX. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==EFFECTS (optional mesh-table variables)==&lt;br /&gt;
&lt;br /&gt;
==EFFECT: KIND NAME==&lt;br /&gt;
Some assets may have editable signs. When you set an asset&#039;s name in surveyor through the Edit Properties icon (&#039;?&#039; icon) the signage can be set-up to automatically update. The variables can be set for each sign.&lt;br /&gt;
&lt;br /&gt;
Typical Kind Name mesh table set-up You do not have to use the 0,1,2... block naming convention.&lt;br /&gt;
&lt;br /&gt;
For the name effects described in the example, 0 could easily be mainsign or something more relevant to your model.&lt;br /&gt;
&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
   default&lt;br /&gt;
   {&lt;br /&gt;
     mesh industry.lm&lt;br /&gt;
     auto-create 1&lt;br /&gt;
     effects&lt;br /&gt;
     {&lt;br /&gt;
       0&lt;br /&gt;
       {&lt;br /&gt;
         kind name&lt;br /&gt;
         fontsize 0.15&lt;br /&gt;
         fontcolor 30,30,30&lt;br /&gt;
         att a.name0&lt;br /&gt;
         name name&lt;br /&gt;
       }&lt;br /&gt;
       1&lt;br /&gt;
       {&lt;br /&gt;
         kind name&lt;br /&gt;
         fontsize 0.3&lt;br /&gt;
         fontcolor 30,30,30&lt;br /&gt;
         att a.name1&lt;br /&gt;
         name name&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Setting unique names may be useful for script purposes, so you can easily recognise a script reference for instance.&lt;br /&gt;
&lt;br /&gt;
===Breakdown of KIND NAME===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kind name&#039;&#039;&#039;&lt;br /&gt;
The effect kind&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fontsize&#039;&#039;&#039;&lt;br /&gt;
The size of the sign text&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fontcolor&#039;&#039;&#039;&lt;br /&gt;
The colour of the sign text in r.g.b.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;att&#039;&#039;&#039;&lt;br /&gt;
The sign text insertion point (part of the mesh). The attachment point must be orientated correctly in Blender, 3dsmax or gmax. [NB: Note that there is a discontinuity between Blender, and GMAX. In Blender, the Z axis represents up, while in GMAX, the Y axis represents up. This needs to be taken to account in determining the proper orientation of your object, and the name to be attached.] The diagram shows the correct orientation of the axis.&lt;br /&gt;
&lt;br /&gt;
[[Image:CCG_text_orientation.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Points are placed in top view in 3dsmax/gmax. When aligning the point in 3DSMax or GMax, click on the Hierarchy - Affect Pivot Only option to examine the axis direction, turn off the Affect Pivot Only selection, and rotate the point itself to the correct orientation. Click on the Affect Pivot Only option again to check the new alignment. Make sure you rotate the point, not the axis.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;name&#039;&#039;&#039;&lt;br /&gt;
The default text when placed&lt;br /&gt;
&lt;br /&gt;
When name name is specified, it uses the asset&#039;s changeable name option, changed through the Edit Properties icon (the `?&#039; icon) in Surveyor.&lt;br /&gt;
&lt;br /&gt;
If name &#039;&#039;Graceland&#039;&#039; (for example) were used, the sign would never be able to be changed, even though the user may have changed the asset&#039;s name in Surveyor. When you use the name tag, this name will appear in the minimap. In some instances the names will be hard to distinguish in a crowded map. For this reason, it may be advisable to limit the use of the name tag to objects that have a use for the attribute.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==EFFECT: KIND CORONA==&lt;br /&gt;
&lt;br /&gt;
A corona is a `glow&#039; light effect. It is a simple texture that is inserted at an attachment point within the mesh. Coronas can be added to any asset that uses a mesh-table.&lt;br /&gt;
&lt;br /&gt;
Examples of coronas used in-game can be seen on the Cessna and the Airport tower all use flashing coronas.&lt;br /&gt;
&lt;br /&gt;
===Breakdown of KIND CORONA:===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kind corona&#039;&#039;&#039; (required)&lt;br /&gt;
The effect kind&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;att&#039;&#039;&#039; (required)&lt;br /&gt;
The corona insertion point in the main mesh.(an attachment point)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;texture-kuid&#039;&#039;&#039; (optional)&lt;br /&gt;
Add this tag only when you want to specify your own texture for the corona. It specifies the KUID of a kind texture asset. See KIND TEXTURE.&lt;br /&gt;
&lt;br /&gt;
Typical Kind Corona mesh-table set-up&lt;br /&gt;
&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
   default&lt;br /&gt;
   {&lt;br /&gt;
     mesh asset.lm&lt;br /&gt;
     auto-create 1&lt;br /&gt;
     effects&lt;br /&gt;
     {&lt;br /&gt;
       0&lt;br /&gt;
       {&lt;br /&gt;
         kind corona&lt;br /&gt;
         att a.corona0&lt;br /&gt;
         texture-kuid &amp;lt;KUID:-3:10110&amp;gt;&lt;br /&gt;
         frequency 2&lt;br /&gt;
         directional 0&lt;br /&gt;
         object-size 0.20&lt;br /&gt;
       }&lt;br /&gt;
       1&lt;br /&gt;
       {&lt;br /&gt;
         kind corona&lt;br /&gt;
         att a.corona1&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
If the texture-kuid tag is not present the corona will use the default yellow/orange texture in TRS. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;frequency&#039;&#039;&#039; 2 (optional)&lt;br /&gt;
This variable specifies the frequency in Hz (or `flashes&#039; per second). e.g. 1 for once per second, 0.5 for once every 2 seconds, 2 for twice per second.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;directional&#039;&#039;&#039; 0 (optional)&lt;br /&gt;
The default for coronas is to be aligned to the attachment point to face the NEGATIVE Z direction. This is especially useful for Traincars.&lt;br /&gt;
&lt;br /&gt;
Adding this tag over-rides this behavior, to make the corona always face the screen ­ useful for scenery objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;object-size&#039;&#039;&#039; 0.15 (optional)&lt;br /&gt;
Size of the corona on the object when viewed up close,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Trainz released corona textures:&lt;br /&gt;
    · Yellow/orange corona     Default (if no texture-kuid)&lt;br /&gt;
    · Green corona             &amp;lt;KUID:-3:10110&amp;gt;&lt;br /&gt;
    · Red corona               &amp;lt;KUID:-3:10112&amp;gt;&lt;br /&gt;
    · White corona             &amp;lt;KUID:-3:10111&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==EFFECT: KIND TEXTURE-REPLACEMENT==&lt;br /&gt;
This effect was created for rolling stock items to swap the visible texture of bulk loads (such as coal or woodchips). If a coal car is set up to take any bulk load (which includes woodchips) the `coal&#039; texture on the load mesh will update to a `woodchips&#039; texture when it loads woodchips.&lt;br /&gt;
&lt;br /&gt;
For detailed information on the setup of rolling stock load, see Page 375 .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==EFFECT: KIND ATTACHMENT==&lt;br /&gt;
&lt;br /&gt;
In Trainz we have the ability to attach a mesh into another mesh by referencing it&#039;s KUID through a mesh-table.&lt;br /&gt;
An example is the red display arrows for the fixed-track assets.&lt;br /&gt;
&lt;br /&gt;
Rather than having an arrow in each fixed-track asset directory, we saved a lot of memory space by making the config.txt file reference a KUID of that mesh. Therefore,it only needed to be cached once. The mesh to be used should only be of kind scenery or kind mesh.&lt;br /&gt;
&lt;br /&gt;
Kind Attachment example (fixed-track)&lt;br /&gt;
&lt;br /&gt;
 username FT 10 Deg 700m Rad&lt;br /&gt;
 kind fixedtrack&lt;br /&gt;
 kuid &amp;lt;KUID2:####:#######:1&amp;gt;&lt;br /&gt;
 region Fixed track&lt;br /&gt;
 preview-mesh-kuid &amp;lt;KUID:-3:10099&amp;gt;&lt;br /&gt;
 mesh-table&lt;br /&gt;
 {&lt;br /&gt;
   default&lt;br /&gt;
   {&lt;br /&gt;
     mesh 10-700.im&lt;br /&gt;
     auto-create 1&lt;br /&gt;
     effects&lt;br /&gt;
     {&lt;br /&gt;
       arrow0&lt;br /&gt;
       {&lt;br /&gt;
         kind attachment&lt;br /&gt;
         att a.track0a&lt;br /&gt;
         default-mesh &amp;lt;KUID:-3:10092&amp;gt;&lt;br /&gt;
         surveyor-only 1&lt;br /&gt;
       }&lt;br /&gt;
       arrow1&lt;br /&gt;
       {&lt;br /&gt;
         kind attachment&lt;br /&gt;
         att a.track0e&lt;br /&gt;
         default-mesh &amp;lt;KUID:-3:10092&amp;gt;&lt;br /&gt;
         surveyor-only 1&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 attached-track&lt;br /&gt;
 {&lt;br /&gt;
   track0&lt;br /&gt;
   {&lt;br /&gt;
     track &amp;lt;KUID:-1:15&amp;gt;&lt;br /&gt;
     vertices&lt;br /&gt;
     {&lt;br /&gt;
       0 a.track0a&lt;br /&gt;
       1 a.track0c&lt;br /&gt;
       2 a.track0e&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
WARNING: Never cross-reference a kind attachment KUID with the assets own KUID, unless of course you want to see an instant fatal error!&lt;br /&gt;
&lt;br /&gt;
Fixed Track configuration used in this example&lt;br /&gt;
&lt;br /&gt;
[[Image:CCG_Arrow_on_Fixed_track.jpg]]&lt;br /&gt;
&lt;br /&gt;
Arrow mesh config.txt (for reference)&lt;br /&gt;
&lt;br /&gt;
  kuid &amp;lt;KUID:-3:10092&amp;gt;&lt;br /&gt;
  kind mesh&lt;br /&gt;
  mesh-table&lt;br /&gt;
  {&lt;br /&gt;
    default&lt;br /&gt;
    {&lt;br /&gt;
      mesh arrow.im&lt;br /&gt;
      auto-create 1&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
===Breakdown of KIND ATTACHMENT:===&lt;br /&gt;
&lt;br /&gt;
Note that the example covers the information relating to the attachment. Additional entries for category region, era, trainz-build, etc. are necessary to make a complete config.txt file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kind attachment&#039;&#039;&#039; (required)&lt;br /&gt;
The effect kind&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;att&#039;&#039;&#039; (required)&lt;br /&gt;
The insertion point of the attached mesh. In the example left, it is the origin of the `default&#039; mesh.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;default-mesh&#039;&#039;&#039; &amp;lt;KUID2:####:#######:1&amp;gt; (required)&lt;br /&gt;
The KUID of the attached mesh.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;surveyor-only&#039;&#039;&#039; 1 (optional)&lt;br /&gt;
Adding this means the attached mesh will only be visible in Surveyor and not Driver. For tracks, this is especially handy so you know when it starts and ends, but it won&#039;t be there when driving around.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;attached-track&#039;&#039;&#039;&lt;br /&gt;
Information on the track to be attached to the model by Trainz. This includes a name for the track (track0), the track KUID to be used, and attachment points placed in the 3dsmax/gmax model to define the curve for the attached track to follow.&lt;br /&gt;
&lt;br /&gt;
The points use the a.name naming convention, any names may be used, but using the &amp;quot;track&amp;quot; name (a.track0a) for rails, and the &amp;quot;road&amp;quot; name (a.road0a) is convenient. A specified road spline connection will generate road traffic.&lt;br /&gt;
&lt;br /&gt;
See Page 91 for more details on using the attachment points and the special orientation of the axis at the ends of the track.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==EFFECT: KIND ANIMATION==&lt;br /&gt;
&lt;br /&gt;
This effect is used when a mesh has a variety of animations. Usually the animations will be controlled by a script related to the asset.&lt;br /&gt;
An example of the kind animation effect is the PB15 interior coalman. The script for this ties in the animations with the coal requirements of the steam locomotive.&lt;br /&gt;
&lt;br /&gt;
 coalman&lt;br /&gt;
   {&lt;br /&gt;
     mesh coalman/coalman.im&lt;br /&gt;
     auto-create 1&lt;br /&gt;
     att-parent default&lt;br /&gt;
     att a.coalman&lt;br /&gt;
     effects&lt;br /&gt;
     {&lt;br /&gt;
       shovel&lt;br /&gt;
       {&lt;br /&gt;
          kind animation&lt;br /&gt;
          anim coalman/coalman_shovel.kin&lt;br /&gt;
       }&lt;br /&gt;
       wave&lt;br /&gt;
       {&lt;br /&gt;
          kind animation&lt;br /&gt;
          anim coalman/Coalman_wave.kin&lt;br /&gt;
       }&lt;br /&gt;
   Etc...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Breakdown of KIND ANIMATION:===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kind animation&#039;&#039;&#039; (required)&lt;br /&gt;
The effect kind&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;anim&#039;&#039;&#039; (required)&lt;br /&gt;
Reference to the animation file (.kin)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;looped&#039;&#039;&#039; 1 (optional) &lt;br /&gt;
Use only if the animation is looping (repeating). &#039;&#039;Default 0 (i.e. not looped).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;speed&#039;&#039;&#039; 1 (optional)&lt;br /&gt;
Speed factor of the animation. &#039;&#039;Default 1, 2 = Double speed and 0.5 = Half speed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The PB15 config.txt can be viewed on:&lt;br /&gt;
&lt;br /&gt;
The PB15 interior script can be viewed on:&lt;br /&gt;
&lt;br /&gt;
==Return to CCG Index==&lt;br /&gt;
[[Content Creator&#039;s Guide]]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Solve_Blender_Modelling_Problems&amp;diff=8109</id>
		<title>HowTo/Solve Blender Modelling Problems</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Solve_Blender_Modelling_Problems&amp;diff=8109"/>
		<updated>2015-04-08T08:40:50Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Using Blender for Making Trainz Content ==&lt;br /&gt;
&lt;br /&gt;
The Blender 3D modelling software is ideal for making content for Trainz and many 3rd party add-ons, tutorials, and documentation may be found online. Examples include the main {{plain link|http://www.blender.org |Blender}} site, {{plain link|http://http://www.blendernation.com/ |BlenderNation}} and {{plain link|http://blenderartists.org/ |Blender Artists}}.  A search of the web will reveal many others.&lt;br /&gt;
&lt;br /&gt;
Blender is a comples software suite with extensive functionality, some of which is not usable in Trainz. People looking to create content for Trainz using Blender would be well advised to start by learning Blender. Besides a variety of printed materials available commercially, there are two courses which can help a prospective content creator learn to use Blender for creating content. One of these is a {{plain link|http://www.cdschools.org/Page/455 |course}} geared towards high school students, taught by James Chronister, and available through the auspices of the Central Dauphin High School in Harrisburg, Pennsylvania. The other course is offered under the auspices of Tufts University in the US, and is geared towards college students. This {{plain link|http://http://gryllus.net/Blender/3D.html  |course}} is taught by Neil Hirsig. If in doubt, take both.&lt;br /&gt;
&lt;br /&gt;
Help specifically for Trainz purposes is harder to find.  There are some &amp;quot;How/Tos&amp;quot; on this site, some on {{plain link|http://en.wikibooks.org/wiki/Trainz/Tutorial_for_Blender |WiKi Books}}, Ian Cayden&#039;s {{plain link|http://www.doug56.net/MBC/ |Blender Notes}} and Paul Hobbs&#039; {{plain link|http://44090digitalmodels.co.uk/tutorials/index.htmltutorials Tutorials}}.  Paul Hobbs&#039; tutorial still recommends Blender 2.49b although a later revision may be available soon.&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
This page contains answers to frequently asked questions (FAQ) relating specifically to Trainz modelling and should be useful for both beginner and more experienced creators.  The Trainz Blender community is encouraged to add their own submissions.&lt;br /&gt;
&lt;br /&gt;
== Asking for Assistance ==&lt;br /&gt;
&lt;br /&gt;
When asking for help in the Trainz forums on issues related to using Blender for content creation, the following complying with the following suggestions will make getting better results quicker.&lt;br /&gt;
&lt;br /&gt;
1) Get an account with a hosting service such as dropbox, where you can upload files about which you have questions.&lt;br /&gt;
&lt;br /&gt;
2) When seeking help with an issue related to Blender for content creation, upload a copy of your Blend file, and any other supporting files (textures, animations, screenshots, &amp;amp;c) to the dropbox file so that those who would wish to offer help can see the material with which you are working, and better understand the problems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporting ==&lt;br /&gt;
&lt;br /&gt;
=== Surfaceless Polygons ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Symptom&#039;&#039;&#039;:  The exporter log contains a message like this:&lt;br /&gt;
&lt;br /&gt;
  15:33:10 WARNING: surfaceless Polygon(s) in Object &amp;quot;rdc12349end.001&amp;quot;, Mesh &amp;quot;Cube.097&amp;quot; detected&lt;br /&gt;
  15:33:10 INFO:    Vertices of surfaceless Polygon(s) gathered in Vertex Group &amp;quot;ERROR_surfaceless_Polygons&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Comment&#039;&#039;&#039;:  Surfaceless polygons (aka faceless faces) are polygons which cannot form a plane (face) between the polygons vertices.  This problem often arises when an extrusion is initiated but not completed.  In this case two or more vertices may occupy the same location.  Here is another explanation by Torsten:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Let&#039;s call the corner points (vertices) of a triangle (the simplest possible face) A, B and C. As long as all three corners have different locations they define a plane, a two dimensional object. The part of the plane inside all three vertices is what we call surface or face. So far for the &amp;quot;good&amp;quot; case. Now the &amp;quot;bad&amp;quot; case. Imagine point B moves to the location of A: suddenly we can no longer tell if what we see is a triangle or a line. We can no longer define a plane because all three vertices now only form a line (of course a line with three points instead the necessary two points). As our triangle (aka polygon) now has no surface (we need a plane -&amp;gt; 2D and have a line -&amp;gt; 1D) we have created a &amp;quot;surfaceless polygon&amp;quot;.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;The exporter itself needs a plane because for every exported triangle Trainz want to know its normal (to calculate the color of that face for example), and a 3D normal needs a 2D plane. Try to calculate the normal for a surfaceless polygon will end in a division by zero.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Solution&#039;&#039;&#039;:  This can be cured by selecting the mesh and using the &amp;quot;Remove doubles&amp;quot; command.  You can identify the problem vertices by selecting the problem mesh and then going into the Properties Browser and the Object Data (the triangle) tab.  There is a section called Vertex Groups and the newly created vertex group with the problem should be listed.  There are options to highlight the vertices in the group.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Comment&#039;&#039;&#039;:  Another cause of surfaceless polygons is when there are two edges that seem to join, but where the edge on one side does not have the same number of vertices as the edge on the other. As an example, if one starts with the default Blender cube, and extrudes the top face of the cube to create a first story. and extrudes the top face again to create a second story, the result is a stack of 3 &amp;quot;cubes&amp;quot;. Now, if one decides to add a door, or a window, in one face of the center cube of the stack by deleting the center face one side, and extrudes both vertical edges towards the center, and then makes a face from the two resulting extruded edges, one has created two surfaceless polygons, one from the four vertices that lie in a line at the top of the door, and one from the four vertices which lie at the bottom.  &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Solution&#039;&#039;&#039;:  A modificaton of the work flow. If one decides to add a opening, instead of deleting the face, and creating the opening by extruding edges or vertices, either make loop cuts around the object as needed, and delete the necessary face, or subdivide the face&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;See Also&#039;&#039;&#039;: This Trainz forum [http://forums.auran.com/trainz/showthread.php?111191-Trying-to-Get-Back-into-the-Blender-Game&amp;amp;p=1281909#post1281909  thread]&lt;br /&gt;
&lt;br /&gt;
== Next major topic ==&lt;br /&gt;
&lt;br /&gt;
=== Next FAQ ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling]]&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
[[Category:TBD]]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Solve_Blender_Modelling_Problems&amp;diff=8108</id>
		<title>HowTo/Solve Blender Modelling Problems</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Solve_Blender_Modelling_Problems&amp;diff=8108"/>
		<updated>2015-04-08T08:34:13Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Using Blender for Making Trainz Content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Using Blender for Making Trainz Content ==&lt;br /&gt;
&lt;br /&gt;
The Blender 3D modelling software is ideal for making content for Trainz and many 3rd party add-ons, tutorials, and documentation may be found online. Examples include the main {{plain link|http://www.blender.org |Blender}} site, {{plain link|http://http://www.blendernation.com/ |BlenderNation}} and {{plain link|http://blenderartists.org/ |Blender Artists}}.  A search of the web will reveal many others.&lt;br /&gt;
&lt;br /&gt;
Blender is a comples software suite with extensive functionality, some of which is not usable in Trainz. People looking to create content for Trainz using Blender would be well advised to start by learning Blender. Besides a variety of printed materials available commercially, there are two courses which can help a prospective content creator learn to use Blender for creating content. One of these is a {{plain link|http://www.cdschools.org/Page/455 |course}} geared towards high school students, taught by James Chronister, and available through the auspices of the Central Dauphin High School in Harrisburg, Pennsylvania. The other course is offered under the auspices of Tufts University in the US, and is geared towards college students. This {{plain link|http://http://gryllus.net/Blender/3D.html  |course}} is taught by Neil Hirsig. If in doubt, take both.&lt;br /&gt;
&lt;br /&gt;
Help specifically for Trainz purposes is harder to find.  There are some &amp;quot;How/Tos&amp;quot; on this site, some on {{plain link|http://en.wikibooks.org/wiki/Trainz/Tutorial_for_Blender |WiKi Books}}, Ian Cayden&#039;s {{plain link|http://www.doug56.net/MBC/ |Blender Notes}} and Paul Hobbs&#039; {{plain link|http://44090digitalmodels.co.uk/tutorials/index.htmltutorials Tutorials}}.  Paul Hobbs&#039; tutorial still recommends Blender 2.49b although a later revision may be available soon.&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
This page contains answers to frequently asked questions (FAQ) relating specifically to Trainz modelling and should be useful for both beginner and more experienced creators.  The Trainz Blender community is encouraged to add their own submissions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporting ==&lt;br /&gt;
&lt;br /&gt;
=== Surfaceless Polygons ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Symptom&#039;&#039;&#039;:  The exporter log contains a message like this:&lt;br /&gt;
&lt;br /&gt;
  15:33:10 WARNING: surfaceless Polygon(s) in Object &amp;quot;rdc12349end.001&amp;quot;, Mesh &amp;quot;Cube.097&amp;quot; detected&lt;br /&gt;
  15:33:10 INFO:    Vertices of surfaceless Polygon(s) gathered in Vertex Group &amp;quot;ERROR_surfaceless_Polygons&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Comment&#039;&#039;&#039;:  Surfaceless polygons (aka faceless faces) are polygons which cannot form a plane (face) between the polygons vertices.  This problem often arises when an extrusion is initiated but not completed.  In this case two or more vertices may occupy the same location.  Here is another explanation by Torsten:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Let&#039;s call the corner points (vertices) of a triangle (the simplest possible face) A, B and C. As long as all three corners have different locations they define a plane, a two dimensional object. The part of the plane inside all three vertices is what we call surface or face. So far for the &amp;quot;good&amp;quot; case. Now the &amp;quot;bad&amp;quot; case. Imagine point B moves to the location of A: suddenly we can no longer tell if what we see is a triangle or a line. We can no longer define a plane because all three vertices now only form a line (of course a line with three points instead the necessary two points). As our triangle (aka polygon) now has no surface (we need a plane -&amp;gt; 2D and have a line -&amp;gt; 1D) we have created a &amp;quot;surfaceless polygon&amp;quot;.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;The exporter itself needs a plane because for every exported triangle Trainz want to know its normal (to calculate the color of that face for example), and a 3D normal needs a 2D plane. Try to calculate the normal for a surfaceless polygon will end in a division by zero.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Solution&#039;&#039;&#039;:  This can be cured by selecting the mesh and using the &amp;quot;Remove doubles&amp;quot; command.  You can identify the problem vertices by selecting the problem mesh and then going into the Properties Browser and the Object Data (the triangle) tab.  There is a section called Vertex Groups and the newly created vertex group with the problem should be listed.  There are options to highlight the vertices in the group.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Comment&#039;&#039;&#039;:  Another cause of surfaceless polygons is when there are two edges that seem to join, but where the edge on one side does not have the same number of vertices as the edge on the other. As an example, if one starts with the default Blender cube, and extrudes the top face of the cube to create a first story. and extrudes the top face again to create a second story, the result is a stack of 3 &amp;quot;cubes&amp;quot;. Now, if one decides to add a door, or a window, in one face of the center cube of the stack by deleting the center face one side, and extrudes both vertical edges towards the center, and then makes a face from the two resulting extruded edges, one has created two surfaceless polygons, one from the four vertices that lie in a line at the top of the door, and one from the four vertices which lie at the bottom.  &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Solution&#039;&#039;&#039;:  A modificaton of the work flow. If one decides to add a opening, instead of deleting the face, and creating the opening by extruding edges or vertices, either make loop cuts around the object as needed, and delete the necessary face, or subdivide the face&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;See Also&#039;&#039;&#039;: This Trainz forum [http://forums.auran.com/trainz/showthread.php?111191-Trying-to-Get-Back-into-the-Blender-Game&amp;amp;p=1281909#post1281909  thread]&lt;br /&gt;
&lt;br /&gt;
== Next major topic ==&lt;br /&gt;
&lt;br /&gt;
=== Next FAQ ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling]]&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
[[Category:TBD]]&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8105</id>
		<title>HowTo/Export from Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8105"/>
		<updated>2015-04-02T08:03:56Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Introduction of Blender */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FUN-beg}}&lt;br /&gt;
== Introduction of Blender ==&lt;br /&gt;
&lt;br /&gt;
{{plain link|http://www.blender.org |Blender}} is an open source free {{Wp|3D graphics|3D modelling}} application or tool supported by the contribution of programming and development time by the user community.  For more information on Blender and its capabilities, please visit the {{plain link|http://www.blender.org |Blender website}}.  Blender evolves rapidly and it is not uncommon to see releases about every two months. As of 31 March, 2015, the current version is 2.74.&lt;br /&gt;
&lt;br /&gt;
Blender is extendable through the use of &amp;quot;add-ons&amp;quot; produced either by the Blender Foundation or by Blender users.  One of those add-ons is the Trainz Blender exporter that was built and is maintained by USCHI0815 (Torsten).  Torsten usually announces updates to the Exporter through the Trainz Content Creation Support forum.  As of 24 April, 2014, the current version of the Blender exporter is V0.96.&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
===Caveat===&lt;br /&gt;
[http://www.blender.org Blender] is not currently supported by N3V as a modeling source for Trainz, however third-party tools exist for this purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== About This Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The scope of this tutorial has been extended to include installation of Blender and installation of the Blender Exporter since this has been an issue discussed several times in the N3V Content Creation forum.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
To export to Trainz you need the following:&lt;br /&gt;
&lt;br /&gt;
:*  Trainz (TS09 or later preferred)&lt;br /&gt;
:*  [[Downloads|TrainzMeshImporter.exe]].   This is provided by N3V.&lt;br /&gt;
:*  [http://www.blender.org/download/ Blender] (v. 2.57 or later is recommended).&lt;br /&gt;
:*  [https://bitbucket.org/uschi0815/blender-exporter-for-trainz/downloads/ The Blender Exporter]. &lt;br /&gt;
:*  Windows XP, Vista, Windows 7 (32 or 64 bit) or Windows 8 (32 or 64 bit) or Mac OS X (32 or 64 bits).&lt;br /&gt;
&lt;br /&gt;
=== Blender Installation Notes ===&lt;br /&gt;
&lt;br /&gt;
Blender is available for a number of operating systems including Windows XP, Windows Vista and Windows 7.  Both 32 bit and 64 bit versions are available.&lt;br /&gt;
You can choose either the installer version or a zip archive.  Please read any notes on the Blender.org download page: particularly if you are upgrading from a previous version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installer Version ===&lt;br /&gt;
&lt;br /&gt;
The Installer Version is the easiest way to install Blender but there can be complications.  If you install Blender into the default directory you should choose &amp;quot;Use Application Data Directory&amp;quot; during installation of Blender. Otherwise it might not be possible to save your preferred Exporter options due to insufficient permissions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blender Zip Archive Version ===&lt;br /&gt;
&lt;br /&gt;
The zip archive version allows you to unzip the entire Blender folder structure and locate it in any location that suits you.  The only drawback is that you will need to set up your own links to the Blender executable (Blender.exe).&lt;br /&gt;
&lt;br /&gt;
== Installing the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Blender exporter add-on must be installed in the &amp;quot;scripts\addons&amp;quot; area of the Blender data space. The following process will install it in the correct location.&lt;br /&gt;
&lt;br /&gt;
=== Install Blender Exporter for Trainz ===&lt;br /&gt;
&lt;br /&gt;
:* Download the exporter.&lt;br /&gt;
:* Start Blender.&lt;br /&gt;
:* Open a new project(File -&amp;gt; New).&lt;br /&gt;
:* Open User Preferences(File -&amp;gt; User Preferences...).&lt;br /&gt;
:* Select Add-Ons panel and press button &amp;quot;Install from file...&amp;quot; down at the panel button bar.&lt;br /&gt;
:* Select and install downloaded file: you don&#039;t need to extract it.&lt;br /&gt;
:* Enable &amp;quot;TRAINZ Exporter&amp;quot; in Add-On list and press button &amp;quot;Save As Default&amp;quot; to keep it enabled for all subsequent Blender starts.&lt;br /&gt;
&lt;br /&gt;
=== Install the N3V TrainzMeshImporter ===&lt;br /&gt;
&lt;br /&gt;
:* Download the [http://online.ts2009.com/mediaWiki/index.php5/Downloads TrainzMeshImporter.exe].  The file is in the RAR format that can be extracted by most zip file management programs.&lt;br /&gt;
:* Before using the exporter you must copy the TrainzMeshExporter.exe to the same location as the Blender Exporter add-on.  The following will help find that location:&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and leave the default cube mesh in place.&lt;br /&gt;
:* If necessary, open the console window so you can read the error messages. In versions 2.5 through 2.63a, the console window is opened using the &amp;quot;toggle system console&amp;quot; menu entry in the &amp;quot;help&amp;quot; menu in the Blender menu bar. Beginning with version 2.64, the &amp;quot;toggle system console&amp;quot; menu has been moved to the &amp;quot;window&amp;quot; menu in the Blender menu bar. Those running a Blender version 2.49 or earlier can disregard this step, as the system console is in a window that is open whenever Blender is active. &lt;br /&gt;
:* Go to File-&amp;gt;Export and select &amp;quot;Trainz Mesh and Animation&amp;quot;.  Use the default settings but make sure that the save location is a temporary or working space.&lt;br /&gt;
:* The Exporter will complain about a missing file in a specific folder.   The missing file is TrainzMeshImporter and the folder name is the location you need.&lt;br /&gt;
:* The location is usually in the form of &amp;quot;ERROR&amp;quot;  file &amp;quot;C:Users\your name\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons\TrainzMeshExporter.exe&amp;quot; not found&amp;quot;.  This example is typical of using the default Blender Installer.  If you chose to install Blender using the zip archive then the location will be different.&lt;br /&gt;
:* Copy TrainzMeshExporter.exe to the location provided.  If you cannot access the AppData folder see the [http://online.ts2009.com/mediaWiki/index.php5?title=HowTo/Export_from_Blender&amp;amp;action=submit#Additional_Notes Additional Notes] section for help.&lt;br /&gt;
:* Once you have copied TrainzMeshExporter.exe to the correct location retry the export.&lt;br /&gt;
&lt;br /&gt;
== Exporting an Asset ==&lt;br /&gt;
&lt;br /&gt;
The creation of an asset suitable for Trainz is a long and complex process.  For the purposes of this tutorial we will only export the standard Blender cube.  Some knowledge of Blender and creation of assets for Trainz purposes is assumed.&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and save the default cube as &amp;quot;cube.blend&amp;quot; in your preferred working location.&lt;br /&gt;
:* Create a simple material such as &amp;quot;cube.m.onetex&amp;quot; and allocate a simple colour texture file. For the purpose of this tutorial leave the default mapping technique to &amp;quot;generated&amp;quot;.  This will cause an error.&lt;br /&gt;
:* UV map the cube to the texture.&lt;br /&gt;
:* Save the Blender file.&lt;br /&gt;
:* Go to File-&amp;gt;Export and select Trainz Mesh and Animation.&lt;br /&gt;
:* The dialog box that appears gives a output save location for the XML, log, texture description and other files produced by the process.  Select your preferred location.&lt;br /&gt;
:* All the other options can be left as default.  If you were exporting a mesh that included animation, then you would also select &amp;quot;Export Animation Data&amp;quot;.&lt;br /&gt;
:* When you are ready, select &amp;quot;Export Trainz&amp;quot; in the top right hand corner.&lt;br /&gt;
:* This export process will fail with an error since the &amp;quot;generated&amp;quot; mapping option for textures is not supported when using an image file.  Go back to the Texture section and change the mapping option to UV and then export again.  This time it should export correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporter Output ==&lt;br /&gt;
&lt;br /&gt;
=== Files Created ===&lt;br /&gt;
The Exporter produces:&lt;br /&gt;
&lt;br /&gt;
:* An XML file.  This is used by TrainzMeshImporter.&lt;br /&gt;
:* The IM mesh file required by Trainz.&lt;br /&gt;
:* The texture description files (nnn.texture.txt) required by Trainz.&lt;br /&gt;
:* The KIN animation file required by Trainz if animation is used.&lt;br /&gt;
:* A log of the export process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error Reporting ===&lt;br /&gt;
Errors are reported in the Blender System Console and the Exporter log. Errors will prevent the production of the target IM file and therefore must be addressed.&lt;br /&gt;
Typical errors are:&lt;br /&gt;
&lt;br /&gt;
==== Mesh Errors ====&lt;br /&gt;
&lt;br /&gt;
:*Objects without a parent where a root bone exists.&lt;br /&gt;
&lt;br /&gt;
==== Material Related Errors ====&lt;br /&gt;
&lt;br /&gt;
:* No UV layer for UV mapped objects. Blender usually creates a default.&lt;br /&gt;
:* Use of the same material for both single and double sided meshes.  Recommend only using single sided meshes.&lt;br /&gt;
:* Objects without an assigned material.  Recommend assigning a material for each object.&lt;br /&gt;
:* Faces without a material in an object.  The faces will have been collected into a Vertex Group to enable correction. This error can also be caused by material slots in blender to which no material is assigned.   &lt;br /&gt;
:* Use of similar material names if character case is ignored.  i.e. &amp;quot;Black&amp;quot; and &amp;quot;black&amp;quot; are considered the same by Trainz.&lt;br /&gt;
:* Not using UV mapping for textures that are either using alpha, normal or specular.&lt;br /&gt;
:* Not using UV or reflect mapping for diffuse textures.&lt;br /&gt;
&lt;br /&gt;
==== Animation Errors ====&lt;br /&gt;
&lt;br /&gt;
:* More than one root bone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
Warnings are basically flaws or possible flaws that the user may wish to address.  Warnings do not prevent production of the IM output files. Some typicals warnings include:&lt;br /&gt;
&lt;br /&gt;
==== Animation Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Possible incorrect location and rotation of root bone.&lt;br /&gt;
:* Bones not found or no animation data found.&lt;br /&gt;
:* Events not found or unrecognised.&lt;br /&gt;
:* Event frame numbers in wrong positions.&lt;br /&gt;
&lt;br /&gt;
==== Mesh Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Vertices influenced by more than four vertex groups.&lt;br /&gt;
&lt;br /&gt;
==== Name Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Unrecommended characters.  Material, texture, object and path names should only be composed of a-z, A-Z, 0-9 or -_./\ characters.  A typical error is use of a space character in a path name.  The Exporter will change Blender file names that include upper case letters to lower case letters.  Generally, it is recommended you avoid the use of upper case characters in names.&lt;br /&gt;
&lt;br /&gt;
==== Material Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Surfaceless faces in an object.  The Exporter will gather these faces and put them into a Vertex Group to aid identification. The Vertex Group can be found in the triangle panel associated with the Safety Valve object.&lt;br /&gt;
:* Objects exported with double sided faces.   This will become an error if a material is used for both single and double sided objects.&lt;br /&gt;
:* Material renamed.  If the name does not match one of the standard Trainz material names then the Exporter will try and effect a solution.  Typically a name such as &amp;quot;black&amp;quot; will be renamed &amp;quot;blackm.onetex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Export Log ===&lt;br /&gt;
&lt;br /&gt;
The Exporter Log contains a record of events during the export process including errors and warnings.  The numTriangles report is the number of polygons (aka polys) in the mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Material Recognition by the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Exporter tries to identify materials in use by the asset mesh and will provide a warning if the detected material decoration varies from that declared in the Blender file.  The term &amp;quot;material decoration&amp;quot; is one of the standard Trainz material names such as &amp;quot;m.onetext&amp;quot; or &amp;quot;m.tbumptex&amp;quot;. The following decision process, provided by Torsten, may be useful for developers.&lt;br /&gt;
&lt;br /&gt;
The decision which material decoration is used is made by the texturing schema used for the material:&lt;br /&gt;
&lt;br /&gt;
: no texture used -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: one texture used:&lt;br /&gt;
:: invalid texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: reflection texture  -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: two textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse &amp;amp; reflection -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: three textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha &amp;amp; reflection -&amp;gt;&#039;&#039;&#039; m.gloss&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: normal texture used:&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; alpha &amp;amp; no reflection -&amp;gt; &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; reflection &amp;amp; no alpha -&amp;gt; &#039;&#039;&#039;m.tbumpgloss&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; no alpha &amp;amp; no reflection-&amp;gt; &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As material &#039;&#039;&#039;m.notex&#039;&#039;&#039; causes problems with specific assets&#039;&#039;&#039;, m.onetex&#039;&#039;&#039; is used instead. It also works perfectly without any texture.&lt;br /&gt;
The problem with &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039; and &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is that, besides the usage of an alpha texture (which is not used for &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039;), both use a diffuse and normal texture. In this case &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is chosen.&lt;br /&gt;
&lt;br /&gt;
Generally, you can use any material decoration you want. The script does not change a syntactically correct material decoration(e.g. Material&#039;&#039;&#039;m.billboard&#039;&#039;&#039; would pass unchanged).  It only drops a message to remind you that you either use an unsupported material(as warning) or that it had chosen another material(as info).&lt;br /&gt;
&lt;br /&gt;
If you check the issue and find it to be OK than you can safely ignore those messages.&lt;br /&gt;
&lt;br /&gt;
Blenders texture influences are nearly equivalent to MAX material maps. Because diffuse textures and reflection textures both influence diffuse color, the decision between them is made by checking texture mapping coordinates to:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;MAX map -&amp;gt; Blender texture influence&#039;&#039;&#039;&lt;br /&gt;
: Ambient Color -&amp;gt; Shading Ambient&lt;br /&gt;
: Diffuse Color -&amp;gt; Diffuse Color &amp;amp; UV mapping&lt;br /&gt;
: Specular Color -&amp;gt; Specular Color&lt;br /&gt;
: Specular Level -&amp;gt; Specular Intensity&lt;br /&gt;
: Glossiness -&amp;gt; Specular Hardness&lt;br /&gt;
: Self-Illumination -&amp;gt; Shading Emit&lt;br /&gt;
: Opacity -&amp;gt; Diffuse Alpha&lt;br /&gt;
: Filter Color -&amp;gt; Diffuse Translucency&lt;br /&gt;
: Bump -&amp;gt; Geometry Normal&lt;br /&gt;
: Reflection -&amp;gt; Diffuse Color &amp;amp; Reflection mapping &lt;br /&gt;
: Refraction -&amp;gt; not available(not found?)&lt;br /&gt;
: Displacement -&amp;gt; Geometry Displacement&lt;br /&gt;
&lt;br /&gt;
== Torsten&#039;s Hints  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These hints are reproduced from the Exporter script since many will not want to edit or view the actual script contents.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Trainz models you can have two kinds of special objects: attachment points and bones. For attachment points, the exporter expects objects of type &amp;quot;Empty&amp;quot;. For bones, objects of type &amp;quot;Lattice&amp;quot; and &amp;quot;Armature&amp;quot; will be accepted.  All of them need to be named according the naming conventions in effect for attachements( a.* ) and bones( b.r.* ). Objects of other type and objects with proper type but names not matching this conventions will be ignored as attachment points or bones.&lt;br /&gt;
&lt;br /&gt;
If you want to export animations with events, than you have to create a Blender TX object and enter the lines as you would do to create an event file. By renaming this object to &amp;quot;events&amp;quot; you ensure the exporter will not ignore your event list.&lt;br /&gt;
&lt;br /&gt;
It is possible to make parent-child-relations between meshes to simplify the design process. However, the chain must be end with a valid parent bone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Blender Data Files ===&lt;br /&gt;
 &lt;br /&gt;
Blender keeps certain data files, such as add-on utilities, in a special location. This has given Trainz content creators some difficulties due to access rights. If you used the Blender Installer then this is usually in the Windows logged on user space.&lt;br /&gt;
&lt;br /&gt;
Say, for example, your user name is Patrick, then the location is likely to be similiar to &amp;quot;C:\Users\Patrick\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you cannot see this folder in the user folder then it is likely the folder has been hidden by Windows.  You can unhide folders in the Windows Explorer by going to Tools-&amp;gt;Folder Options-&amp;gt;View and selecting &amp;quot;Show hidden files, folders and drives&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under The Hood or, How the Exporter Works ==&lt;br /&gt;
&lt;br /&gt;
Basically the Blender export process works in three phases:&lt;br /&gt;
&lt;br /&gt;
:* Phase 1 is the checking process where the Exporter does some validation.  Where it can, the Exporter will make minor corrections and just issue a warning.  Warnings do not stop the process but an error will.  The warnings and errors should provide enough information to enable correction.&lt;br /&gt;
:* Phase 2 is the creation of the XML file required by the TrainzMeshImporter.  The XML file is a text file using a common language used by many applications.  It is also N3V&#039;s preferred import format.&lt;br /&gt;
:* On succession completion of the first two phases, the Exporter passes control to the TrainzMeshImport program which takes the XML file plus other information and produces the IM mesh file used by Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
Many thanks to USCHI0815 (Torsten) for his time and effort that went into producing and supporting the Blender Exporter.  Without it there would be no Blender models in Trainz.&lt;br /&gt;
&lt;br /&gt;
Thanks to Mick_Berg and Jananton for their comments, and to Mick_Berg for his [http://www.mickberg.com/blenderexport1.html Blender installation tutorial].&lt;br /&gt;
&lt;br /&gt;
== Tutorial Updates ==&lt;br /&gt;
Please feel free to update as necessary and correct errors in this tutorial.  It is a WiKi contribution and intended to be maintained this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Material Types]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
{{FUN-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8012</id>
		<title>HowTo/Export from Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=8012"/>
		<updated>2015-01-30T10:01:31Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Introduction of Blender */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FUN-beg}}&lt;br /&gt;
== Introduction of Blender ==&lt;br /&gt;
&lt;br /&gt;
{{plain link|http://www.blender.org |Blender}} is an open source free {{Wp|3D graphics|3D modelling}} application or tool supported by the contribution of programming and development time by the user community.  For more information on Blender and its capabilities, please visit the {{plain link|http://www.blender.org |Blender website}}.  Blender evolves rapidly and it is not uncommon to see releases about every two months. As of 20 January, 2015, the current version is 2.73a.&lt;br /&gt;
&lt;br /&gt;
Blender is extendable through the use of &amp;quot;add-ons&amp;quot; produced either by the Blender Foundation or by Blender users.  One of those add-ons is the Trainz Blender exporter that was built and is maintained by USCHI0815 (Torsten).  Torsten usually announces updates to the Exporter through the Trainz Content Creation Support forum.  As of 24 April, 2014, the current version of the Blender exporter is V0.96.&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
===Caveat===&lt;br /&gt;
[http://www.blender.org Blender] is not currently supported by N3V as a modeling source for Trainz, however third-party tools exist for this purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== About This Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The scope of this tutorial has been extended to include installation of Blender and installation of the Blender Exporter since this has been an issue discussed several times in the N3V Content Creation forum.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
To export to Trainz you need the following:&lt;br /&gt;
&lt;br /&gt;
:*  Trainz (TS09 or later preferred)&lt;br /&gt;
:*  [[Downloads|TrainzMeshImporter.exe]].   This is provided by N3V.&lt;br /&gt;
:*  [http://www.blender.org/download/ Blender] (v. 2.57 or later is recommended).&lt;br /&gt;
:*  [https://bitbucket.org/uschi0815/blender-exporter-for-trainz/downloads/ The Blender Exporter]. &lt;br /&gt;
:*  Windows XP, Vista, Windows 7 (32 or 64 bit) or Windows 8 (32 or 64 bit) or Mac OS X (32 or 64 bits).&lt;br /&gt;
&lt;br /&gt;
=== Blender Installation Notes ===&lt;br /&gt;
&lt;br /&gt;
Blender is available for a number of operating systems including Windows XP, Windows Vista and Windows 7.  Both 32 bit and 64 bit versions are available.&lt;br /&gt;
You can choose either the installer version or a zip archive.  Please read any notes on the Blender.org download page: particularly if you are upgrading from a previous version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installer Version ===&lt;br /&gt;
&lt;br /&gt;
The Installer Version is the easiest way to install Blender but there can be complications.  If you install Blender into the default directory you should choose &amp;quot;Use Application Data Directory&amp;quot; during installation of Blender. Otherwise it might not be possible to save your preferred Exporter options due to insufficient permissions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blender Zip Archive Version ===&lt;br /&gt;
&lt;br /&gt;
The zip archive version allows you to unzip the entire Blender folder structure and locate it in any location that suits you.  The only drawback is that you will need to set up your own links to the Blender executable (Blender.exe).&lt;br /&gt;
&lt;br /&gt;
== Installing the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Blender exporter add-on must be installed in the &amp;quot;scripts\addons&amp;quot; area of the Blender data space. The following process will install it in the correct location.&lt;br /&gt;
&lt;br /&gt;
=== Install Blender Exporter for Trainz ===&lt;br /&gt;
&lt;br /&gt;
:* Download the exporter.&lt;br /&gt;
:* Start Blender.&lt;br /&gt;
:* Open a new project(File -&amp;gt; New).&lt;br /&gt;
:* Open User Preferences(File -&amp;gt; User Preferences...).&lt;br /&gt;
:* Select Add-Ons panel and press button &amp;quot;Install from file...&amp;quot; down at the panel button bar.&lt;br /&gt;
:* Select and install downloaded file: you don&#039;t need to extract it.&lt;br /&gt;
:* Enable &amp;quot;TRAINZ Exporter&amp;quot; in Add-On list and press button &amp;quot;Save As Default&amp;quot; to keep it enabled for all subsequent Blender starts.&lt;br /&gt;
&lt;br /&gt;
=== Install the N3V TrainzMeshImporter ===&lt;br /&gt;
&lt;br /&gt;
:* Download the [http://online.ts2009.com/mediaWiki/index.php5/Downloads TrainzMeshImporter.exe].  The file is in the RAR format that can be extracted by most zip file management programs.&lt;br /&gt;
:* Before using the exporter you must copy the TrainzMeshExporter.exe to the same location as the Blender Exporter add-on.  The following will help find that location:&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and leave the default cube mesh in place.&lt;br /&gt;
:* If necessary, open the console window so you can read the error messages. In versions 2.5 through 2.63a, the console window is opened using the &amp;quot;toggle system console&amp;quot; menu entry in the &amp;quot;help&amp;quot; menu in the Blender menu bar. Beginning with version 2.64, the &amp;quot;toggle system console&amp;quot; menu has been moved to the &amp;quot;window&amp;quot; menu in the Blender menu bar. Those running a Blender version 2.49 or earlier can disregard this step, as the system console is in a window that is open whenever Blender is active. &lt;br /&gt;
:* Go to File-&amp;gt;Export and select &amp;quot;Trainz Mesh and Animation&amp;quot;.  Use the default settings but make sure that the save location is a temporary or working space.&lt;br /&gt;
:* The Exporter will complain about a missing file in a specific folder.   The missing file is TrainzMeshImporter and the folder name is the location you need.&lt;br /&gt;
:* The location is usually in the form of &amp;quot;ERROR&amp;quot;  file &amp;quot;C:Users\your name\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons\TrainzMeshExporter.exe&amp;quot; not found&amp;quot;.  This example is typical of using the default Blender Installer.  If you chose to install Blender using the zip archive then the location will be different.&lt;br /&gt;
:* Copy TrainzMeshExporter.exe to the location provided.  If you cannot access the AppData folder see the [http://online.ts2009.com/mediaWiki/index.php5?title=HowTo/Export_from_Blender&amp;amp;action=submit#Additional_Notes Additional Notes] section for help.&lt;br /&gt;
:* Once you have copied TrainzMeshExporter.exe to the correct location retry the export.&lt;br /&gt;
&lt;br /&gt;
== Exporting an Asset ==&lt;br /&gt;
&lt;br /&gt;
The creation of an asset suitable for Trainz is a long and complex process.  For the purposes of this tutorial we will only export the standard Blender cube.  Some knowledge of Blender and creation of assets for Trainz purposes is assumed.&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and save the default cube as &amp;quot;cube.blend&amp;quot; in your preferred working location.&lt;br /&gt;
:* Create a simple material such as &amp;quot;cube.m.onetex&amp;quot; and allocate a simple colour texture file. For the purpose of this tutorial leave the default mapping technique to &amp;quot;generated&amp;quot;.  This will cause an error.&lt;br /&gt;
:* UV map the cube to the texture.&lt;br /&gt;
:* Save the Blender file.&lt;br /&gt;
:* Go to File-&amp;gt;Export and select Trainz Mesh and Animation.&lt;br /&gt;
:* The dialog box that appears gives a output save location for the XML, log, texture description and other files produced by the process.  Select your preferred location.&lt;br /&gt;
:* All the other options can be left as default.  If you were exporting a mesh that included animation, then you would also select &amp;quot;Export Animation Data&amp;quot;.&lt;br /&gt;
:* When you are ready, select &amp;quot;Export Trainz&amp;quot; in the top right hand corner.&lt;br /&gt;
:* This export process will fail with an error since the &amp;quot;generated&amp;quot; mapping option for textures is not supported when using an image file.  Go back to the Texture section and change the mapping option to UV and then export again.  This time it should export correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporter Output ==&lt;br /&gt;
&lt;br /&gt;
=== Files Created ===&lt;br /&gt;
The Exporter produces:&lt;br /&gt;
&lt;br /&gt;
:* An XML file.  This is used by TrainzMeshImporter.&lt;br /&gt;
:* The IM mesh file required by Trainz.&lt;br /&gt;
:* The texture description files (nnn.texture.txt) required by Trainz.&lt;br /&gt;
:* The KIN animation file required by Trainz if animation is used.&lt;br /&gt;
:* A log of the export process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error Reporting ===&lt;br /&gt;
Errors are reported in the Blender System Console and the Exporter log. Errors will prevent the production of the target IM file and therefore must be addressed.&lt;br /&gt;
Typical errors are:&lt;br /&gt;
&lt;br /&gt;
==== Mesh Errors ====&lt;br /&gt;
&lt;br /&gt;
:*Objects without a parent where a root bone exists.&lt;br /&gt;
&lt;br /&gt;
==== Material Related Errors ====&lt;br /&gt;
&lt;br /&gt;
:* No UV layer for UV mapped objects. Blender usually creates a default.&lt;br /&gt;
:* Use of the same material for both single and double sided meshes.  Recommend only using single sided meshes.&lt;br /&gt;
:* Objects without an assigned material.  Recommend assigning a material for each object.&lt;br /&gt;
:* Faces without a material in an object.  The faces will have been collected into a Vertex Group to enable correction. This error can also be caused by material slots in blender to which no material is assigned.   &lt;br /&gt;
:* Use of similar material names if character case is ignored.  i.e. &amp;quot;Black&amp;quot; and &amp;quot;black&amp;quot; are considered the same by Trainz.&lt;br /&gt;
:* Not using UV mapping for textures that are either using alpha, normal or specular.&lt;br /&gt;
:* Not using UV or reflect mapping for diffuse textures.&lt;br /&gt;
&lt;br /&gt;
==== Animation Errors ====&lt;br /&gt;
&lt;br /&gt;
:* More than one root bone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
Warnings are basically flaws or possible flaws that the user may wish to address.  Warnings do not prevent production of the IM output files. Some typicals warnings include:&lt;br /&gt;
&lt;br /&gt;
==== Animation Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Possible incorrect location and rotation of root bone.&lt;br /&gt;
:* Bones not found or no animation data found.&lt;br /&gt;
:* Events not found or unrecognised.&lt;br /&gt;
:* Event frame numbers in wrong positions.&lt;br /&gt;
&lt;br /&gt;
==== Mesh Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Vertices influenced by more than four vertex groups.&lt;br /&gt;
&lt;br /&gt;
==== Name Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Unrecommended characters.  Material, texture, object and path names should only be composed of a-z, A-Z, 0-9 or -_./\ characters.  A typical error is use of a space character in a path name.  The Exporter will change Blender file names that include upper case letters to lower case letters.  Generally, it is recommended you avoid the use of upper case characters in names.&lt;br /&gt;
&lt;br /&gt;
==== Material Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Surfaceless faces in an object.  The Exporter will gather these faces and put them into a Vertex Group to aid identification. The Vertex Group can be found in the triangle panel associated with the Safety Valve object.&lt;br /&gt;
:* Objects exported with double sided faces.   This will become an error if a material is used for both single and double sided objects.&lt;br /&gt;
:* Material renamed.  If the name does not match one of the standard Trainz material names then the Exporter will try and effect a solution.  Typically a name such as &amp;quot;black&amp;quot; will be renamed &amp;quot;blackm.onetex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Export Log ===&lt;br /&gt;
&lt;br /&gt;
The Exporter Log contains a record of events during the export process including errors and warnings.  The numTriangles report is the number of polygons (aka polys) in the mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Material Recognition by the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Exporter tries to identify materials in use by the asset mesh and will provide a warning if the detected material decoration varies from that declared in the Blender file.  The term &amp;quot;material decoration&amp;quot; is one of the standard Trainz material names such as &amp;quot;m.onetext&amp;quot; or &amp;quot;m.tbumptex&amp;quot;. The following decision process, provided by Torsten, may be useful for developers.&lt;br /&gt;
&lt;br /&gt;
The decision which material decoration is used is made by the texturing schema used for the material:&lt;br /&gt;
&lt;br /&gt;
: no texture used -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: one texture used:&lt;br /&gt;
:: invalid texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: reflection texture  -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: two textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse &amp;amp; reflection -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: three textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha &amp;amp; reflection -&amp;gt;&#039;&#039;&#039; m.gloss&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: normal texture used:&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; alpha &amp;amp; no reflection -&amp;gt; &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; reflection &amp;amp; no alpha -&amp;gt; &#039;&#039;&#039;m.tbumpgloss&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; no alpha &amp;amp; no reflection-&amp;gt; &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As material &#039;&#039;&#039;m.notex&#039;&#039;&#039; causes problems with specific assets&#039;&#039;&#039;, m.onetex&#039;&#039;&#039; is used instead. It also works perfectly without any texture.&lt;br /&gt;
The problem with &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039; and &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is that, besides the usage of an alpha texture (which is not used for &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039;), both use a diffuse and normal texture. In this case &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is chosen.&lt;br /&gt;
&lt;br /&gt;
Generally, you can use any material decoration you want. The script does not change a syntactically correct material decoration(e.g. Material&#039;&#039;&#039;m.billboard&#039;&#039;&#039; would pass unchanged).  It only drops a message to remind you that you either use an unsupported material(as warning) or that it had chosen another material(as info).&lt;br /&gt;
&lt;br /&gt;
If you check the issue and find it to be OK than you can safely ignore those messages.&lt;br /&gt;
&lt;br /&gt;
Blenders texture influences are nearly equivalent to MAX material maps. Because diffuse textures and reflection textures both influence diffuse color, the decision between them is made by checking texture mapping coordinates to:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;MAX map -&amp;gt; Blender texture influence&#039;&#039;&#039;&lt;br /&gt;
: Ambient Color -&amp;gt; Shading Ambient&lt;br /&gt;
: Diffuse Color -&amp;gt; Diffuse Color &amp;amp; UV mapping&lt;br /&gt;
: Specular Color -&amp;gt; Specular Color&lt;br /&gt;
: Specular Level -&amp;gt; Specular Intensity&lt;br /&gt;
: Glossiness -&amp;gt; Specular Hardness&lt;br /&gt;
: Self-Illumination -&amp;gt; Shading Emit&lt;br /&gt;
: Opacity -&amp;gt; Diffuse Alpha&lt;br /&gt;
: Filter Color -&amp;gt; Diffuse Translucency&lt;br /&gt;
: Bump -&amp;gt; Geometry Normal&lt;br /&gt;
: Reflection -&amp;gt; Diffuse Color &amp;amp; Reflection mapping &lt;br /&gt;
: Refraction -&amp;gt; not available(not found?)&lt;br /&gt;
: Displacement -&amp;gt; Geometry Displacement&lt;br /&gt;
&lt;br /&gt;
== Torsten&#039;s Hints  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These hints are reproduced from the Exporter script since many will not want to edit or view the actual script contents.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Trainz models you can have two kinds of special objects: attachment points and bones. For attachment points, the exporter expects objects of type &amp;quot;Empty&amp;quot;. For bones, objects of type &amp;quot;Lattice&amp;quot; and &amp;quot;Armature&amp;quot; will be accepted.  All of them need to be named according the naming conventions in effect for attachements( a.* ) and bones( b.r.* ). Objects of other type and objects with proper type but names not matching this conventions will be ignored as attachment points or bones.&lt;br /&gt;
&lt;br /&gt;
If you want to export animations with events, than you have to create a Blender TX object and enter the lines as you would do to create an event file. By renaming this object to &amp;quot;events&amp;quot; you ensure the exporter will not ignore your event list.&lt;br /&gt;
&lt;br /&gt;
It is possible to make parent-child-relations between meshes to simplify the design process. However, the chain must be end with a valid parent bone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Blender Data Files ===&lt;br /&gt;
 &lt;br /&gt;
Blender keeps certain data files, such as add-on utilities, in a special location. This has given Trainz content creators some difficulties due to access rights. If you used the Blender Installer then this is usually in the Windows logged on user space.&lt;br /&gt;
&lt;br /&gt;
Say, for example, your user name is Patrick, then the location is likely to be similiar to &amp;quot;C:\Users\Patrick\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you cannot see this folder in the user folder then it is likely the folder has been hidden by Windows.  You can unhide folders in the Windows Explorer by going to Tools-&amp;gt;Folder Options-&amp;gt;View and selecting &amp;quot;Show hidden files, folders and drives&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under The Hood or, How the Exporter Works ==&lt;br /&gt;
&lt;br /&gt;
Basically the Blender export process works in three phases:&lt;br /&gt;
&lt;br /&gt;
:* Phase 1 is the checking process where the Exporter does some validation.  Where it can, the Exporter will make minor corrections and just issue a warning.  Warnings do not stop the process but an error will.  The warnings and errors should provide enough information to enable correction.&lt;br /&gt;
:* Phase 2 is the creation of the XML file required by the TrainzMeshImporter.  The XML file is a text file using a common language used by many applications.  It is also N3V&#039;s preferred import format.&lt;br /&gt;
:* On succession completion of the first two phases, the Exporter passes control to the TrainzMeshImport program which takes the XML file plus other information and produces the IM mesh file used by Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
Many thanks to USCHI0815 (Torsten) for his time and effort that went into producing and supporting the Blender Exporter.  Without it there would be no Blender models in Trainz.&lt;br /&gt;
&lt;br /&gt;
Thanks to Mick_Berg and Jananton for their comments, and to Mick_Berg for his [http://www.mickberg.com/blenderexport1.html Blender installation tutorial].&lt;br /&gt;
&lt;br /&gt;
== Tutorial Updates ==&lt;br /&gt;
Please feel free to update as necessary and correct errors in this tutorial.  It is a WiKi contribution and intended to be maintained this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Material Types]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
{{FUN-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=7994</id>
		<title>HowTo/Export from Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=7994"/>
		<updated>2015-01-09T04:53:05Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Introduction of Blender */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FUN-beg}}&lt;br /&gt;
== Introduction of Blender ==&lt;br /&gt;
&lt;br /&gt;
{{plain link|http://www.blender.org |Blender}} is an open source free {{Wp|3D graphics|3D modelling}} application or tool supported by the contribution of programming and development time by the user community.  For more information on Blender and its capabilities, please visit the {{plain link|http://www.blender.org |Blender website}}.  Blender evolves rapidly and it is not uncommon to see releases about every two months. As of 08 January, 2015, the current version is 2.73.&lt;br /&gt;
&lt;br /&gt;
Blender is extendable through the use of &amp;quot;add-ons&amp;quot; produced either by the Blender Foundation or by Blender users.  One of those add-ons is the Trainz Blender exporter that was built and is maintained by USCHI0815 (Torsten).  Torsten usually announces updates to the Exporter through the Trainz Content Creation Support forum.  As of 24 April, 2014, the current version of the Blender exporter is V0.96.&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
===Caveat===&lt;br /&gt;
[http://www.blender.org Blender] is not currently supported by N3V as a modeling source for Trainz, however third-party tools exist for this purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== About This Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The scope of this tutorial has been extended to include installation of Blender and installation of the Blender Exporter since this has been an issue discussed several times in the N3V Content Creation forum.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
To export to Trainz you need the following:&lt;br /&gt;
&lt;br /&gt;
:*  Trainz (TS09 or later preferred)&lt;br /&gt;
:*  [[Downloads|TrainzMeshImporter.exe]].   This is provided by N3V.&lt;br /&gt;
:*  [http://www.blender.org/download/ Blender] (v. 2.57 or later is recommended).&lt;br /&gt;
:*  [https://bitbucket.org/uschi0815/blender-exporter-for-trainz/downloads/ The Blender Exporter]. &lt;br /&gt;
:*  Windows XP, Vista, Windows 7 (32 or 64 bit) or Windows 8 (32 or 64 bit) or Mac OS X (32 or 64 bits).&lt;br /&gt;
&lt;br /&gt;
=== Blender Installation Notes ===&lt;br /&gt;
&lt;br /&gt;
Blender is available for a number of operating systems including Windows XP, Windows Vista and Windows 7.  Both 32 bit and 64 bit versions are available.&lt;br /&gt;
You can choose either the installer version or a zip archive.  Please read any notes on the Blender.org download page: particularly if you are upgrading from a previous version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installer Version ===&lt;br /&gt;
&lt;br /&gt;
The Installer Version is the easiest way to install Blender but there can be complications.  If you install Blender into the default directory you should choose &amp;quot;Use Application Data Directory&amp;quot; during installation of Blender. Otherwise it might not be possible to save your preferred Exporter options due to insufficient permissions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blender Zip Archive Version ===&lt;br /&gt;
&lt;br /&gt;
The zip archive version allows you to unzip the entire Blender folder structure and locate it in any location that suits you.  The only drawback is that you will need to set up your own links to the Blender executable (Blender.exe).&lt;br /&gt;
&lt;br /&gt;
== Installing the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Blender exporter add-on must be installed in the &amp;quot;scripts\addons&amp;quot; area of the Blender data space. The following process will install it in the correct location.&lt;br /&gt;
&lt;br /&gt;
=== Install Blender Exporter for Trainz ===&lt;br /&gt;
&lt;br /&gt;
:* Download the exporter.&lt;br /&gt;
:* Start Blender.&lt;br /&gt;
:* Open a new project(File -&amp;gt; New).&lt;br /&gt;
:* Open User Preferences(File -&amp;gt; User Preferences...).&lt;br /&gt;
:* Select Add-Ons panel and press button &amp;quot;Install from file...&amp;quot; down at the panel button bar.&lt;br /&gt;
:* Select and install downloaded file: you don&#039;t need to extract it.&lt;br /&gt;
:* Enable &amp;quot;TRAINZ Exporter&amp;quot; in Add-On list and press button &amp;quot;Save As Default&amp;quot; to keep it enabled for all subsequent Blender starts.&lt;br /&gt;
&lt;br /&gt;
=== Install the N3V TrainzMeshImporter ===&lt;br /&gt;
&lt;br /&gt;
:* Download the [http://online.ts2009.com/mediaWiki/index.php5/Downloads TrainzMeshImporter.exe].  The file is in the RAR format that can be extracted by most zip file management programs.&lt;br /&gt;
:* Before using the exporter you must copy the TrainzMeshExporter.exe to the same location as the Blender Exporter add-on.  The following will help find that location:&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and leave the default cube mesh in place.&lt;br /&gt;
:* If necessary, open the console window so you can read the error messages. In versions 2.5 through 2.63a, the console window is opened using the &amp;quot;toggle system console&amp;quot; menu entry in the &amp;quot;help&amp;quot; menu in the Blender menu bar. Beginning with version 2.64, the &amp;quot;toggle system console&amp;quot; menu has been moved to the &amp;quot;window&amp;quot; menu in the Blender menu bar. Those running a Blender version 2.49 or earlier can disregard this step, as the system console is in a window that is open whenever Blender is active. &lt;br /&gt;
:* Go to File-&amp;gt;Export and select &amp;quot;Trainz Mesh and Animation&amp;quot;.  Use the default settings but make sure that the save location is a temporary or working space.&lt;br /&gt;
:* The Exporter will complain about a missing file in a specific folder.   The missing file is TrainzMeshImporter and the folder name is the location you need.&lt;br /&gt;
:* The location is usually in the form of &amp;quot;ERROR&amp;quot;  file &amp;quot;C:Users\your name\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons\TrainzMeshExporter.exe&amp;quot; not found&amp;quot;.  This example is typical of using the default Blender Installer.  If you chose to install Blender using the zip archive then the location will be different.&lt;br /&gt;
:* Copy TrainzMeshExporter.exe to the location provided.  If you cannot access the AppData folder see the [http://online.ts2009.com/mediaWiki/index.php5?title=HowTo/Export_from_Blender&amp;amp;action=submit#Additional_Notes Additional Notes] section for help.&lt;br /&gt;
:* Once you have copied TrainzMeshExporter.exe to the correct location retry the export.&lt;br /&gt;
&lt;br /&gt;
== Exporting an Asset ==&lt;br /&gt;
&lt;br /&gt;
The creation of an asset suitable for Trainz is a long and complex process.  For the purposes of this tutorial we will only export the standard Blender cube.  Some knowledge of Blender and creation of assets for Trainz purposes is assumed.&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and save the default cube as &amp;quot;cube.blend&amp;quot; in your preferred working location.&lt;br /&gt;
:* Create a simple material such as &amp;quot;cube.m.onetex&amp;quot; and allocate a simple colour texture file. For the purpose of this tutorial leave the default mapping technique to &amp;quot;generated&amp;quot;.  This will cause an error.&lt;br /&gt;
:* UV map the cube to the texture.&lt;br /&gt;
:* Save the Blender file.&lt;br /&gt;
:* Go to File-&amp;gt;Export and select Trainz Mesh and Animation.&lt;br /&gt;
:* The dialog box that appears gives a output save location for the XML, log, texture description and other files produced by the process.  Select your preferred location.&lt;br /&gt;
:* All the other options can be left as default.  If you were exporting a mesh that included animation, then you would also select &amp;quot;Export Animation Data&amp;quot;.&lt;br /&gt;
:* When you are ready, select &amp;quot;Export Trainz&amp;quot; in the top right hand corner.&lt;br /&gt;
:* This export process will fail with an error since the &amp;quot;generated&amp;quot; mapping option for textures is not supported when using an image file.  Go back to the Texture section and change the mapping option to UV and then export again.  This time it should export correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporter Output ==&lt;br /&gt;
&lt;br /&gt;
=== Files Created ===&lt;br /&gt;
The Exporter produces:&lt;br /&gt;
&lt;br /&gt;
:* An XML file.  This is used by TrainzMeshImporter.&lt;br /&gt;
:* The IM mesh file required by Trainz.&lt;br /&gt;
:* The texture description files (nnn.texture.txt) required by Trainz.&lt;br /&gt;
:* The KIN animation file required by Trainz if animation is used.&lt;br /&gt;
:* A log of the export process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error Reporting ===&lt;br /&gt;
Errors are reported in the Blender System Console and the Exporter log. Errors will prevent the production of the target IM file and therefore must be addressed.&lt;br /&gt;
Typical errors are:&lt;br /&gt;
&lt;br /&gt;
==== Mesh Errors ====&lt;br /&gt;
&lt;br /&gt;
:*Objects without a parent where a root bone exists.&lt;br /&gt;
&lt;br /&gt;
==== Material Related Errors ====&lt;br /&gt;
&lt;br /&gt;
:* No UV layer for UV mapped objects. Blender usually creates a default.&lt;br /&gt;
:* Use of the same material for both single and double sided meshes.  Recommend only using single sided meshes.&lt;br /&gt;
:* Objects without an assigned material.  Recommend assigning a material for each object.&lt;br /&gt;
:* Faces without a material in an object.  The faces will have been collected into a Vertex Group to enable correction. This error can also be caused by material slots in blender to which no material is assigned.   &lt;br /&gt;
:* Use of similar material names if character case is ignored.  i.e. &amp;quot;Black&amp;quot; and &amp;quot;black&amp;quot; are considered the same by Trainz.&lt;br /&gt;
:* Not using UV mapping for textures that are either using alpha, normal or specular.&lt;br /&gt;
:* Not using UV or reflect mapping for diffuse textures.&lt;br /&gt;
&lt;br /&gt;
==== Animation Errors ====&lt;br /&gt;
&lt;br /&gt;
:* More than one root bone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
Warnings are basically flaws or possible flaws that the user may wish to address.  Warnings do not prevent production of the IM output files. Some typicals warnings include:&lt;br /&gt;
&lt;br /&gt;
==== Animation Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Possible incorrect location and rotation of root bone.&lt;br /&gt;
:* Bones not found or no animation data found.&lt;br /&gt;
:* Events not found or unrecognised.&lt;br /&gt;
:* Event frame numbers in wrong positions.&lt;br /&gt;
&lt;br /&gt;
==== Mesh Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Vertices influenced by more than four vertex groups.&lt;br /&gt;
&lt;br /&gt;
==== Name Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Unrecommended characters.  Material, texture, object and path names should only be composed of a-z, A-Z, 0-9 or -_./\ characters.  A typical error is use of a space character in a path name.  The Exporter will change Blender file names that include upper case letters to lower case letters.  Generally, it is recommended you avoid the use of upper case characters in names.&lt;br /&gt;
&lt;br /&gt;
==== Material Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Surfaceless faces in an object.  The Exporter will gather these faces and put them into a Vertex Group to aid identification. The Vertex Group can be found in the triangle panel associated with the Safety Valve object.&lt;br /&gt;
:* Objects exported with double sided faces.   This will become an error if a material is used for both single and double sided objects.&lt;br /&gt;
:* Material renamed.  If the name does not match one of the standard Trainz material names then the Exporter will try and effect a solution.  Typically a name such as &amp;quot;black&amp;quot; will be renamed &amp;quot;blackm.onetex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Export Log ===&lt;br /&gt;
&lt;br /&gt;
The Exporter Log contains a record of events during the export process including errors and warnings.  The numTriangles report is the number of polygons (aka polys) in the mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Material Recognition by the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Exporter tries to identify materials in use by the asset mesh and will provide a warning if the detected material decoration varies from that declared in the Blender file.  The term &amp;quot;material decoration&amp;quot; is one of the standard Trainz material names such as &amp;quot;m.onetext&amp;quot; or &amp;quot;m.tbumptex&amp;quot;. The following decision process, provided by Torsten, may be useful for developers.&lt;br /&gt;
&lt;br /&gt;
The decision which material decoration is used is made by the texturing schema used for the material:&lt;br /&gt;
&lt;br /&gt;
: no texture used -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: one texture used:&lt;br /&gt;
:: invalid texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: reflection texture  -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: two textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse &amp;amp; reflection -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: three textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha &amp;amp; reflection -&amp;gt;&#039;&#039;&#039; m.gloss&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: normal texture used:&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; alpha &amp;amp; no reflection -&amp;gt; &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; reflection &amp;amp; no alpha -&amp;gt; &#039;&#039;&#039;m.tbumpgloss&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; no alpha &amp;amp; no reflection-&amp;gt; &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As material &#039;&#039;&#039;m.notex&#039;&#039;&#039; causes problems with specific assets&#039;&#039;&#039;, m.onetex&#039;&#039;&#039; is used instead. It also works perfectly without any texture.&lt;br /&gt;
The problem with &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039; and &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is that, besides the usage of an alpha texture (which is not used for &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039;), both use a diffuse and normal texture. In this case &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is chosen.&lt;br /&gt;
&lt;br /&gt;
Generally, you can use any material decoration you want. The script does not change a syntactically correct material decoration(e.g. Material&#039;&#039;&#039;m.billboard&#039;&#039;&#039; would pass unchanged).  It only drops a message to remind you that you either use an unsupported material(as warning) or that it had chosen another material(as info).&lt;br /&gt;
&lt;br /&gt;
If you check the issue and find it to be OK than you can safely ignore those messages.&lt;br /&gt;
&lt;br /&gt;
Blenders texture influences are nearly equivalent to MAX material maps. Because diffuse textures and reflection textures both influence diffuse color, the decision between them is made by checking texture mapping coordinates to:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;MAX map -&amp;gt; Blender texture influence&#039;&#039;&#039;&lt;br /&gt;
: Ambient Color -&amp;gt; Shading Ambient&lt;br /&gt;
: Diffuse Color -&amp;gt; Diffuse Color &amp;amp; UV mapping&lt;br /&gt;
: Specular Color -&amp;gt; Specular Color&lt;br /&gt;
: Specular Level -&amp;gt; Specular Intensity&lt;br /&gt;
: Glossiness -&amp;gt; Specular Hardness&lt;br /&gt;
: Self-Illumination -&amp;gt; Shading Emit&lt;br /&gt;
: Opacity -&amp;gt; Diffuse Alpha&lt;br /&gt;
: Filter Color -&amp;gt; Diffuse Translucency&lt;br /&gt;
: Bump -&amp;gt; Geometry Normal&lt;br /&gt;
: Reflection -&amp;gt; Diffuse Color &amp;amp; Reflection mapping &lt;br /&gt;
: Refraction -&amp;gt; not available(not found?)&lt;br /&gt;
: Displacement -&amp;gt; Geometry Displacement&lt;br /&gt;
&lt;br /&gt;
== Torsten&#039;s Hints  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These hints are reproduced from the Exporter script since many will not want to edit or view the actual script contents.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Trainz models you can have two kinds of special objects: attachment points and bones. For attachment points, the exporter expects objects of type &amp;quot;Empty&amp;quot;. For bones, objects of type &amp;quot;Lattice&amp;quot; and &amp;quot;Armature&amp;quot; will be accepted.  All of them need to be named according the naming conventions in effect for attachements( a.* ) and bones( b.r.* ). Objects of other type and objects with proper type but names not matching this conventions will be ignored as attachment points or bones.&lt;br /&gt;
&lt;br /&gt;
If you want to export animations with events, than you have to create a Blender TX object and enter the lines as you would do to create an event file. By renaming this object to &amp;quot;events&amp;quot; you ensure the exporter will not ignore your event list.&lt;br /&gt;
&lt;br /&gt;
It is possible to make parent-child-relations between meshes to simplify the design process. However, the chain must be end with a valid parent bone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Blender Data Files ===&lt;br /&gt;
 &lt;br /&gt;
Blender keeps certain data files, such as add-on utilities, in a special location. This has given Trainz content creators some difficulties due to access rights. If you used the Blender Installer then this is usually in the Windows logged on user space.&lt;br /&gt;
&lt;br /&gt;
Say, for example, your user name is Patrick, then the location is likely to be similiar to &amp;quot;C:\Users\Patrick\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you cannot see this folder in the user folder then it is likely the folder has been hidden by Windows.  You can unhide folders in the Windows Explorer by going to Tools-&amp;gt;Folder Options-&amp;gt;View and selecting &amp;quot;Show hidden files, folders and drives&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under The Hood or, How the Exporter Works ==&lt;br /&gt;
&lt;br /&gt;
Basically the Blender export process works in three phases:&lt;br /&gt;
&lt;br /&gt;
:* Phase 1 is the checking process where the Exporter does some validation.  Where it can, the Exporter will make minor corrections and just issue a warning.  Warnings do not stop the process but an error will.  The warnings and errors should provide enough information to enable correction.&lt;br /&gt;
:* Phase 2 is the creation of the XML file required by the TrainzMeshImporter.  The XML file is a text file using a common language used by many applications.  It is also N3V&#039;s preferred import format.&lt;br /&gt;
:* On succession completion of the first two phases, the Exporter passes control to the TrainzMeshImport program which takes the XML file plus other information and produces the IM mesh file used by Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
Many thanks to USCHI0815 (Torsten) for his time and effort that went into producing and supporting the Blender Exporter.  Without it there would be no Blender models in Trainz.&lt;br /&gt;
&lt;br /&gt;
Thanks to Mick_Berg and Jananton for their comments, and to Mick_Berg for his [http://www.mickberg.com/blenderexport1.html Blender installation tutorial].&lt;br /&gt;
&lt;br /&gt;
== Tutorial Updates ==&lt;br /&gt;
Please feel free to update as necessary and correct errors in this tutorial.  It is a WiKi contribution and intended to be maintained this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Material Types]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
{{FUN-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=7890</id>
		<title>HowTo/Export from Blender</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=HowTo/Export_from_Blender&amp;diff=7890"/>
		<updated>2014-11-25T14:36:33Z</updated>

		<summary type="html">&lt;p&gt;Mjolnir: /* Introduction of Blender */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FUN-beg}}&lt;br /&gt;
== Introduction of Blender ==&lt;br /&gt;
&lt;br /&gt;
{{plain link|http://www.blender.org |Blender}} is an open source free {{Wp|3D graphics|3D modelling}} application or tool supported by the contribution of programming and development time by the user community.  For more information on Blender and its capabilities, please visit the {{plain link|http://www.blender.org |Blender website}}.  Blender evolves rapidly and it is not uncommon to see releases about every two months. As of October 24 Novemberthe current version is 2.72b.&lt;br /&gt;
&lt;br /&gt;
Blender is extendable through the use of &amp;quot;add-ons&amp;quot; produced either by the Blender Foundation or by Blender users.  One of those add-ons is the Trainz Blender exporter that was built and is maintained by USCHI0815 (Torsten).  Torsten usually announces updates to the Exporter through the Trainz Content Creation Support forum.  As of 24 April, 2014, the current version of the Blender exporter is V0.96.&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
===Caveat===&lt;br /&gt;
[http://www.blender.org Blender] is not currently supported by N3V as a modeling source for Trainz, however third-party tools exist for this purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== About This Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The scope of this tutorial has been extended to include installation of Blender and installation of the Blender Exporter since this has been an issue discussed several times in the N3V Content Creation forum.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
To export to Trainz you need the following:&lt;br /&gt;
&lt;br /&gt;
:*  Trainz (TS09 or later preferred)&lt;br /&gt;
:*  [[Downloads|TrainzMeshImporter.exe]].   This is provided by N3V.&lt;br /&gt;
:*  [http://www.blender.org/download/ Blender] (v. 2.57 or later is recommended).&lt;br /&gt;
:*  [https://bitbucket.org/uschi0815/blender-exporter-for-trainz/downloads/ The Blender Exporter]. &lt;br /&gt;
:*  Windows XP, Vista, Windows 7 (32 or 64 bit) or Windows 8 (32 or 64 bit) or Mac OS X (32 or 64 bits).&lt;br /&gt;
&lt;br /&gt;
=== Blender Installation Notes ===&lt;br /&gt;
&lt;br /&gt;
Blender is available for a number of operating systems including Windows XP, Windows Vista and Windows 7.  Both 32 bit and 64 bit versions are available.&lt;br /&gt;
You can choose either the installer version or a zip archive.  Please read any notes on the Blender.org download page: particularly if you are upgrading from a previous version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installer Version ===&lt;br /&gt;
&lt;br /&gt;
The Installer Version is the easiest way to install Blender but there can be complications.  If you install Blender into the default directory you should choose &amp;quot;Use Application Data Directory&amp;quot; during installation of Blender. Otherwise it might not be possible to save your preferred Exporter options due to insufficient permissions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blender Zip Archive Version ===&lt;br /&gt;
&lt;br /&gt;
The zip archive version allows you to unzip the entire Blender folder structure and locate it in any location that suits you.  The only drawback is that you will need to set up your own links to the Blender executable (Blender.exe).&lt;br /&gt;
&lt;br /&gt;
== Installing the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Blender exporter add-on must be installed in the &amp;quot;scripts\addons&amp;quot; area of the Blender data space. The following process will install it in the correct location.&lt;br /&gt;
&lt;br /&gt;
=== Install Blender Exporter for Trainz ===&lt;br /&gt;
&lt;br /&gt;
:* Download the exporter.&lt;br /&gt;
:* Start Blender.&lt;br /&gt;
:* Open a new project(File -&amp;gt; New).&lt;br /&gt;
:* Open User Preferences(File -&amp;gt; User Preferences...).&lt;br /&gt;
:* Select Add-Ons panel and press button &amp;quot;Install from file...&amp;quot; down at the panel button bar.&lt;br /&gt;
:* Select and install downloaded file: you don&#039;t need to extract it.&lt;br /&gt;
:* Enable &amp;quot;TRAINZ Exporter&amp;quot; in Add-On list and press button &amp;quot;Save As Default&amp;quot; to keep it enabled for all subsequent Blender starts.&lt;br /&gt;
&lt;br /&gt;
=== Install the N3V TrainzMeshImporter ===&lt;br /&gt;
&lt;br /&gt;
:* Download the [http://online.ts2009.com/mediaWiki/index.php5/Downloads TrainzMeshImporter.exe].  The file is in the RAR format that can be extracted by most zip file management programs.&lt;br /&gt;
:* Before using the exporter you must copy the TrainzMeshExporter.exe to the same location as the Blender Exporter add-on.  The following will help find that location:&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and leave the default cube mesh in place.&lt;br /&gt;
:* If necessary, open the console window so you can read the error messages. In versions 2.5 through 2.63a, the console window is opened using the &amp;quot;toggle system console&amp;quot; menu entry in the &amp;quot;help&amp;quot; menu in the Blender menu bar. Beginning with version 2.64, the &amp;quot;toggle system console&amp;quot; menu has been moved to the &amp;quot;window&amp;quot; menu in the Blender menu bar. Those running a Blender version 2.49 or earlier can disregard this step, as the system console is in a window that is open whenever Blender is active. &lt;br /&gt;
:* Go to File-&amp;gt;Export and select &amp;quot;Trainz Mesh and Animation&amp;quot;.  Use the default settings but make sure that the save location is a temporary or working space.&lt;br /&gt;
:* The Exporter will complain about a missing file in a specific folder.   The missing file is TrainzMeshImporter and the folder name is the location you need.&lt;br /&gt;
:* The location is usually in the form of &amp;quot;ERROR&amp;quot;  file &amp;quot;C:Users\your name\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons\TrainzMeshExporter.exe&amp;quot; not found&amp;quot;.  This example is typical of using the default Blender Installer.  If you chose to install Blender using the zip archive then the location will be different.&lt;br /&gt;
:* Copy TrainzMeshExporter.exe to the location provided.  If you cannot access the AppData folder see the [http://online.ts2009.com/mediaWiki/index.php5?title=HowTo/Export_from_Blender&amp;amp;action=submit#Additional_Notes Additional Notes] section for help.&lt;br /&gt;
:* Once you have copied TrainzMeshExporter.exe to the correct location retry the export.&lt;br /&gt;
&lt;br /&gt;
== Exporting an Asset ==&lt;br /&gt;
&lt;br /&gt;
The creation of an asset suitable for Trainz is a long and complex process.  For the purposes of this tutorial we will only export the standard Blender cube.  Some knowledge of Blender and creation of assets for Trainz purposes is assumed.&lt;br /&gt;
&lt;br /&gt;
:* Start Blender and save the default cube as &amp;quot;cube.blend&amp;quot; in your preferred working location.&lt;br /&gt;
:* Create a simple material such as &amp;quot;cube.m.onetex&amp;quot; and allocate a simple colour texture file. For the purpose of this tutorial leave the default mapping technique to &amp;quot;generated&amp;quot;.  This will cause an error.&lt;br /&gt;
:* UV map the cube to the texture.&lt;br /&gt;
:* Save the Blender file.&lt;br /&gt;
:* Go to File-&amp;gt;Export and select Trainz Mesh and Animation.&lt;br /&gt;
:* The dialog box that appears gives a output save location for the XML, log, texture description and other files produced by the process.  Select your preferred location.&lt;br /&gt;
:* All the other options can be left as default.  If you were exporting a mesh that included animation, then you would also select &amp;quot;Export Animation Data&amp;quot;.&lt;br /&gt;
:* When you are ready, select &amp;quot;Export Trainz&amp;quot; in the top right hand corner.&lt;br /&gt;
:* This export process will fail with an error since the &amp;quot;generated&amp;quot; mapping option for textures is not supported when using an image file.  Go back to the Texture section and change the mapping option to UV and then export again.  This time it should export correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporter Output ==&lt;br /&gt;
&lt;br /&gt;
=== Files Created ===&lt;br /&gt;
The Exporter produces:&lt;br /&gt;
&lt;br /&gt;
:* An XML file.  This is used by TrainzMeshImporter.&lt;br /&gt;
:* The IM mesh file required by Trainz.&lt;br /&gt;
:* The texture description files (nnn.texture.txt) required by Trainz.&lt;br /&gt;
:* The KIN animation file required by Trainz if animation is used.&lt;br /&gt;
:* A log of the export process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error Reporting ===&lt;br /&gt;
Errors are reported in the Blender System Console and the Exporter log. Errors will prevent the production of the target IM file and therefore must be addressed.&lt;br /&gt;
Typical errors are:&lt;br /&gt;
&lt;br /&gt;
==== Mesh Errors ====&lt;br /&gt;
&lt;br /&gt;
:*Objects without a parent where a root bone exists.&lt;br /&gt;
&lt;br /&gt;
==== Material Related Errors ====&lt;br /&gt;
&lt;br /&gt;
:* No UV layer for UV mapped objects. Blender usually creates a default.&lt;br /&gt;
:* Use of the same material for both single and double sided meshes.  Recommend only using single sided meshes.&lt;br /&gt;
:* Objects without an assigned material.  Recommend assigning a material for each object.&lt;br /&gt;
:* Faces without a material in an object.  The faces will have been collected into a Vertex Group to enable correction. This error can also be caused by material slots in blender to which no material is assigned.   &lt;br /&gt;
:* Use of similar material names if character case is ignored.  i.e. &amp;quot;Black&amp;quot; and &amp;quot;black&amp;quot; are considered the same by Trainz.&lt;br /&gt;
:* Not using UV mapping for textures that are either using alpha, normal or specular.&lt;br /&gt;
:* Not using UV or reflect mapping for diffuse textures.&lt;br /&gt;
&lt;br /&gt;
==== Animation Errors ====&lt;br /&gt;
&lt;br /&gt;
:* More than one root bone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
Warnings are basically flaws or possible flaws that the user may wish to address.  Warnings do not prevent production of the IM output files. Some typicals warnings include:&lt;br /&gt;
&lt;br /&gt;
==== Animation Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Possible incorrect location and rotation of root bone.&lt;br /&gt;
:* Bones not found or no animation data found.&lt;br /&gt;
:* Events not found or unrecognised.&lt;br /&gt;
:* Event frame numbers in wrong positions.&lt;br /&gt;
&lt;br /&gt;
==== Mesh Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Vertices influenced by more than four vertex groups.&lt;br /&gt;
&lt;br /&gt;
==== Name Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Unrecommended characters.  Material, texture, object and path names should only be composed of a-z, A-Z, 0-9 or -_./\ characters.  A typical error is use of a space character in a path name.  The Exporter will change Blender file names that include upper case letters to lower case letters.  Generally, it is recommended you avoid the use of upper case characters in names.&lt;br /&gt;
&lt;br /&gt;
==== Material Warnings ====&lt;br /&gt;
&lt;br /&gt;
:* Surfaceless faces in an object.  The Exporter will gather these faces and put them into a Vertex Group to aid identification. The Vertex Group can be found in the triangle panel associated with the Safety Valve object.&lt;br /&gt;
:* Objects exported with double sided faces.   This will become an error if a material is used for both single and double sided objects.&lt;br /&gt;
:* Material renamed.  If the name does not match one of the standard Trainz material names then the Exporter will try and effect a solution.  Typically a name such as &amp;quot;black&amp;quot; will be renamed &amp;quot;blackm.onetex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Export Log ===&lt;br /&gt;
&lt;br /&gt;
The Exporter Log contains a record of events during the export process including errors and warnings.  The numTriangles report is the number of polygons (aka polys) in the mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Material Recognition by the Exporter ==&lt;br /&gt;
&lt;br /&gt;
The Exporter tries to identify materials in use by the asset mesh and will provide a warning if the detected material decoration varies from that declared in the Blender file.  The term &amp;quot;material decoration&amp;quot; is one of the standard Trainz material names such as &amp;quot;m.onetext&amp;quot; or &amp;quot;m.tbumptex&amp;quot;. The following decision process, provided by Torsten, may be useful for developers.&lt;br /&gt;
&lt;br /&gt;
The decision which material decoration is used is made by the texturing schema used for the material:&lt;br /&gt;
&lt;br /&gt;
: no texture used -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: one texture used:&lt;br /&gt;
:: invalid texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse texture     -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: reflection texture  -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: two textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha -&amp;gt; &#039;&#039;&#039;m.onetex&#039;&#039;&#039;&lt;br /&gt;
:: diffuse &amp;amp; reflection -&amp;gt; &#039;&#039;&#039;m.reflect&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: three textures used:&lt;br /&gt;
:: diffuse &amp;amp; alpha &amp;amp; reflection -&amp;gt;&#039;&#039;&#039; m.gloss&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: normal texture used:&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; alpha &amp;amp; no reflection -&amp;gt; &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; reflection &amp;amp; no alpha -&amp;gt; &#039;&#039;&#039;m.tbumpgloss&#039;&#039;&#039;&lt;br /&gt;
:: normal &amp;amp; diffuse &amp;amp; no alpha &amp;amp; no reflection-&amp;gt; &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As material &#039;&#039;&#039;m.notex&#039;&#039;&#039; causes problems with specific assets&#039;&#039;&#039;, m.onetex&#039;&#039;&#039; is used instead. It also works perfectly without any texture.&lt;br /&gt;
The problem with &#039;&#039;&#039;m.tbumptex&#039;&#039;&#039; and &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is that, besides the usage of an alpha texture (which is not used for &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039;), both use a diffuse and normal texture. In this case &#039;&#039;&#039;m.tbumpenv&#039;&#039;&#039; is chosen.&lt;br /&gt;
&lt;br /&gt;
Generally, you can use any material decoration you want. The script does not change a syntactically correct material decoration(e.g. Material&#039;&#039;&#039;m.billboard&#039;&#039;&#039; would pass unchanged).  It only drops a message to remind you that you either use an unsupported material(as warning) or that it had chosen another material(as info).&lt;br /&gt;
&lt;br /&gt;
If you check the issue and find it to be OK than you can safely ignore those messages.&lt;br /&gt;
&lt;br /&gt;
Blenders texture influences are nearly equivalent to MAX material maps. Because diffuse textures and reflection textures both influence diffuse color, the decision between them is made by checking texture mapping coordinates to:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;MAX map -&amp;gt; Blender texture influence&#039;&#039;&#039;&lt;br /&gt;
: Ambient Color -&amp;gt; Shading Ambient&lt;br /&gt;
: Diffuse Color -&amp;gt; Diffuse Color &amp;amp; UV mapping&lt;br /&gt;
: Specular Color -&amp;gt; Specular Color&lt;br /&gt;
: Specular Level -&amp;gt; Specular Intensity&lt;br /&gt;
: Glossiness -&amp;gt; Specular Hardness&lt;br /&gt;
: Self-Illumination -&amp;gt; Shading Emit&lt;br /&gt;
: Opacity -&amp;gt; Diffuse Alpha&lt;br /&gt;
: Filter Color -&amp;gt; Diffuse Translucency&lt;br /&gt;
: Bump -&amp;gt; Geometry Normal&lt;br /&gt;
: Reflection -&amp;gt; Diffuse Color &amp;amp; Reflection mapping &lt;br /&gt;
: Refraction -&amp;gt; not available(not found?)&lt;br /&gt;
: Displacement -&amp;gt; Geometry Displacement&lt;br /&gt;
&lt;br /&gt;
== Torsten&#039;s Hints  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These hints are reproduced from the Exporter script since many will not want to edit or view the actual script contents.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Trainz models you can have two kinds of special objects: attachment points and bones. For attachment points, the exporter expects objects of type &amp;quot;Empty&amp;quot;. For bones, objects of type &amp;quot;Lattice&amp;quot; and &amp;quot;Armature&amp;quot; will be accepted.  All of them need to be named according the naming conventions in effect for attachements( a.* ) and bones( b.r.* ). Objects of other type and objects with proper type but names not matching this conventions will be ignored as attachment points or bones.&lt;br /&gt;
&lt;br /&gt;
If you want to export animations with events, than you have to create a Blender TX object and enter the lines as you would do to create an event file. By renaming this object to &amp;quot;events&amp;quot; you ensure the exporter will not ignore your event list.&lt;br /&gt;
&lt;br /&gt;
It is possible to make parent-child-relations between meshes to simplify the design process. However, the chain must be end with a valid parent bone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Blender Data Files ===&lt;br /&gt;
 &lt;br /&gt;
Blender keeps certain data files, such as add-on utilities, in a special location. This has given Trainz content creators some difficulties due to access rights. If you used the Blender Installer then this is usually in the Windows logged on user space.&lt;br /&gt;
&lt;br /&gt;
Say, for example, your user name is Patrick, then the location is likely to be similiar to &amp;quot;C:\Users\Patrick\AppData\Roaming\Blender Foundation\Blender\2.59\scripts\addons&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you cannot see this folder in the user folder then it is likely the folder has been hidden by Windows.  You can unhide folders in the Windows Explorer by going to Tools-&amp;gt;Folder Options-&amp;gt;View and selecting &amp;quot;Show hidden files, folders and drives&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Under The Hood or, How the Exporter Works ==&lt;br /&gt;
&lt;br /&gt;
Basically the Blender export process works in three phases:&lt;br /&gt;
&lt;br /&gt;
:* Phase 1 is the checking process where the Exporter does some validation.  Where it can, the Exporter will make minor corrections and just issue a warning.  Warnings do not stop the process but an error will.  The warnings and errors should provide enough information to enable correction.&lt;br /&gt;
:* Phase 2 is the creation of the XML file required by the TrainzMeshImporter.  The XML file is a text file using a common language used by many applications.  It is also N3V&#039;s preferred import format.&lt;br /&gt;
:* On succession completion of the first two phases, the Exporter passes control to the TrainzMeshImport program which takes the XML file plus other information and produces the IM mesh file used by Trainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
Many thanks to USCHI0815 (Torsten) for his time and effort that went into producing and supporting the Blender Exporter.  Without it there would be no Blender models in Trainz.&lt;br /&gt;
&lt;br /&gt;
Thanks to Mick_Berg and Jananton for their comments, and to Mick_Berg for his [http://www.mickberg.com/blenderexport1.html Blender installation tutorial].&lt;br /&gt;
&lt;br /&gt;
== Tutorial Updates ==&lt;br /&gt;
Please feel free to update as necessary and correct errors in this tutorial.  It is a WiKi contribution and intended to be maintained this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Material Types]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:How-to guides]]&lt;br /&gt;
{{FUN-bot}}&lt;/div&gt;</summary>
		<author><name>Mjolnir</name></author>
	</entry>
</feed>