Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
52 views64 pages

Blender 2.7x Briage v2513 - en

The BRIAGE User Manual provides comprehensive instructions for using the BlendeR Intermediate Animation and Geometry Exporter for Blender 2.7x and Train Simulator 20xx. It covers installation, configuration, material settings, and common export issues, along with detailed explanations of the export process and user interface. The manual aims to assist users in effectively utilizing the exporter to streamline their 3D modeling and animation workflows.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views64 pages

Blender 2.7x Briage v2513 - en

The BRIAGE User Manual provides comprehensive instructions for using the BlendeR Intermediate Animation and Geometry Exporter for Blender 2.7x and Train Simulator 20xx. It covers installation, configuration, material settings, and common export issues, along with detailed explanations of the export process and user interface. The manual aims to assist users in effectively utilizing the exporter to streamline their 3D modeling and animation workflows.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 64

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

BRIAGE User Manual


- Again with an unsettling colour scheme! -

Documentation - EN - v2.5.786

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
1
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Table of contents
1 FOREWORD 6

1.1 Thanks......................................................................................................................................................................... 6
1.2 Personal thoughts about the exporter.............................................................................................................. 6
1.3 Where does that name comes from?!................................................................................................................. 7

2 INSTALLATION 8

2.1 Install files.................................................................................................................................................................. 8


2.2 Uninstall files............................................................................................................................................................ 9

3 PRESENTATION 10

3.1 Contents.................................................................................................................................................................... 10
3.2 What is processed from Blender?..................................................................................................................... 10
3.3 Usual workflow...................................................................................................................................................... 10

4 CONFIGURATION FOR IGS EXPORT (IGSE) 12

4.1 Main settings........................................................................................................................................................... 13


Export
IGS target filepath
4.2 Export mode and other important behaviours............................................................................................ 13
Export mode
Visible children
Hierarchy processing
Export skinned geometry
4.3 Other export toggles............................................................................................................................................. 13
Verbose
4.4 Main Object settings............................................................................................................................................. 14
Main Object
Main object center
4.5 Texture manipulation tools............................................................................................................................... 15
Texture path mapping
Textures directory
Texture strings to replace
Settings application order
4.6 Early tests mode..................................................................................................................................................... 16
4.7 Keywords merging system................................................................................................................................. 16
Custom keywords
4.8 Object rename........................................................................................................................................................ 17

5 CONFIGURATION FOR IA EXPORT (IAE) 18

5.1 Frames per second (fps) setting....................................................................................................................... 19


BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter
for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
2
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

5.2 Frame rate Multiplier........................................................................................................................................... 19


5.3 Remove last frame................................................................................................................................................. 20
5.4 Relative export....................................................................................................................................................... 20
5.5 Selected hierarchy................................................................................................................................................. 20

6 MATERIAL CONFIGURATION FOR IGS EXPORT (IGSE) 21

6.1 Shader assignment................................................................................................................................................ 22


6.1.1 Using UI shader list
6.1.2 Using a custom shader
6.1.3 Using Legacy method
6.2 Ambient, diffuse, specular, emissive............................................................................................................... 22
Specular power
6.3 UV Arguments......................................................................................................................................................... 23
6.4 UV Special effects................................................................................................................................................... 24
Scroll UVs
Animate UVs
6.5 Transparency.......................................................................................................................................................... 25
ZBufferMode
Transparency
6.6 Distance related modifiers................................................................................................................................. 25
Visible distance
MipLODBias
FilterMode
6.7 Viewer-facing options.......................................................................................................................................... 25
Viewfacing
6.8 Double siding.......................................................................................................................................................... 25
BackFaceCull
Two sided
6.9 Various settings..................................................................................................................................................... 25
Unlit
Pre-DPP
Cast shadows
6.10 Comment field...................................................................................................................................................... 26
6.11 Other properties................................................................................................................................................. 26
ZBias
IGobject_color

7 MATERIALS TEXTURES SETTINGS 26

7.1 Texture slots mapping with TS20xx shaders................................................................................................ 26


7.2 Mapping panel for a texture slot associated with an image..................................................................... 27
Map

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
3
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

TrainLightMapWithDiffuse.fx
7.3 Individual texture's path mapping options................................................................................................... 29
Cancel 'Textures directory' setting
Export texture path

8 NOTES 30

8.1 Using Duplication.................................................................................................................................................. 30


8.1.1 DupliFrames
8.1.2 DupliVerts and DupliFaces
8.1.3 DupliGroups
8.2 Using Snap Points.................................................................................................................................................. 31
8.3 Using skinning and bones................................................................................................................................... 32
8.4 About model export.............................................................................................................................................. 33
8.4.1 General notes
8.4.2 Reading logs
8.5 About animation.................................................................................................................................................... 33
8.5.1 Blender 3D view animation
8.5.2 Scaling
8.5.3 unrelated animations
8.5.4 other IA tips
8.6 About smooth vertex normals........................................................................................................................... 35
8.7 About materials..................................................................................................................................................... 35
8.7.1 Performance notice
8.7.2 TrainBasicObjectDiffuse.fx 1-bit alpha
8.7.3 Vertex colours
8.7.4 Viewer facing properties
8.7.5 Setting-up TrainGlassWeatherEffects.fx

9 TYPICAL EXPORT ERRORS OR PROBLEMS 38

9.1 Warnings.................................................................................................................................................................. 38
9.1.1 About Asset Editor cache
9.1.2 About Asset Editor preview mode
9.1.3 About TS live object export
9.2 No mesh or empty object found export. Export Stopped........................................................................... 38
9.3 Please export to the same drive your data are from! Texture 'xx' not added. .................................... 38
9.4 No texture files found in asset editor or blueprint editor......................................................................... 39
9.5 The animation is working properly in Blender but not in the asset editor......................................... 39
9.6 The animation is stuttering................................................................................................................................ 39
9.7 Image filename contains dots '.' which may cause unexpected results in material 'xx', in texture
slot 'yy'.............................................................................................................................................................................. 40
9.8 IGSE configuration parameters are not working as expected................................................................. 40
9.9 An object of an animated set is not in the expected rest position.......................................................... 40
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter
for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
4
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

9.10 "Inconstent LODing" error or some objects are offset............................................................................. 40

10 ANNEXES 41

10.1 Shaders list............................................................................................................................................................ 41


10.2 Shaders usage examples................................................................................................................................... 50
10.3 Example: Hierarchy and Custom Keywords impact on export............................................................. 52
10.4 TS20XX naming rule check.............................................................................................................................. 55
10.5 Selection example for IA export..................................................................................................................... 56
10.6 Dynamic text......................................................................................................................................................... 57
10.7 Example with TrainUprightViewFacingFlora.fx........................................................................................ 60
10.8 Texturing lexical notes...................................................................................................................................... 62
10.8.1 3 components maps (RGB)
10.8.2 1 component maps (greyscale)
10.8.3 Palettisation

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
5
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

1 Foreword

1.1 Thanks

Thanks a lot to:


• Dom107
• JADsHome
• Karma99(Victory Works)
• Mike Adams
• Hugo_B
• Jáchym Hurtík

for their remarks, tests and help around the exporter!

All of this wouldn't have been possible without Dom107's exporter anyway.

1.2 Personal thoughts about the exporter

This new exporter is being worked on since November 2015. I am very proud of the result and having
been part of the great adventure of this exporter which contributes to the successful DTG's Train
Simulator 20xx series (I'm not affiliated to Dovetail Games in any ways).
I still don't know why anybody made this before, but I'm happy it's here for you now.

I began working on this because using the old exporter was too extensive in time and resources
compared to the results. I also wanted it to be more ergonomic for newcomers to 3D and complex TS
asset authoring.
I learnt Python on-the-job for this. After 2 months I got something more useful through blender's
custom properties, this was the V1.5 . More internal versions came by while I was getting better and
hence quicker with Python. More and more features got implemented too until it may finally be named a
“V2.0”. Some corrections and hundreds of revisions later, there was finally something with most of the
features I wanted and a stable core. That's where few of you began hearing of it on UKTS or RailSim-
fr.com some talented beta-testers applied and two months later quite everything was finished thanks to
their remarks!
Thanks to them you can now use a mostly bug-free exporter! (according to test's extrapolations....)

Why so late? I wanted it be the best I can give to the community. I typed this thing alone in my bedroom
all day and everyday for months, and used it as an excuse to cast aside as much people as I could to stay
alone in my little PC world (which was very effective). And finally, this was really hard sometimes. You
don't believe me? -Ask my father or try yourself to develop something based on someone else work in a
language you don't understand!-

Fun fact, I always thought I was alone in this development ship, but in facts, there where lots of people
supporting me. Sparse PMs or half-weekly phone calls: everything and everyone weighs in the scale!
They don't belong in the “special thanks” section but they will recognize themselves while reading this
(if they ever read it... hahaha). This was for me a rewarding programming and typing experience as
much as an enriching human experience in the end.

My lasts words about this are that I gladly wish this software will be as useful to you as it was to me.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
6
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

1.3 Where does that name comes from?!

BRIAGE is an acronym for BlendeR Intermediate Animation and Geometry Exporter which is the full
name of this software.

It's also an old French word which designates the last step of work where a dough or pastry is
homogenized and packed using a wooden bar or a mechanical device. I found this to be an appropriate
enough fact for that name to be kept compared with others I came up with so far.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
7
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

2 Installation

2.1 Install files

1. Select your installation method:


◦ With Windows Explorer:
1. Install BRIAGE Add-On by simply copying “BRIAGE” folder in Blender “scripts\addons”
sub-directory (for example: D:\Program Files\Blender Foundation\Blender\2.63\scripts\
addons ).

2. Start Blender to open the default Blender file.


3. Open Files > User Preferences...
4. go to Add-ons tab.
5. Look for “BRIAGE – TS Exporter(.igs, .ia)”.
It is advisable to filter add-ons for this purpose. Select:
- Supported Level: “Community”
- Categories: “Import-Export”

◦ With Blender Filesystem explorer


1. Start Blender to open the default Blender file.
2. Open Files > User Preferences...
3. go to Add-ons tab.
4. Click Install from file button. A file browser opens.
5. Reach “BRIAGE.zip” file and confirm.

2. The installed Add-On must be enabled before they can be used. Simply place a check mark on
the Enable Add-On box . The new export functionalities are now integrated into Blender.

3. Display add-on informations by clicking the white arrow near the checkbox.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
8
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

4. Specify TS main “\Railworks” folder path (where TS executable file is located). This is used to
reach shader information.
If not set, it will regenerated on each load from system and steam informations. However this
last technique might fail in some cases and an error will be displayed in material IGS settings
shader description box.

5. Specify a line length in characters per line for shader description box text if necessary. This
option allows you to make sure you can see shader descriptions.

6. Click on “Save User Settings”.

2.2 Uninstall files

1. Start Blender to open the default Blender file.

2. Open Files > User Preferences...

3. go to Add-ons tab.

4. Look for “BRIAGE – TS Exporter(.igs, .ia)”.


It is advisable to filter add-ons for this purpose. Select:
- Supported Level: “Community”
- Categories: “Import-Export”

5. Simply uncheck its “Enable Add-On” box . The new export functionalities are now withdrawn
from Blender.

6. Select the same as your installation method:

• With Windows Explorer:


1. Delete “BRIAGE” folder in Blender “scripts\addons” sub-directory (for example: D:\
Program Files\Blender Foundation\Blender\2.63\scripts\addons\BRIAGE ).

• With Blender Filesystem explorer


1. Display add-on informations by clicking the white arrow near the checkbox.
2. Click “remove” button

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
9
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

3 Presentation

3.1 Contents

The exporter is made of 2 main parts:


 IGSE module: IGS format export (model structure)
 IAE module: IA format export (animation)

You, the user, influence its behaviours through Blender's interfaces mainly located in the properties
area:
• Material tab panels (see 6)
• Scene tab panels (see 4)
• Texture tab panels (see 7)
• User Preferences Add-ons tab panel (see 2)

• Info tab on long exports to display a progress bar

Some example files are provided too in the package.

3.2 What is processed from Blender?

✔ Objects
+positions
+rotations
+main object colour

✔ Meshes
+materials
+vertices
+faces
+custom normals
+active Vertex colours (unlike in Blender only one colour is saved per vertex), see 8.7.3
+Vertex groups weights (if linked to bones through armature modifier), see 8.3

✔ Bones
+positions
+rotations
+deform bindings up to 4 bone influences per vertex

✔ Meta objects, Curves (if geometry is found), Texts and NURBS can be exported too as regular
objects if they have 1 material assigned. They are auto-converted during export to regular
objects and your scene stays untouched.

✔ All dupli counterparts of the preceding statements

3.3 Usual workflow

The principle to create an exportable model is as follows:

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
10
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Name objects

An object must follow the TS20xx strict naming rules for LODs (see in 10.4).

If an object doesn’t follow these rules, some processing is made to try to set the name as required by the
game (see in 10.4).

Texture meshes

A material usually needs several texture slots, their content depends on the shader used (see in 7.1,
10.1, 10.2).

Adjust some pivots

Outside specific TS20xx or animations requirements, it is advisable to centre the pivot of each object on
its geometry.

Among the specific requirements of TS20xx, the pivot of the main body of a car or locomotive must be
centred with z = 0 at the rail contact (See example in 4.7). The bogie pivot must coincide with its
rotation axis and the bogies naming convention must be followed with bo01 as the front bogie and bo02
as the back bogie, in the case of a rolling stock with 2 bogies.

Setup material attributes in the Blender material tab

In Blender, you can select shader names in a dropping menu, use custom ones or even use the old still
supported way through a material's first texture slot name. Theses two last fields support entering
short names or full shader names (See 7.1, 10.1).

Note that a specific processing is performed for TrainGlassWeatherEffects.fx to make it more convenient
to use (see 8.7). Also some automatic adjustments are done depending on the shader used.
Material attributes are initialized in Blender (see 4, 6).

Create animations (See in 5, 8.5)

Setup the behaviour of the exporter (see in 4, 6, 7)

The exporter takes the modifiers into account without applying them to the model. Objects can also
have some scaling and rotation (see some restrictions in 8.4 : it could be necessary to use CTRL+A to
apply these transformations). Ngons can also be used.

As a default behaviour, several Blender objects are merged into one object when exported, if they all
have the same LOD value and distance. This can be cancelled or altered, take a look here 4.2 and here
4.7 for more details.

Main object field (see in 4.4) sets the main object of the model, for example the body of a locomotive.

There are 2 modes of export for IGS or IA: the entire model (whether objects are selected or not in
Blender views) or selected objects (see 4.2). Main object is set to active object by default.

Annexe 10.6 provides some information about using dynamic representation of character strings
(automatic numbering).

Check log or Blender's system console for errors, see 8.4.2 - Reading logs

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
11
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

4 Configuration for IGS Export (IGSE)


The following paragraphs explain how to configure IGSE (IGS Exporter) main options through the
Properties panels:

These properties are scene-dependent. Different


Blender scene will not share configurations implicitly.
This allows the exporter to be more flexible and *.blend
files might contain different objects without parameters
interfering with each other.

You can store a whole train-set in a blend, sharing


materials betweens cars for easy editing, share bogies
and doors while keeping each car in its own scene not
overlapping with other train parts and each car has its
own IGS Export config.

It is highly discouraged to use and export object which


don't have their scales applied. Especially if it is a
negative scale or a LOD number higher than 1. It is indeed
more prone to provoke unexpected results. If used in
conjunction with center main object parameters!

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
12
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

4.1 Main settings

The top Export button allows exporting to IGS format.

IGS target filepath is the last export path used by IGSE. You
can enter/modify it here are later after clicking Export. It
is saved in the Blend file for later use.

4.2 Export mode and other important behaviours

The first top left box sets the Export mode to export selected or export visible.
They are self-explanatory.
“Export selected”: only selected objects are exported with all of their children
(selected of not, visible or not).
“Export visible”: only visible objects (selected of not) are exported with all of
their children (visible or not).

Visible children modifies children exportation rules. When this setting is enabled, only visible children are
exported whatever Export mode is selected.
In the Outliner, the eye icon in front each object is not greyed out for a visible object.

Hierarchy processing allows the exporter to merge objects together following their LOD's distance and
number as well as their matching keywords. Annex 10.3 shows the impact of options Hierarchy and Custom
Keywords combined on IGS and IA export. Further details at 4.7 - Keywords merging system.
For small models, it is advisable to deactivate this option.

Export skinned geometry enables the export of bones and corresponding Vertex groups weights. See 8.3 - Using
skinning and bones for informations.

4.3 Other export toggles

Verbose toggle makes the exporter print a full log *.igs.log file alongside your
*.igs file instead of writing a short log to Blender's system console. Beware, this
option increases export time by a factor of 5. Use it only when something
looks wrong and you want to take a look at exported data.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
13
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

4.4 Main Object settings

Main Object dynamic enumerator tells to select the


pointed object as the one which will be used to merge
other objects at 'scene level' hierarchy of the Blender
model.
If “active object” is specified, the first mesh object found
while scanning list of exportable Blender objects is
chosen. Active object is the yellow highlighted object
among a selection.

IGSE log indicates used main object:


BRIAGE:: 'PROPERTY': MainObject to find = 1_1000_BiDuLe
BRIAGE:: 'PROPERTY': MainObject found = 1_1000_BiDuLe

Main object center is a set of 3D coordinates with matching checkboxes. This is used to centre main object
origin at these coordinates (and move children accordingly) if the corresponding checkbox is enabled.
This avoids moving objects in Blender, for example, to centre a locomotive along the X axis to ensure
that it is centred on the rails.
Centring along an axis gives the same result as moving the entire model in Blender so that the pivot of
the Main Object object is at coordinate 0 of this axis.

As such a move impacts animations, the IGS file settings of “Main object center” and “Main Object” are
also read when exporting IA files.

IGSE log indicates that the model was automatically centred:


BRIAGE:: 'INFO': CenterMainObject: exported model moved by X=0.122961 Y=-
0.211694 Z=-0.205195 (Blender axis)

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
14
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

4.5 Texture manipulation tools

Texture path mapping mode sets how the exporter binds


IGS file to texture files.
• “write from *.IGS destination” mode: wherever you
export your IGS, its texture components will point to
the files used/specified in Blender.
This will be referred later as “New texture mode”
• “write from *.blend location” mode: the same relative
filepath from blender will be applied to IGS blindly.
For this setting to work properly, work in your
source folder sub-directories where you will export
your IGS to or make sure your working directories
mimic exactly end directories hierarchy.
This will be referred later as “Legacy texture
mode”

Textures directory field allows you to set a directory where all your model's textures will be stored
directory can be child, sibling, uncle or wherever you want. By default every texture filepath is rerouted
to this folder, you can fine-tune this behaviour with individual texture settings, see 7.3.

Texture strings to replace is a table where you enter former


(double-click to edit) and new strings to be found and
replaced by in texture names.

It allows replacing each listed string by another string,


for all the texture files, after “texture name replacement
mode” has been processed. This is “find all” mode.

Example of use above Adding “#” at the beginning of former string field
toggles “texture name replacement” mode. Each filename listed as such will be replaced by another
name. The file suffix (dds, ace, bmp, etc…) must not be specified.

Example above :
Texture file “2” is changed to “tex2004”,
then “2004” is replaced by “2016” ,
then “2” are translated to “4”,
finally it is exported as “tex4016”.

Settings application order:


Texture strings to replace (“replacement mode” then “find all mode”) => Cancel 'Textures directory' setting ELSE
Export texture path ELSE Texture directory => Texture path mapping

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
15
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

4.6 Early tests mode

This check box enables BRIAGE to circumvent


errors which may arise from exporting your
models. Could it be missing or faulty materials
or missing UVs , it will try to export everything
it can when the checkbox is ticked.
It will nonetheless need a game-ready material
in "Standard test material:" field to work. You can
type in this field to narrow search reasults while
scrolling the list.

This happens, as the text states, when there is no


material in blend file

4.7 Keywords merging system

As a default behaviour, the Blender model hierarchy is kept only when objects include TS20xx keywords
or when a LOD change is found. As much as possible, several Blender objects are merged into one object
when exported, if they all have the same LOD value and distance. This is a recommended setting to
diminish performance issues linked with a high number of direct3D “draw calls” in TS.

To merge objects, the exporter looks for the following built-in keywords. ('$' represents a digit) :
'_locomotive' '_fuel_level_' '_door$$'
'_tender' '_freight' '_step$$'
'_coach' '_bulk' '_wh$$'
'_vehicle' '_lights_fwdhead' '_bo$$'
'_wagon' '_lights_revhead' '_panto$$'
'_carriage' '_lights_fwdtail' '_wiper$$'
'_coal' '_lights_revtail' '_primarydigits_$'

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
16
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

This limits the effect of TS20xx maximum of 256


exported objects and igs format limitation of a
maximum of 24 children. However, as explained
below, options are available to strictly follow the
hierarchy and to ensure that specific sets of objects are
merged together or not.

The Custom keywords table allows control of object


merging by user-defined keywords when “Hierarchy processing” is activated.

“?” provides a list of built-in keywords.

Each entry is composed of a text field (double-click to


modify) for writing in the keyword and a checkbox to
enable its use on next export.

You can specify a full name or a string common to


multiple objects. They define different groups of
Example of use above
objects to merge separately: those with string Bod in
the name, those with string _props in the name and those with those with string _newKword in the
name (this is default field's value).
Note that the checkbox in front of Seat is unticked, therefore this setting will not be used on next export
until enabled again.

If “Hierarchy processing” is enabled and you do not want an animated object to be merged with other
objects, unless they move with the same motion, just add its full name to the list. Thus,
1_1000_rod9000 present in Custom Keywords table will be a single object: It will not be merged with any
other object.

An object named with a TS20XX keyword as listed in above blue box, (for example 1_0100_bo01)
doesn’t need to be in Custom Keywords table.

4.8 Object rename

Object Name strings to replace table replaces part of an object


name by right field value if left field value is found inside
object name.

This feature was elaborated to be able to make complete


sets of objects inside a blend file which shares alike
objects which can't be named the same in blender (Ex:
for dynamic gantries wire nodes: allows easier use of
Asset Editor later in development process). You can use
this to truncate the ".002" produced by Blender on the
fly. This assumes theses alike objects do not share the
same IGS file where homonymy could cause various or
serious problems.

Here, every object including “_feeder_lgv” will have this


part replaced by “1_1000_feeder_lgv”. This is a very bad
idea: it will indeed corrupt your igs names mostly...

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
17
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

5 Configuration for IA Export (IAE)


IA export config is located below IGS export config in Scene tab.

In addition to the possible use of Main object center from


IGSE configuration (see 4.4), there is an optional
configuration panel with two exclusive parameters:
Frame rate Multiplier and Remove last frame. Other settings are
stolen from IGSE; refer to it for further details 4.1, 4.2,
4.3 .

See more here: 8.5 - About animation

5.1 Frames per second (fps) setting

The frames per second (fps) setting can be set in the render menu:

or

(If Blender render selected on top menu bar.


Here it’s 120 / 2 = 60 fps which is taken into
account. The divider (the framerate base) can
be < 1)

(If Blender game selected on top menu bar)

(If Blender render selected on top menu bar)

5.2 Frame rate Multiplier

It allows having a frame rate higher that the fps value using parameter Frame rate Multiplier. The frame rate is
computed as “Frame rate Multiplier * fps value” (see 5.1 for fps setting). The frame rate multiplier is limited
to 10. If the computed frame rate is higher than 10, a message is displayed in the log file and Frame rate
Multiplier is reset to 1 for the export.

For example, if the file is set with:


Frame rate Multiplier = 3

With fps = 30, the frame rate for the animation will be 90. (This value can be found in the log file at line
SampleRate in section IAfHeaders)

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
18
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

5.3 Remove last frame

The IA file describes the positions of the IA elements through time. For a cyclic animation, the last position
is identical to the first.
Eventually, removing this last position in the IA file, may make a cyclic animation smoother.

If Remove last frame is ticked in IA export config: last position is not exported, else it is written without any
change.

5.4 Trim Animation

Moments where no actual animation occurs, at the end and beginning of the array of selected frames for
exporting, are trimmed out. This leads to a shorter file. This is useful when animating cabs and trains with
different animation length not to have to move the start frame and end frame by hand for each set of objects to
export.

5.5 Relative export

This setting is enabled by default. When it is active, only animation relative to Blender object's parent are
exported. This is useful for animating buttons mounted on moving parts in cab for example.
Unticking this box exports animations relative to the scene for every object which doesn't have his parent
included in exported objects set.

5.6 Selected hierarchy

This option is only visible in export selected mode.


When active, this will export children of selected pose
bones and objects recursively.
Else, only selected pose bones and objects are exported.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
19
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

6 Material configuration for IGS Export (IGSE)


Material panel IGS options provide powerful tools and UI for setting properties within Blender.

It is located at the bottom of Properties > Material tab and is


visible when Blender Game or Blender Render engines are in
use.

Left is an overview of its default settings. These will be


explain further later in this document.

Some options might be greyed out depending on the shader used because all features are not available for all
shaders.

Features will be described here from top to bottom.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
20
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

6.1 Shader assignment

Shaders can be assigned to a material by 3 different manners :

6.1.1 Using UI shader list


Below the shader name label is a menu. Clicking on it
unfolds a huge pop-up where you can select your
shader name. Selecting one will update the shader
description box with appropriate informations about use
and expected number of texture slots. Failing to use
the right number of texture slots for a registered
shader will generate an error on export.

6.1.2 Using a custom shader


Selecting “\custom shader\” in shader list brings up a new
field where a non-registered shader name can be
used. It also supports usual and short shader name
but it is not intended to be filled with theses!

Example: TrainBump.fx is a non registered yet


nd
working 2 slot shader 1 for diffuse, 2 for normal map. It can only be set by custom shader name field (or
rst

legacy method – see 7.1).

6.1.3 Using Legacy method


The first enabled texture slot is still checked for legacy compatibility if texture type is None . It was used
for shader name, whether it is the full name or the short one.

Legacy shader name mode has priority over other shader name selection techniques on export.

Slot order demonstration on the table below (7.1)

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
21
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

6.2 Ambient, diffuse, specular, emissive


In the material menu, the following panels are used for these settings:
Blender UI location Blender field

Material UI 1. Diffuse colour


2. Diffuse alpha
1 3. Specular colour
2
4. Specular Intensity * 8
3 → Specular power can be previewed through the
specular power box.
4
5
5. Specular Hardness (fidgeted)
→ Phong size can be previewed in place of UV arg1
8 when use specular hardness is ticked. See 6.3 - UV
6 Arguments

6. Ambient
Material UI > IGS Options
7. Emissive colour
+ alpha
7
8 8. Emissive strength

6.3 UV Arguments
There are 6 UV args (short for “UV Arguments”) which have various effects depending on the shader
used. But the first one is often used for the same setting:
arg1 : “Phong” size (values between 0<64)
This is the size of the specular highlight: this is close to blender material's “ Hardness” visual effects.
When “Use specular hardness” is enabled, Blender's specular hardness is translated to TS hardness system
then affected to arg1 on export. Else, arg1 can be modified freely.

IGSE prints this to logfile for each material:


BRIAGE:: 'PROPERTY': UVArguments for material xxxx: 0.0 0.0 0.0 0.0 0.0 0.0
Here are some examples of their functions for different shaders (from http://the-art-of-rws.blogspot.fr:
• TrainBumpSpec.fx • WaterCubeMap.fx
arg1 : “Phong” size (values between 0<64) arg1 :“Phong” size (values between 0<64)
arg2 : 'Wobble' factor (values between
• TrainGlass.fx
0<1)
arg1 : “Phong” size (values between 0<64)
arg3 : Movement speed (0.02 is a good
arg2 : Intensity of the reflection (day-time)
value)
arg3 : Intensity of the reflection (night-
arg4 : Oscillation height (0.02 is a good
time).
value)
arg5 : Oscillation scale (6 is a good value)
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter
for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
22
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

6.4 UV Special effects

These are special behaviours available for some materials. They allow some sort of texture animation.
You can activate them with their associated radio-buttons.

Scroll UVs is available for non-fx shaders. When enabled, U


and V coordinates of material's 1rst texture slot are
scrolled respectively left and down of “image x*u value”
and “Y dimension*image y”each frame.
In other words, UV scroll function scrolls
normalized(between 0 and 1) u and v coordinates each render frame.

Animate UVs allows use of “animated” textures (more like a sequence of different images). See this for
more informations:

Here is a purpose modified version of the article from Railsimilarity:

Train Simulator 20XX supports animated textures. 3. Still in the material tab, scroll down to find the "UV
Animated textures refer to a series of identically sized Special Effects" area, and tick the "Animate UVs" button.
frames or textures which the game will load and Also insert the correct number of frames for your
display frame-by-frame. Some examples of animated animation in the area marked '#Frames' (in our example
textures would be : this would be 4). Also choose a frame rate in the 'FPS'
field. In our example we'll choose 2.
- traffic light sequence
- flashing lights on a police car

The process is fairly straight-forward. The engine


relies of the fact that the frames are named
sequentially, and once the material is set up to
4. Export the shape.
animate, it will loop through these sequentially named
frames at a given speed.
NOTE : The export process will only compile the
textures that are referenced in the scene IGS file. As we
Here, in this example, we will setup a simple 4 frame
only reference the starting frame (XXXXX_anim1.dds)
animation.
in our IGS, only this single frame of the animation will
compile. If we view this in the game, we will see the
1. Initially create the sequence of 4 frames and name
first frame OK but the other frames will be
then as follows:
represented as "MISSING TEXTURES". There is a
XXXXX_anim1.dds, XXXXX_anim2.dds,
simple solution to this where we can simply force the
XXXXX_anim3.dds, XXXXX_anim4.dds etc (where
missing textures to compile from within the blueprint
XXXXX is the texture name).
editor. To do this, navigate to find your textures in the
blueprint editor and one by one right-click on each one
2. In Blender, assign a simple shader such as TexDiff
and choose the 'export' option from the roll-out. Once
(or AddATex for glows) to the relevant polygon or
all the textures have been compiled, the shape will be
mesh. Then in the material, point the texture slot to
ready to be viewed in-game.
the first texture XXXXX_anim1.dds. It's important to
point to the first texture so the game engine knows
where to start the sequence.
Freely adapted for BRIAGE (2016) from Railsimilarity
(2009)

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
23
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

6.5 Transparency

Transparency settings allow use of transparency related parameters with this


material.

ZBufferMode allows modifications of how TS direct3D engine computes Z depth


when encountering this material in relation with the shader selected.
To get 8-bit alpha with non-fx shader set this to “test only”

The Transparency checkbox is the former AlphaTestMode toggle. It enables transparency for fx shaders,
mostly 1-bit alpha.

6.6 Distance related modifiers

These interface material properties with in-game camera distance.

Visible distance when set at another value than 0 sets maximum distance in
meters where this material is viewable. Else, it's considered infinite.

MipLODBias pulls MIPmaps change distance closer(negative values) are away(positive values). This is a
particularly effective way of fixing with distance-blurred textures in TS by applying a negative value
here.

FilterMode sets the filtering mode used for the texture in-game.

6.7 Viewer-facing options

Viewfacing enumerator allows you to choose the viewer facing mode you want to
apply to your material.
➔ No mode is self-explanatory.
➔ ViewFacing mode enables all-axis view-facing rotations
➔ UprightViewFacing mode enables local Z-constrained view-facing rotations
➔ Auto mode applies the best or most common setting corresponding to
the selected shader name.

6.8 Double siding

These two boxes allow culling faces' back for non-fx shader and double-siding
for fx shaders.

6.9 Various settings

Unlit activate LMKeepVertexColors flag. Fun fact, it


doesn't make your material unlit: please use specific
shaders for this purpose.

Pre-DPP is a comment field toggle (see 6.10) added on export to the comment field. (DPP means
Deferred Post Processing, theses are effects applied after rendering objects like antialiasing or other 2D
effects.)

Cast shadows is taken from Blender's interface and activates LMCastShadows flag.
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter
for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
24
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

6.10 Comment field

This field allows manually entering comment-driven


material behaviours. The ? button brings a pop-up with a
list of known comment field toggles.

Here is copy of the list:


:forceprelit :fpsfraction :forceunder
:pointlit :fadedist :fullalphasort
:pre-dpp :noclip :occlude
:unfog :startinvisible :alternode
:animdelay :startnocollide :shatter
:animmaxframe :nocompress :objectstick

6.11 Other properties

Some properties are scattered across Blender Properties area :

ZBias : Material tab > Options panel> Z Offset

IGobject_color : (only set by IGS's main objects) Object tab > Display panel> Object color

7 Materials textures settings


Textures are essential to most of available shaders; don't forget to set them accordingly to what is
required by the selected shader.

7.1 Texture slots mapping with TS20xx shaders

IGSE texture slot available dispositions :


n-th Activated slot Standard Legacy TrainGlassWeatherEffects.fx

Slot 1 Texture 1 Shader name Texture 1


(6.1.3)
Slot 2 Texture 2 Texture 1 1 Texture 3

Slot 3 Texture 3 Texture 2 Texture 4

Slot 4 Texture 4 Texture 3

Slot x Texture x Texture x

(1) Texture 2 is automatically processed by the exporter.

Some shaders usage examples are given in annex 10.2 and a non-exhaustive shaders list is given in
annex 10.1.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
25
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Example of slots setting:

or or

using short name: using long name: using shader list or custom shader
TrGlass TrainGlass.fx field:
TrainGlass.fx

The slots must be enabled ( ) to be taken into account. The enabled slots don’t need to be contiguous.
Only the enabled slots order matters.

7.2 Mapping panel for a texture slot associated with an image

Typical setting of the Mapping panel for a texture slot associated with an image:

The “Map:” field may be left empty when using object active
UV channel for mapping this texture slot.

Different mapping informations may be used for


different texture slots of the same material.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
26
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Here is such an example with shader TrainLightMapWithDiffuse.fx :

2 UV maps are defined on this object:

One for the main slot:

… and one for the second slot (“lightmap” slot of TrainLightMapWithDiffuse.fx ) :

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
27
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

7.3 Individual texture's path mapping options

There are different ways of binding textures path to materials on export.

Cancel 'Textures directory' setting prevents IGSE from using


'Textures directory' (see 4.5) setting on this texture.
>> If using “New texture mode”: wherever you export your
IGS, its texture component will point to the file used by
Blender.
>> If using “Legacy texture mode”: the same relative filepath
from blend to texture will be applied to IGS. For this setting to
work properly, work in your source folder sub-directories
where you will export your IGS to, or make sure your
working directories mimic exactly end-directories
hierarchy.

Export texture path precise a texture path to use on IGS export instead of Blender's one. This field cancels
'Textures directory' setting too. To only change texture's name: please use 'texture strings to replace' table(see
4.5). Option is disabled if field is empty.
This setting is particularly useful when reskinning an “unreskinnable” assets (like lofts) or when
textures are not available on export path.
>> If using “New texture mode”: wherever you export your IGS, its texture component will point to the file specified
by Blender.
>> If using “Legacy texture mode”: the same relative filepath from blend to texture will be applied to IGS. For this
setting to work properly, work in your source folder sub-directories where you will export your IGS to, or make
sure your working directories mimic exactly end-directories hierarchy.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
28
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

8 Notes
Here are various notes you should take into account while using BRIAGE.

8.1 Using Duplication

Duplis are objects or groups of objects instanced in Blender by Duplication panel of objects.

These instances are now exported by BRIAGE with the following strategies.

8.1.1 DupliFrames
These are merged with duplicator's on export.

8.1.2 DupliVerts and DupliFaces


These are merged with their respective original object on
export.

8.1.3 DupliGroups
The content of the groups is parented to the duplicator (mesh
or empty) and renamed with duplicator’s name.

Using an empty without parent as duplicator preserves


group's hierarchy; else, group objects with no parent are
parented to the duplicator.

The duplicator cannot be a snap point. Duplicator's name may or may not use TS naming conventions,
its detected name is inserted at the beginning of object's and bone's names of the group instances.
You must be careful not to exceed the overall 24 chars limit after insertion , else name will be truncated.
If a "*" is present as last char of duplicator's name, name will be appended to instance's names
without "*".

Dupli animations can be exported as well.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
29
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

8.2 Using Snap Points

Export of Snap Points is now available.

They obey to 3DSmax naming rules; see 'TS directory'/dev/Docs/TS2015Tech.pdf, chapter 4.


Here is a modified extract from the above-mentioned documentation:

1. Place an “arrows” type empty in the Blender scene. The naming convention is important so the
blueprint editor can recognise this as a snap point.
• #ss_xxx is a source snap point
• #st_xxx is a target snap point
• #sb_xxx is both a source and target snap point
where xxx is a unique name, in this case SnapOut2 (I was using SnapIn for target snap points)

2. Orient the snap point object so that the Z axis is pointing in the direction of the desired alignment
when snapped to a target. In general, for all snap point types, this is usually away from the model’s
surface

3. Setup remaining snap points.

4. All done! Now export as IGS.

5. Add as the model of a scenery blueprint, or any other blueprint that has a container component.

6. Hit export. The snap points will automatically be added to the container component on export, and
by default these will be the
Kuju\RailSimulatorCore\Editor\Gizmo\DefaultScenerySnapPoint*.xml blueprints.

NOTE: You can create your own snap point blueprints and configure various settings for these. To use
your own blueprints, you will have to manually add the snap points with the names you gave them in
Blender as children of the blueprint, e.g. #ss_SnapOut2 would be named SnapOut2. You assign your
custom snap point blueprint as the blueprint ID, and hit export. The blueprint editor will match the
names of the snap points in the model to the ones in the blueprint and override their matrices
automatically.

Freely adapted for BRIAGE (2016) from TS2015Tech.pdf (2015)

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
30
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

In Blender they follow these additional rules:

• Place an "arrows" type empty (Display type)


• They can have a parent object
• They mustn't have any children

Take a look at “SampleWithDots.blend” example file for a demonstration.

8.3 Using skinning and bones

Export of armatures and skinning is now available.

Armatures are exported when using Export skinned geometry function (see 4.2). Corresponding Vertex
groups weights are exported when an armature modifier is present on a skinned object. Envelope
deformations are not supported yet if not applied to Vertex groups. Skinned objects must only use
“Skin....fx” shaders to work properly. Skinned objects doesn't need to be child of an armature they
only need an armature modifier set to deform following vertex groups weights. Vertex groups names
must be the same as the concerned bone name. It is recommended to take a look here: Blender manual
“Weight edit”, “Skinning to Shapes” and more generally to “Skinning” chapter.

All objects within an IGS doesn't have to be skinned. Used armatures must be exported (it follows rules
defined by selected Export mode). Make sure all your bones have unique names even across
armatures!

You might want to disable this feature for armature-based animations which doesn't need any
deformations on any object to speed up performances.

Take a look at “Prez.blend” example file for a demonstration.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
31
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

8.4 About model export

8.4.1 General notes


The use of negative scaling requires applying Ctrl A “scale”.

"current frame" is set to 0 during the export. The different animated objects must be in a rest
position at "current frame" = 0. At the end of the export, "current frame" is reset to the value before
performing the export.

Only 256 objects can be exported within an IGS including LoDs and without snap points.

Max number of faces and vertices is unknown.

8.4.2 Reading logs


A log file is not printed if not especially asked with the “Verbose” toggle. But a shortened log is available
after each export in Blender's system console here:

You will note that when BRIAGE starts properly, it prints this in Blender system console: (right picture)

Paragraph 9 lists typical export errors or problems.

Even without any error, check specifically for:


 Messages about name substitutions, could it be:
→ incorrectly named objects.
→ replaced object names
 The objects groups list starting with “------------------ Groups list -----------------“.
It can be checked that objects are grouped as expected.
 Some material parameters taken correctly into account(UVArguments, etc…)

The short log file allows displaying the following information:


 Materials list with associated shader, first texture and UVArguments parameters.
 The texture files list

8.5 About animation

8.5.1 Blender 3D view animation


The exporter processes active animations at the time of the export file saving.
Thus, if, for example, a constraint is disabled in the open model, it will not be in the exported animation.
In short, the animation working in the Blender 3D view should be the one played in TS20XX, provided
all the objects selection is correct (“Export selection” mode) or all the objects needed for the animation are
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter
for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
32
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

visible (“Export visible” mode). Some options allow more control over what should come out in TS, see 5.5,
5.6 .

Don’t forget to set the frames per second (fps) and the start and end keyframes according to the
relevant objects: a switch animation is shorter than a pantograph animation.

Immobile objects are timed from export anyway.

8.5.2 Scaling
Data in exported IA format are positions and rotations. There is therefore no scale. Remember to apply
scale to objects CTRL+A “scale” to avoid strange surprises. Thus the effect of a "copy scale" constraint
won’t show up in the TS20XX exported animation. Although, a scale animation could be faked using an
armature and skinning vertices, one bone for each stretching direction.
A model and tutorial on “animating the valve-gear of a steam locomotive” by Mike Adams can be found
on UKtrainsim download section. Though this tutorial is being updated for this export tool, it gives a
good example of what can handle the exporter: lattices, bones, armatures, constraints of type copy
location / copy rotation, limit rotation.

8.5.3 unrelated animations


It is likely that one Blender file will have several unrelated animations (such as for example, wipers and
doors). These different animations can all start at keyframe 0. However when animation is played in
Blender all the animations in a specified keyframes range will animate. This is no problem for the export
as, once the keyframes range is set, you’ll only select objects to export animations for (in this example,
the wipers) and the other moving objects will not be included.
If you prefer independent animations in the Blender file, you can use different keyframes ranges. Select
your object(s) and its(their) related parent objects and set the keyframes range to when they animate
and finally export as IA file.
For example, a wiper animation between keyframes 0 and 100, a door animation between 120 and 200,
etc.. To export the door animation, select your doors and their related parent objects and set the
keyframes range between 120 and 200.

8.5.4 180° animations


Animating needles in cab doing more than a 180° rotation can be challenging due to stuttering. It is
advised to use a Frame rate Multiplier of 7 and have an animation with an odd number of frames.
Devdocs point out a length of 25 frames.

8.5.5 other IA tips


The dope sheet or the graph editor allows to easily move keyframes if necessary.

It is not necessary to select all objects of an animation set and especially an object with an
already selected parent if using “selection mode”.

Among the selected objects ("selection mode" enabled) or the objects below the scene object ("visible mode"
enabled), the criteria of inclusion in the animation export are (see example at Annex 10.5):

 They have a constraint or an animation.


 They are direct parent of an armature.
 They have a child (parentage created with CTRL+p) with a constraint or an animation.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
33
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

When enabling "selection mode", be sure that the selection is consistent with the IGS structure or bring
corrections with Relative export and Selected hierarchy options. For example, if the IGS file was created
exporting the entire model, the selected objects for animation should be at the level under the scene
object (otherwise, risk of unwanted translation when playing the animation without using previously
cited options for adjustments).

By default, the log file lists the selected objects and those taken into account in the export.

8.6 About smooth vertex normals

The exporter takes into account whether to render the object fully smoothed, flat or auto-smoothed
meshes. It also reads and export custom normals and sharp edges.
You can read details on smoothing here:
http://wiki.blender.org/index.php/Doc:2.6/Manual/Modeling/Meshes/Smoothing
I use below some information from this link for a few explanations.

The easiest way is to set an entire object as smooth or faceted by


selecting a mesh object, and in Object mode click Smooth in the Tool
Shelf. This button does not stay pressed; it forces the assignment of the
“smoothing” attribute to each face in the selected mesh.

Click the Flat button in the Tool Shelf's Shading panel to cancel the
smoothing effect.

Auto smoothing can be enabled in the mesh's panel in the Properties


window. Angles on the model that are smaller than the angle specified in
the Angle button will be smoothed for the export and during rendering
(i.e. not in the 3D view) when that part of the mesh is set to smooth (i.e
Smooth was also clicked). Higher values will produce smoother faces,
while the lowest setting will look identical to a mesh that has been set
completely solid.

Another way of changing the impact if smoothing is to use the edge split
modifier. But this might just be useless as this is already done internally
on export...
If you want to use custom normals for improved lightning effects and cleaner normal maps, have a look
at this Blender Add-on over there: Y.A.V.N.E. (Yet Another Vertex Normal Editor)

8.7 About materials

8.7.1 Performance notice


It is important to keep the number of different materials low because each material contains a lot of
informations which occupies large disk space but also RAM when exporting which slows down the
process. The number of polygons inpacts the game’s fps far less than a high number of materials.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
34
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

8.7.2 TrainBasicObjectDiffuse.fx 1-bit alpha


TrainBasicObjectDiffuse.fx and most *.fx shaders can be used with 1 bit transparency in the alpha
channel provided it’s only black (full transparency) or white (no transparency); shades of grey are . For
the transparency to be active, Transparency must be enabled in material's IGS options.

8.7.3 Vertex colours


Active and renderable Vertex colors channel is exported.

Be careful when using smaller IGS setting, if vertices have too different colours for their adjacent faces
they will not weld correctly together, causing performance issues in TS.

8.7.4 Viewer facing properties


Viewfacing properties are supported for AddATex shader.

Take a look (left) at “UglyToonStreetlight.blend” and


“SampleWithDots.blend” example files for a
demonstration. Light halo only appears at night.

Viewfacing value is automatically set according to shader


names if they contain "Upright" and/or "ViewFacing" (e.
g.: TrainUprightViewFacingFlora.fx) if you set
Viewer-facing options to Auto.

Be careful while using shaders in upright view-facing


mode (figure above): quads will turn around local Z axis
and vertices will use a matrix defined from main object
rotations to position themselves. Be sure your main
object doesn't have some rotations if you use Upright View-facing quads as they will appear deformed:
(screenshot on the left)

An invisible object must be added otherwise the object once added in a scenario won't be pickable. One
way is to add a cube with a UV map initialized and use the “ invisible" shader. The "invisible"
shader must not be accompanied by a texture file else, it will generate an error (see example 10.7).

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
35
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

8.7.5 Setting-up TrainGlassWeatherEffects.fx


TrainGlassWeatherEffects.fx is processed by the exporter. The material name with such shader
must be weatherglass_1 then weatherglass_2, etc… (According to the number of materials using this
shader) you only need to have 3 slots with the useful texture files (The texture filenames is the user
choice. The 3 images below are from https://www.christrains.com/en/ts_faq_weatherglass.html) :

windiff_nm.dds : Main texture with


alpha channel.

winnorm_nm.dds : normal map


texture to define where the
raindrops are.

winwmotion_nm.dds : Texture to
define the wipe out pattern of
raindrops.
May be generated using
“winmotion.exe” in TS directory

For TrainGlassWeatherEffects.fx, the exporter automatically adds an additional slot for TS20XX.
(dummy cubemap slot) UV arguments are not enabled for this material.

Example in Blender:

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
36
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

See also some shader usages in annex 10.2.


In-game result (left),
CD 460 by 4a 61 63
68 79 48 6d

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
37
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

9 Typical export errors or problems


Most of export errors are caught on export and display pop-ups about what the trouble is. Caution: in Blender,
pop-ups disappear when they are no more under the mouse cursor but BRIAGE writes then to Blender's
System console(Info area > Window > System console) and/or log file for the user to be able to find them again.

9.1 Warnings

9.1.1 About Asset Editor cache


When exporting the ia animation trying different parameters, it’s better to exit the Asset Editor,
sometimes clean the cache and restart the Asset Editor. Otherwise, the Asset Editor might not update
the animation properly.

9.1.2 About Asset Editor preview mode


While trying different parameters with lofts, modifications does not update accordingly. Please close
and restart the preview.

9.1.3 About TS live object export


Exporting objects from Asset Editor to an enabled provider and product while TS Route Editor is open
on your computer and then reload (not F9 but deactivate then reactivate its checkbox) the product can
and will corrupt your route on save and then crash TS. Never do or try this on any valuable route!

9.2 No mesh or empty object found export. Export Stopped

This error is generated when nothing is found which can be exported. To solve this :

• if in “Export selected” mode: select objects.


• if in “Export visible” mode: ensure all the objects you want to export are visible in the 3D View.

9.3 Please export to the same drive your data are from! Texture 'xx' not added.

This appears when you export a file


to another drive your textures are
from, the best way to avoid this is
by using TS's source folders as
working directories while
developing your model.

It also appears when you are exporting an object from a scene never saved before and Blender
executable is not on the drive you are exporting to.

Example: Your textures are under D:/myWork/myTrain/myTexures/ and you export to


C:/steamLib/common/Railworks/Source/myProvider/myProduct/RailVehicles/myTrain/ the error will

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
38
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

pop-up. This will not happen if textures are under C:/myWork/myTrain/myTexures/ but textures paths
in the igs will point there and your model will never work on another computer than yours.

To fix this behaviour (picking one is enough):


• If you are accustomed to the old texture processing way, uncheck this and it should work as
before:

• Use provided texture path 'on-export' modifier tools (see 4.5 and 7.3)
• Use TS's source directories as working directories

9.4 No texture files found in asset editor or blueprint editor

If no texture files are found when opening the xml model file in the asset editor or the blueprint editor

Check in the log file that the export used the proper texture mapping informations. If you are not
familiar with the new BRIAGE texture workflow, uncheck “write from *.IGS destination”:

9.5 The animation is working properly in Blender but not in the asset editor

If nothing moves, check in the main blueprint “Anim Set” section that all the animation sets have
“Animate in editor” set to “True”.
If the parts are not moving as expected:
 Check the igs / ia export consistency. For example, selected objects for animation are not
under the scene level whereas the igs export was made for the entire model (no selection).
 Check in the igs export log file (“Groups list” section) that a moving part was not merged
with another object. If this is the case, add keywords in the Custom Keywords table, if the model
has not too many objects, disable hierachy processing.
 Check the FPS value (number of frames per second) in the igs exporter log file. This value is
listed in every description of a material even if option "verbose" is not checked. Setting-up FPS is
explained in paragraph 5.1.
 Exit the Asset Editor, clean the cache and restart the Asset Editor.

9.6 The animation is stuttering

If you can’t get a smooth animation, try “Key” menu -> “Interpolation Mode” ->
“Linear”, either in the dope sheet or in the graph editor.

You can also try to lower the framerate divider (framerate base: see 5.1) or
try to use framerate multiplier option: see paragraph 5.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
39
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

9.7 Image filename contains dots '.' which may cause unexpected results in material 'xx',
in texture slot 'yy'

This warning appears when the texture filename contains more than 1 dot because the blueprint editor
will process these thinking the last part after the first dot he sees is a file extension. Therefore a “.safe” is
appended at export in this case.

9.8 IGSE configuration parameters are not working as expected

Check the igs log file in Blender's system console or by performing an export with Verbose option
activated and check the output:
 Check all your exported objects have their scale applied (active object > CTRL+A > “ scale”). This
is known to cause untraceable bugs during export.
 Then, check its contents: Are the expected IGS parameters listed as expected (shader names,
texture names, etc...)? If not refer back to sections from this very manual about setting
correctly the parameters which failed to export.
 For transparency, you may need to change some parameters under Material IGS options panel>
Transparency settings according to the shader used (see paragraph 10.2).

 If you still encounter problems, please contact the author or current maintainer(s) of BRIAGE
about your issue with a detailed log file and eventually your *.blend file.

9.9 An object of an animated set is not in the expected rest position

An object of an animated set may not be in the expected position before running the animation. Still,
when running the animation and when the set returns to the rest position, all objects of the animated
set are well positioned.

To fix this problem:

 If you still encounter problems, please contact the author or current maintainer(s) of BRIAGE
about your issue with a detailed log file and eventually your *.blend file.
 Check the object position with current frame set to 0 (the igs export is done with " current
frame" = 0).
 Before animating an object, ensure to use Ctrl+A “rotation & scale”.
 If the badly positioned object is a child, clear the parent link (Alt+P Clear and Keep Transformation).
Add the link with the parent using the ChildOf constraint + Set Inverse. Don’t forget to export again
the igs file. The object must then be included in the selection when exporting the animation.

9.10 "Inconstent LODing" error or some objects are offset

Check that:
 An object of LOD level N has a parent of LOD N-1 (parentage created by Ctrl p).
 The child name must be the same as the parent name, apart from the LOD level and distance
 The child LOD distance must be > than the parent LOD distance
 Some objects with different names haven't been truncated to the same 24 chars name to
comply with LOD naming conventions

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
40
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

10 Annexes

10.1 Shaders list

This list is exhaustive: other shaders are used directly by game engine or unfinished, contain bugs or
just less useful copies of other listed shaders in the use which can be made of them from an 3D artist
point of view.

This table is meant to give informations about which slot each texture type should use. Hence, shaders
which don't have their source file(s) included with TS distribution cannot be listed.

Cubemaps can be replaced by dummy textures, TS always uses its default cubemap instead.

All *.fx shaders support at least 1-bit alpha transparency mode when Material IGS option Transparency is
ticked. Even if “RGBx” is specified. I don't know any exception to this rule

Images contains usually 4 components : RGBA (3 colours [RGB], 1 transparency [A]). Unused
components are replaced with an “x”. By default, “RGBA” designate here 8-bit per channel textures used
as diffuse maps with a transparency channel unless stated otherwise.

“xxxx” represent dummy textures: none of their channels will be used whatever they contain. It is
advisable to keep these as small as possible (e.g.: 8x8).

Shaders table colour ConvertToGeo.exe known


Blender / 3DsMax UI listed
supported shaders (App.fbk Shaders I wanted to add
code list)
shaders

ConvertToGeo.exe known
ShaderName ShaderName ShaderName
supported shaders (App.fbk
list)

Blender / 3DsMax UI listed ShaderName ShaderName ShaderName


shaders

ShaderName ShaderName ShaderName


Shaders I wanted to add

Some Blue listed shaders might bug ConvertToGeo.exe while exporting producing “invalid
parameters “ errors or provoke an “infinite export” bug.

Each Grey listed shader have been tested and is working properly in TS.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
41
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Shader name Description Slot 1 Slot 2 Slot 3 Slot 4

No texture, additive vertex alpha


AddAlphaDiff
with diffuse colour

Texture mapped, no lighting


RGBA
AddATex applied, using additive alpha from
additively drawn
texture's alpha channel

Texture mapped, with diffuse


colour, using additive alpha from RGBA
AddATexAlphaDiff
texture's alpha channel combined additively drawn
with vertex alpha

Texture mapped, with diffuse


RGBA
AddATexDiff colour, using additive alpha from
additively drawn
texture's alpha channel

No texture, with diffuse colour,


AddDiffuse
using additive alpha

Texture mapped, no lighting RGBA


AddTex
applied, using additive alpha additively drawn

Texture mapped, with diffuse RGBA


AddTexAlphaDiff
colour, with additive vertex alpha additively drawn

Texture mapped, with diffuse RGBA


AddTexDiff
colour, using additive alpha additively drawn

No texture, vertex alpha blending


BlendAlphaDiff
with diffuse colour

Texture mapped, no lighting


BlendATex applied, using alpha blending from RGBA
texture's alpha channel

Texture mapped, with diffuse


colour, using alpha blending from
BlendATexAlphaDiff RGBA
texture's alpha channel combined
with vertex alpha

Texture mapped, with diffuse


RGBA
BlendATexDiff colour, using additive alpha from
additively drawn
texture's alpha channel

Texture mapped, diffuse colour,


alpha blending from texture's alpha
BlendATexDiffTrans RGBA
channel, pixels with alpha=0 are
transparent (e.g. alphaed fences).

Texture mapped, with diffuse


BlendTexAlphaDiff RGBA
colour, with vertex alpha blending

Not drawn. Use to define areas


BridgeSplit
where track crosses over itself.

RailWorks specific shader for sky


Clouds.fx RGBA
dome cloud layer

Diffuse No texture, just diffuse colour

DiffuseBumpmap Unknown RGBx RGBx Normal RGBx Cubemap

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
42
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Shader name Description Slot 1 Slot 2 Slot 3 Slot 4

Dual textured, diffuse colour, first


pass additive, and second pass RGBA
DualAddATexDiffDestBlend RGBA
blended alpha with the alpha of the additively drawn
first texture (e.g. puddles).

Dual textured, with diffuse colour,


RGBA
DualBlendATexDiffAdd using alpha blending for first pass RGBA
additively drawn
and additive alpha for second pass

Dual textured, with diffuse colour,


RGBA
DualTexDiffAdd using additive alpha for second RGBA
additively drawn
texture

Add second pass to first pass,


RGBA
DualTexDiffAddWithLightIntens brightness of second pass affected RGBA
additively drawn
by lightmaps if used

Add second pass to first pass,


RGBA
DualTexDiffAddWithoutLightIntens brightness of second pass not RGBA
additively drawn
affected by lightmaps if used

Dual textured, with diffuse colour,


first pass invisible, second pass
DualTexDiffInvisibleStencilBlend xxxA RGBx
alphaed using alpha of first pass
texture

Dual textured, with diffuse colour,


RGBA
using additive alpha for second
DualTexDiffStencilAdd RGBA A*slot1 A
texture only where first texture has additively drawn
solid alpha

Dual textured, with diffuse colour,


using blended alpha for second RGBA
DualTexDiffStencilBlend RGBA
texture only where first texture has A*slot1 A
solid alpha

Dual textured, with diffuse colour,


DualTexDiffTAlpha using second texture's alpha RGBx RGBA
channel to blend between textures

Dual textured, with diffuse colour,


DualTexDiffTrans RGBx RGBA
using second texture's transparency

Dual textured, with diffuse colour,


DualTexDiffVAlpha using vertex alpha to blend RGBx RGBx
between textures

Bumpmap for Train 2 prototype or


EmbossBumpmap something like that. Takes 2 OR 3 RGBA RGBx Normal (RGBA) optional
RGBA textures.

Unknown
following naming conventions:
Texture mapped, with diffuse
InvertATexDiff RGBA
colour, using inverted additive
alpha from texture's alpha
channel

Nothing is drawn; use for invisible


Invisible collision barriers or to be able to
select viewer facing trees

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
43
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Shader name Description Slot 1 Slot 2 Slot 3 Slot 4

RailWorks specific shader for lofts


LoftBump.fx RGBx RGBx Normal
with diffuse and bump channels
RailWorks specific shader for lofts
LoftBumpAlpha.fx with diffuse/alpha and bump RGBA RGBx Normal
channels
RailWorks specific shader for lofts RGBA
LoftBumpTrans.fx with diffuse/ 1-bit alpha and bump RGBx Normal
channels 1-bit alpha

RailWorks specific shader for lofts


with diffuse channel and fixed
specular RGBA
LoftPostDPPTexDiffSpec.fx
post DPP stage and shadow 1-bit alpha
mapped
Supports UVarg1 see 6.3

RailWorks specific shader for lofts


LoftTexDiff.fx RGBx
with diffuse channels

RailWorks specific shader for lofts


LoftTexDiffAlpha.fx with diffuse channels blended RGBA
between 2 lofts

RailWorks specific shader for lofts


with diffuse channel and fixed
LoftTexDiffSpec.fx
specular RGBx
Supports UVarg1 see 6.3

RailWorks specific shader for lofts RGBA


LoftTexDiffTrans.fx
with diffuse channels 1-bit alpha

RailWorks specific shader for lofts


with diffuse and bump channels
LoftTunnelBumpSpec.fx RGBx RGBx Normal
generated AO
Supports UVarg1 see 6.3

RailWorks specific shader for lofts


LoftTunnelTexDiff.fx with diffuse channels RGBx
generated AO

RailWorks specific shader for lofts


RGBA
LoftTunnelTexDiffTrans.fx with diffuse channels
1-bit alpha
generated AO

Skinned geometry specific shader


SkinAmbient.fx Nothing applied, texture mapped RGBx
looks unfinished

Skinned geometry specific shader


SkinDiffuse.fx RGBx
with diffuse channel

R: palette 1
mask
Skinned geometry specific shader RGBA palette 1 RGBA palette 2
G: palette 2
SkinDiffusePallete2.fx with diffuse channel mask 256xY image 256xY image
Palettised, see 10.8.3 x use “_nocomp” use “_nocomp”

A: luminosity

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
44
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Shader name Description Slot 1 Slot 2 Slot 3 Slot 4

Skinned geometry specific shader


with diffuse, bump and specular
SkinGloss.fx RGBx RGBx Normal Rxxx Specular
channels
Supports UVarg1 see 6.3

Skinned geometry specific shader


SkinNormal.fx RGBx RGBx Normal
with diffuse and normal channels

R: palette 1
mask
Skinned geometry specific shader RGBA palette 1 RGBA palette 2
G: palette 2
SkinNormalPallete2.fx with diffuse channel mask 256xY image 256xY image RGBx Normal
Palettised, see 10.8.3 x use “_nocomp” use “_nocomp”

A: luminosity

Skinned geometry specific shader


SkinRESERVED1.fx RGBA xxxx Normal xxxx Specular
unfinished

Skinned geometry specific shader xxxx Normal


SkinRESERVED2.fx RGBA (no forced linear xxxx Specular
unfinished filtering)

Skinned geometry specific shader


SkinRESERVED3.fx RGBA xxxx Normal xxxx Specular
unfinished

Skinned geometry specific shader


with diffuse channel and specular
SkinSpecular.fx RGBx
lighting
Supports UVarg1 see 6.3

SpecularBumpmap unknown RGBx RGBx Normal RGBx Cubemap

RailWorks specific shader for sky


Stars.fx RGBA
dome stars

Stencil shadow objects, material


StencilShadow.fx must begin with shadow_ to be xxxx
detected

Unknown
following naming conventions:
RGBA
SubtractATexDiff Texture mapped, with diffuse
subtractive draw
colour, using subtractive alpha
from texture's alpha channel

Tex Unlit mapped texture RGBA

Texture mapped with single


TexDiff RGBA
texture, diffuse colour applied

RailWorks specific shader with


TrainBasicObjectDiffuse.fx RGBx
diffuse channels

RailWorks specific shader with


TrainBasicObjectUnLit.fx diffuse channels. RGBx
Unlit. Good replacement for Tex.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
45
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Shader name Description Slot 1 Slot 2 Slot 3 Slot 4

R: palette 1
mask
RailWorks specific shader with RGBA palette 1 RGBA palette 2
G: palette 2
TrainBasicObjectDiffusePallete2.fx diffuse channels 256xY image 256xY image
mask
Palettised, see 10.8.3 use “_nocomp” use “_nocomp”
x
A: luminosity

RailWorks specific shader with


diffuse channel and specular
TrainBasicObjectSpecular.fx
lighting RGBx RGBx Specular
Supports UVarg1 see 6.3

RailWorks specific shader with


diffuse and bump channels
TrainBump.fx RGBx RGBx Normal
I use it regularly because I don't
need Env mapping.

RailWorks specific shader with


diffuse and bump channels plus
TrainBumpEnv.fx
environment map RGBx RGBx Normal RGBx Cubemap
Supports UVarg1 see 6.3

RailWorks specific shader with


diffuse and bump channels and a RGB diffuse
TrainBumpEnvMask.fx
static environment mask RGBx Normal RGBx Cubemap
A: Envmap
Supports UVarg1 see 6.3

RailWorks specific shader with


diffuse and bump channels and
TrainBumpSpec.fx
specular lighting RGBx RGBx Normal
Supports UVarg1 see 6.3

RailWorks specific shader with


diffuse, specular and bump RGB diffuse
TrainBumpSpecEnv.fx
channels plus environment map RGBx Normal RGBx Cubemap
A: Specular
Supports UVarg1 see 6.3

RailWorks specific shader with


diffuse and bump channels and RGB diffuse
TrainBumpSpecEnvMask.fx specular lighting and environment A: Specular and RGBx Normal RGBx Cubemap
map Envmap
Supports UVarg1 see 6.3

R: palette 1
RailWorks specific shader with mask
diffuse, specular and bump RGBA palette 1
channels plus environment map x
TrainBumpSpecEnvPalette1.fx 256xY image RGBx Normal RGBx Cubemap
Supports UVarg1 see 6.3 x
use “_nocomp”
Palettised, see 10.8.3 A: luminosity
and Specular

RailWorks specific shader with


diffuse channel, specular lighting RGB: diffuse
TrainBumpSpecMask.fx
and a static environment mask RGBx Normal
A: Specular
Supports UVarg1 see 6.3

RailWorks specific shader with


TrainDecal.fx RGBA
special case of decals

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
46
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Shader name Description Slot 1 Slot 2 Slot 3 Slot 4

RailWorks specific shader for


TrainEmissiveGlow.fx RGBA Rxxx Emissive
glowing emmisive materials

RailWorks specific shader with


diffuse channel and a static
TrainEnv.fx
environment RGBx RGBx Cubemap

arg2: Reflection intensity

RailWorks specific shader with RGB: diffuse


TrainEnvMask.fx diffuse channel and a static RGBx Cubemap
environment mask A: Envmap

RailWorks specific shader with


TrainFlora.fx RGBx
diffuse channels

Glass shader with env map


Supports UVarg1 see 6.3
TrainGlass.fx RGBA RGBx Cubemap
arg2: Reflection intensity
arg3: Reflection illumination(night)

Glass shader with weather effects


for in cab rain
Reflective glass with cubic RGBx Cubemap RGBx Object xxxA Wipers
TrainGlassWeatherEffects.fx RGBA
reflection map and diffuse. not in BRIAGE Normal motion
See: 8.7.5 - Setting-up
TrainGlassWeatherEffects.fx

RailWorks specific shader with


bump map, diffuse and light map
RGB: Normal
TrainLightBumpSpecMask.fx channels, specular mask in bump RGBx Rxxx LM or AO
alpha A: Specular
Supports UVarg1 see 6.3

RailWorks specific shader with light


TrainLightMapWithDiffuse.fx RGBx Rxxx LM or AO
map and diffuse channels

RailWorks specific shader with


TrainPostDPPObjectDiffuse.fx diffuse channels post DPP stage and RGBx
shadow mapped

RailWorks specific empty shader -


should never be called, used as a
TrainShadowOnly.fx
placeholder for shadow only
rendering

RailWorks specific empty shader -


should never be called, used as a xxxA
TrainShadowOnlyDiffuse.fx
placeholder for shadow only 1-bit alpha
rendering with alpha

Sky dome shader, dynamically


TrainSkyDome.fx xxxx xxxx
vertex lit by game engine.

RailWorks specific shader with


diffuse channel, specular and
TrainSpecEnv.fx
environment map RGBx RGBx Cubemap

Supports UVarg1 see 6.3

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
47
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Shader name Description Slot 1 Slot 2 Slot 3 Slot 4

RailWorks specific shader with


RGB: diffuse
diffuse channel, specular lighting
TrainSpecEnvMask.fx
and a static environment mask A: Specular and RGBx Cubemap
Envmap
Supports UVarg1 see 6.3

RailWorks specific shader with R: LM or AO


diffuse and bump map textures plus
G: Emissive
TrainUberShader.fx a 3rd texture with: specular mask, RGBx RGBx Normal
AO mask and emissive mask B: Envmap
Supports UVarg1 see 6.3 A: Specular

RailWorks specific shader for view


TrainUprightViewFacingFlora.fx RGBx
facing upright flora

Unknown
Blends mapped texture with
TrainVertexLit.fx vertex colours. Buggy when RGBx
skydome behind. No transparency
at all.

Unknown
TrainVertexLitWithDiffuse.fx Mapped texture. Buggy when RGBx
skydome behind.

RailWorks specific shader for view


TrainViewFacingFlora.fx RGBx
facing flora

RailWorks specific shader for view


TrainViewFacingUnlit.fx RGBx
facing unlit

Triple texture, 2nd pass contains RGBA* Gloss


gloss map in alpha channel, 3rd reflection to
TripleGlossMap RGBA xxxA Gloss
pass (reflection) texture drawn display
additively additively drawn

Triple texture, 2nd pass alpha RGBA* Gloss


channel gloss map, 3rd pass drawn reflection to
TripleGlossMapWithLightIntens RGBA xxxA Gloss
additively affected by lightmaps if display
used additively drawn

Triple texture, 2nd pass alpha RGBA* Gloss


channel gloss map, 3rd pass drawn reflection to
TripleGlossMapWithoutLightIntens RGBA xxxA Gloss
additively not affected by lightmaps display
if used additively drawn

Triple textured, 2nd and 3rd passes RGBA RGBA


TripleTexDiffAddAdd RGBA
are drawn additively additively drawn additively drawn

Triple textured, with diffuse colour,


using each texture's alpha channels
TripleTexDiffTAlpha RGBA RGBA RGBA
to blend between each pair of
passes

Triple textured, with diffuse colour,


pass 2 uses texture alpha for
TripleTexDiffTAlphaVAlpha RGBA RGBA RGBx
blending, pass 3 uses vertex alpha
for blending

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
48
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Shader name Description Slot 1 Slot 2 Slot 3 Slot 4

Triple textured, with diffuse colour,


TripleTexDiffVAlpha using same vertex alpha to blend RGBA RGBx RGBx
between each pair of passes

Triple textured, with diffuse colour,


pass 2 uses vertex alpha for
TripleTexDiffVAlphaTAlpha RGBA RGBx RGBA
blending, pass 3 uses texture alpha
for blending

RailWorks specific shader for


reflective water
WaterCubeMap.fx RGBx Normal xxxx RGBx Cubemap
Supports UVarg1 see 6.3
arg2: 'Wobble' factor

RailWorks specific shader for


reflective water
WaterFlow.fx RGBx Normal xxxx RGBx Cubemap
Supports UVarg1 see 6.3
arg2: 'Wobble' factor

RailWorks specific shader for


reflective water
Supports UVarg1 see 6.3
WaterScenery.fx arg2: 'Wobble' factor RGBx Normal RGBA RGBx Cubemap
arg3: Movement speed
arg4: Oscillation height
arg5: Oscillation scale

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
49
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

10.2 Shaders usage examples

Use Shader name Main texture Bump Cube Additional settings


(slot 1) map map

AddATex name.dds → IGS options ZBufferMode


Light halo around lightsources
(e.g. streetlights) (transparency in set to Test only
alpha channel) → IGS options Viewer facing
options set to Viewfacing or
UprightViewFacing
→ Mesh data tab: one vertex
colors channel active and
renderable.
See 8.7.4

AddATex name.dds → IGS options ZBufferMode


Headlight or rearlight glass
(transparency in set to Test only
alpha channel)

BlendATexDiff name.dds → IGS options ZBufferMode


Simple windows only
(transparency in set to Test only
alpha channel)

TexDiff name_anim1.dds → IGS options AnimateUVs


Animated texture
which is the first enabled
see 6.4 - UV Special effects file of the → #Frames and FPS
animation. according to the animation
to implement.

TexDiff name.dds → IGS options Scroll UVs


Scrolling text
or (transparency in enabled
see 6.4 - UV Special effects
AddATex alpha channel) → u and v according to the
speed and direction of scroll
to implement.
→ IGS options ZBufferMode
set to Test only if
transparency needed

TrainBasicObjectDiffuse.fx name.dds → IGS options Transparency


Solid texture with holes
(transparency in enabled
alpha channel.
Only black or
white (1-bit))

TrainBasicObjectDiffuse.fx name.dds
Solid texture

TrainBump.fx name.dds name_nm


Texture with normal map
.dds

TrainBumpSpecEnvMask.fx name.dds name_nm env.dds → UV arguments suggested


Texture with specular effects
and normal maps (specular in .dds values:
alpha channel) arg1: 32.0
(all other values = 0.0)
see 6.3 for more infos

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
50
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Use Shader name Main texture Bump Cube Additional settings


(slot 1) map map

TrainDecal.fx decal_name.dds → IGS options ZBufferMode


Solid texture with holes for
inscriptions (such as rolling (transparence in set to Test only
stock numbers) alpha chanel: (needed for the alpha
any grey value channel to be properly
between black processed as a transparent
and white) layer)

TrainGlass.fx name.dds env.dds → UV arguments suggested


Windows with reflections
(transparency in values:
alpha channel) arg1: 64
arg2: 0.8
arg3: 0.4
(all other values = 0.0)
see 6.3 for more infos

TrainSpecEnvMask.fx name.dds env.dds → UV arguments suggested


Texture with specular effects
(specular in values:
alpha channel) arg1: 32.0
(all other values = 0.0)
see 6.3 for more infos

TrainUprightViewFacingFlora.fx name.dds → IGS options Transparency


2D Vegetation bushes
(transparency in enabled
alpha channel. 1- → Smaller IGS must be
bit) checked.(see 4.3)
→ IGS options Viewer facing
options set to Auto

TrainViewFacingFlora.fx name.dds → IGS options Transparency


2D Vegetation leaves
(transparency in enabled
alpha channel. 1- → Smaller IGS must be
bit) checked.(see 4.3)
→ IGS options Viewer facing
options set to Auto

Report to 10.1 - Shaders list for more precise informations.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
51
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

10.3 Example: Hierarchy and Custom Keywords impact on export

Note: Custom Keywords in this example show how objects are merged and how it can also be used to
ensure that an object is not merged with others by adding the full object name (see paragraph
also 4.7).

For this example, the wheels don’t follow the TS20XX naming rules (bo01wh01, for example). They are
processed as any object. With the TS20XX naming rules, it would not have been necessary to add them
in the Custom Keywords list (see choices 3 and 4 below).

This model needs to animate wheels and rods. So choice 1 is not the right option as wheels and rods are
merged. Choice 4 is the best if you need to add a lot more objects in the model and don’t want to reach
the 256 objects limit.

IA Export: To export the wheels and rods animation, select 1_0100_bo01 and 1_0100_bo02.

Note: display of this informations has changed in BRIAGE but may be found at the same location
with an increased legibility.

Choice 1: IGS export with:


Hierarchy processing: Main object:
enabled 1_0100_frame

----------------- Groups list ----------------- 1_1000_left_fuel_filr 1_0100_wheel03 Group children:


--- 5 groups --- 1_1000_lft_gearbx 1_0100_rod2_l 2_1000_bo01
1_1000_rear_hdrail_1 1_0100_rod2_r
--- Group --- 1_1000_frame (34 items) 1_1000_rear_hdrail_2 1_0100_wheel04 --- Group --- 2_1000_bo01 (1 item)
LOD level 1 / LOD distance 1000 / 1_1000_reardoor Group children: LOD level 2 / LOD distance 1000 /
keyword None 1_1000_rear_hdlgt_1 2_1000_bo02 keyword _bo01
Parent group: None 1_1000_rear_hdlgt_2 Parent group: 1_0100_bo01
Group objects: 1_1000_rear_hdlgt_3 --- Group --- 2_1000_bo02 (1 item) Group objects:
1_1000_frame 1_1000_front_hood LOD level 2 / LOD distance 1000 / 2_1000_bo01
1_1000_cab_interior 1_1000_frnt_hdrail_2 keyword _bo02
1_1000_rear_cplr_pkt 1_1000_frnt_hdrail_3 Parent group: 1_0100_bo02
1_1000_frnt_cplr_pkt 1_1000_frnt_hndrail_1 Group objects:
1_1000_lft_fuel_tnk 1_1000_frt_hdrail_4 2_1000_bo02
1_1000_rt_fuel_tnk 1_1000_rgt_grbox
1_1000_pilot_frnt 1_1000_right_fuel_flr --- Group --- 1_0100_bo01 (5 items)
1_1000_pilot_rear 1_1000_frnt_hdlgt_1 LOD level 1 / LOD distance 0100 /
1_1000_cab 1_1000_frnt_hdlgt_2 keyword _bo01
1_1000_frnt_exh 1_1000_frnt_hdlgt_3 Parent group: None
1_1000_frnt_exh_cvr --- Group --- 1_0100_bo02 (5 items) Group objects:
1_1000_rear_exh LOD level 1 / LOD distance 0100 / 1_0100_bo01
1_1000_rear_exh_cvr keyword _bo02 1_0100_wheel01
1_1000_rear_hood Parent group: None 1_0100_rod1_l
1_1000_hdrail_rear_3 Group objects: 1_0100_rod1_r
1_1000_hndrail_rear_4 1_0100_bo02 1_0100_wheel02

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
52
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Choice 2: IGS export with:


Hierarchy processing: Main object:
disabled 1_0100_frame

------------------ Groups list ----------------- Group objects: 1_1000_frnt_exh_cvr Parent group: 1_1000_rear_hdlgt_1
--- 46 groups --- 1_0100_rod1_r --- Group --- 1_1000_rear_exh (1 item) Group objects:
LOD level 1 / LOD distance 1000 / keyword 1_1000_rear_hdlgt_2
--- Group --- 1_1000_frame (1 item) --- Group --- 1_0100_wheel02 (1 item) None
LOD level 1 / LOD distance 1000 / keyword LOD level 1 / LOD distance 0100 / keyword Parent group: 1_1000_cab --- Group --- 1_1000_rear_hdlgt_3 (1 item)
None None Group objects: LOD level 1 / LOD distance 1000 / keyword
Parent group: None Parent group: 1_0100_bo01 1_1000_rear_exh None
Group objects: Group objects: Parent group: 1_1000_rear_hdlgt_1
1_1000_frame 1_0100_wheel02 --- Group --- 1_1000_rear_exh_cvr (1 item) Group objects:
LOD level 1 / LOD distance 1000 / keyword 1_1000_rear_hdlgt_3
--- Group --- 1_0100_bo02 (1 item) --- Group --- 2_1000_bo01 (1 item) None
LOD level 1 / LOD distance 0100 / keyword LOD level 2 / LOD distance 1000 / keyword Parent group: 1_1000_cab --- Group --- 1_1000_front_hood (1 item)
_bo02 _bo01 Group objects: LOD level 1 / LOD distance 1000 / keyword
Parent group: None Parent group: 1_0100_bo01 1_1000_rear_exh_cvr None
Group objects: Group objects: Parent group: None
1_0100_bo02 2_1000_bo01 --- Group --- 1_1000_rear_hood (1 item) Group objects:
Group children: LOD level 1 / LOD distance 1000 / keyword 1_1000_front_hood
1_0100_wheel03 --- Group --- 1_1000_cab_interior (1 item) None Group children:
1_0100_wheel04 LOD level 1 / LOD distance 1000 / keyword Parent group: None 1_1000_frnt_hdrail_2
2_1000_bo02 None Group objects: 1_1000_frnt_hdrail_3
Parent group: None 1_1000_rear_hood 1_1000_frnt_hndrail_1
--- Group --- 1_0100_wheel03 (1 item) Group objects: Group children: 1_1000_frt_hdrail_4
LOD level 1 / LOD distance 0100 / keyword 1_1000_cab_interior 1_1000_hdrail_rear_3 1_1000_rgt_grbox
None 1_1000_hndrail_rear_4 1_1000_right_fuel_flr
Parent group: 1_0100_bo02 --- Group --- 1_1000_rear_cplr_pkt (1 item) 1_1000_left_fuel_filr
Group objects: LOD level 1 / LOD distance 1000 / keyword 1_1000_lft_gearbx --- Group --- 1_1000_frnt_hdrail_2 (1 item)
1_0100_wheel03 None 1_1000_rear_hdrail_1 LOD level 1 / LOD distance 1000 / keyword
Group children: Parent group: None 1_1000_rear_hdrail_2 None
1_0100_rod2_l Group objects: Parent group: 1_1000_front_hood
1_0100_rod2_r 1_1000_rear_cplr_pkt --- Group --- 1_1000_hdrail_rear_3 (1 item) Group objects:
LOD level 1 / LOD distance 1000 / keyword 1_1000_frnt_hdrail_2
--- Group --- 1_0100_rod2_l (1 item) --- Group --- 1_1000_frnt_cplr_pkt (1 item) None
LOD level 1 / LOD distance 0100 / keyword LOD level 1 / LOD distance 1000 / keyword Parent group: 1_1000_rear_hood --- Group --- 1_1000_frnt_hdrail_3 (1 item)
None None Group objects: LOD level 1 / LOD distance 1000 / keyword
Parent group: 1_0100_wheel03 Parent group: None 1_1000_hdrail_rear_3 None
Group objects: Group objects: Parent group: 1_1000_front_hood
1_0100_rod2_l 1_1000_frnt_cplr_pkt --- Group --- 1_1000_hndrail_rear_4 (1 item) Group objects:
LOD level 1 / LOD distance 1000 / keyword 1_1000_frnt_hdrail_3
--- Group --- 1_0100_rod2_r (1 item) --- Group --- 1_1000_lft_fuel_tnk (1 item) None
LOD level 1 / LOD distance 0100 / keyword LOD level 1 / LOD distance 1000 / keyword Parent group: 1_1000_rear_hood --- Group --- 1_1000_frnt_hndrail_1 (1 item)
None None Group objects: LOD level 1 / LOD distance 1000 / keyword
Parent group: 1_0100_wheel03 Parent group: None 1_1000_hndrail_rear_4 None
Group objects: Group objects: Parent group: 1_1000_front_hood
1_0100_rod2_r 1_1000_lft_fuel_tnk --- Group --- 1_1000_left_fuel_filr (1 item) Group objects:
LOD level 1 / LOD distance 1000 / keyword 1_1000_frnt_hndrail_1
--- Group --- 1_0100_wheel04 (1 item) --- Group --- 1_1000_rt_fuel_tnk (1 item) None
LOD level 1 / LOD distance 0100 / keyword LOD level 1 / LOD distance 1000 / keyword Parent group: 1_1000_rear_hood --- Group --- 1_1000_frt_hdrail_4 (1 item)
None None Group objects: LOD level 1 / LOD distance 1000 / keyword
Parent group: 1_0100_bo02 Parent group: None 1_1000_left_fuel_filr None
Group objects: Group objects: Parent group: 1_1000_front_hood
1_0100_wheel04 1_1000_rt_fuel_tnk --- Group --- 1_1000_lft_gearbx (1 item) Group objects:
LOD level 1 / LOD distance 1000 / keyword 1_1000_frt_hdrail_4
--- Group --- 2_1000_bo02 (1 item) --- Group --- 1_1000_pilot_frnt (1 item) None
LOD level 2 / LOD distance 1000 / keyword LOD level 1 / LOD distance 1000 / keyword Parent group: 1_1000_rear_hood --- Group --- 1_1000_rgt_grbox (1 item)
_bo02 None Group objects: LOD level 1 / LOD distance 1000 / keyword
Parent group: 1_0100_bo02 Parent group: None 1_1000_lft_gearbx None
Group objects: Group objects: Parent group: 1_1000_front_hood
2_1000_bo02 1_1000_pilot_frnt --- Group --- 1_1000_rear_hdrail_1 (1 item) Group objects:
LOD level 1 / LOD distance 1000 / keyword 1_1000_rgt_grbox
--- Group --- 1_0100_bo01 (1 item) --- Group --- 1_1000_pilot_rear (1 item) None
LOD level 1 / LOD distance 0100 / keyword LOD level 1 / LOD distance 1000 / keyword Parent group: 1_1000_rear_hood --- Group --- 1_1000_right_fuel_flr (1 item)
_bo01 None Group objects: LOD level 1 / LOD distance 1000 / keyword
Parent group: None Parent group: None 1_1000_rear_hdrail_1 None
Group objects: Group objects: Parent group: 1_1000_front_hood
1_0100_bo01 1_1000_pilot_rear --- Group --- 1_1000_rear_hdrail_2 (1 item) Group objects:
Group children: LOD level 1 / LOD distance 1000 / keyword 1_1000_right_fuel_flr
1_0100_wheel01 --- Group --- 1_1000_cab (1 item) None
1_0100_wheel02 LOD level 1 / LOD distance 1000 / keyword Parent group: 1_1000_rear_hood --- Group --- 1_1000_frnt_hdlgt_1 (1 item)
2_1000_bo01 None Group objects: LOD level 1 / LOD distance 1000 / keyword
Parent group: None 1_1000_rear_hdrail_2 None
--- Group --- 1_0100_wheel01 (1 item) Group objects: Parent group: None
LOD level 1 / LOD distance 0100 / keyword 1_1000_cab --- Group --- 1_1000_reardoor (1 item) Group objects:
None Group children: LOD level 1 / LOD distance 1000 / keyword 1_1000_frnt_hdlgt_1
Parent group: 1_0100_bo01 1_1000_frnt_exh None Group children:
Group objects: 1_1000_frnt_exh_cvr Parent group: None 1_1000_frnt_hdlgt_2
1_0100_wheel01 1_1000_rear_exh Group objects: 1_1000_frnt_hdlgt_3
Group children: 1_1000_rear_exh_cvr 1_1000_reardoor
1_0100_rod1_l --- Group --- 1_1000_frnt_hdlgt_2 (1 item)
1_0100_rod1_r --- Group --- 1_1000_frnt_exh (1 item) --- Group --- 1_1000_rear_hdlgt_1 (1 item) LOD level 1 / LOD distance 1000 / keyword
LOD level 1 / LOD distance 1000 / keyword LOD level 1 / LOD distance 1000 / keyword None
--- Group --- 1_0100_rod1_l (1 item) None None Parent group: 1_1000_frnt_hdlgt_1
LOD level 1 / LOD distance 0100 / keyword Parent group: 1_1000_cab Parent group: None Group objects:
None Group objects: Group objects: 1_1000_frnt_hdlgt_2
Parent group: 1_0100_wheel01 1_1000_frnt_exh 1_1000_rear_hdlgt_1
Group objects: Group children: --- Group --- 1_1000_frnt_hdlgt_3 (1 item)
1_0100_rod1_l --- Group --- 1_1000_frnt_exh_cvr (1 item) 1_1000_rear_hdlgt_2 LOD level 1 / LOD distance 1000 / keyword
--- Group --- 1_0100_rod1_r (1 item) LOD level 1 / LOD distance 1000 / keyword 1_1000_rear_hdlgt_3 None
LOD level 1 / LOD distance 0100 / keyword None --- Group --- 1_1000_rear_hdlgt_2 (1 item) Parent group: 1_1000_frnt_hdlgt_1
None Parent group: 1_1000_cab LOD level 1 / LOD distance 1000 / keyword Group objects:
Parent group: 1_0100_wheel01 Group objects: None 1_1000_frnt_hdlgt_3

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
53
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Choice 3: IGS export with:


Hierarchy processing: Main object:
disabled 1_0100_frame
Custom Keywords:
frnt 1_0100_rod2_l 1_0100_wheel03
rail 1_0100_rod2_r 1_0100_wheel04
1_0100_rod1_l 1_0100_wheel01
1_0100_rod1_r 1_0100_wheel02
------------------ Groups list ----------------- 2_1000_bo01 1_1000_frnt_hdlgt_3 --- Group --- 1_1000_left_fuel_filr (1 item)
--- 33 groups --- --- Group --- 1_0100_wheel01 (1 item) --- Group --- 1_1000_lft_fuel_tnk (1 item) LOD level 1 / LOD distance 1000 /
LOD level 1 / LOD distance 0100 / LOD level 1 / LOD distance 1000 / keyword None
--- Group --- 1_1000_frame (1 item) keyword 1_0100_wheel01 keyword None Parent group: 1_1000_rear_hood
LOD level 1 / LOD distance 1000 / Parent group: 1_0100_bo01 Parent group: None Group objects:
keyword None Group objects: Group objects: 1_1000_left_fuel_filr
Parent group: None 1_0100_wheel01 1_1000_lft_fuel_tnk
Group objects: Group children: --- Group --- 1_1000_lft_gearbx (1 item)
1_1000_frame 1_0100_rod1_l --- Group --- 1_1000_rt_fuel_tnk (1 item) LOD level 1 / LOD distance 1000 /
1_0100_rod1_r LOD level 1 / LOD distance 1000 / keyword None
--- Group --- 1_0100_bo02 (1 item) keyword None Parent group: 1_1000_rear_hood
LOD level 1 / LOD distance 0100 / --- Group --- 1_0100_rod1_l (1 item) Parent group: None Group objects:
keyword _bo02 LOD level 1 / LOD distance 0100 / Group objects: 1_1000_lft_gearbx
Parent group: None keyword 1_0100_rod1_l 1_1000_rt_fuel_tnk
Group objects: Parent group: 1_0100_wheel01 --- Group --- 1_1000_reardoor (1 item)
1_0100_bo02 Group objects: --- Group --- 1_1000_pilot_rear (1 item) LOD level 1 / LOD distance 1000 /
Group children: 1_0100_rod1_l LOD level 1 / LOD distance 1000 / keyword None
1_0100_wheel03 keyword None Parent group: None
1_0100_wheel04 --- Group --- 1_0100_rod1_r (1 item) Parent group: None Group objects:
2_1000_bo02 LOD level 1 / LOD distance 0100 / Group objects: 1_1000_reardoor
keyword 1_0100_rod1_r 1_1000_pilot_rear
--- Group --- 1_0100_wheel03 (1 item) Parent group: 1_0100_wheel01 --- Group --- 1_1000_rear_hdlgt_1 (1 item)
LOD level 1 / LOD distance 0100 / Group objects: --- Group --- 1_1000_cab (1 item) LOD level 1 / LOD distance 1000 /
keyword 1_0100_wheel03 1_0100_rod1_r LOD level 1 / LOD distance 1000 / keyword None
Parent group: 1_0100_bo02 keyword None Parent group: None
Group objects: --- Group --- 1_0100_wheel02 (1 item) Parent group: None Group objects:
1_0100_wheel03 LOD level 1 / LOD distance 0100 / Group objects: 1_1000_rear_hdlgt_1
Group children: keyword 1_0100_wheel02 1_1000_cab Group children:
1_0100_rod2_l Parent group: 1_0100_bo01 Group children: 1_1000_rear_hdlgt_2
1_0100_rod2_r Group objects: 1_1000_rear_exh 1_1000_rear_hdlgt_3
1_0100_wheel02 1_1000_rear_exh_cvr
--- Group --- 1_0100_rod2_l (1 item) --- Group --- 1_1000_rear_hdlgt_2 (1 item)
LOD level 1 / LOD distance 0100 / --- Group --- 2_1000_bo01 (1 item) --- Group --- 1_1000_rear_exh (1 item) LOD level 1 / LOD distance 1000 /
keyword 1_0100_rod2_l LOD level 2 / LOD distance 1000 / LOD level 1 / LOD distance 1000 / keyword None
Parent group: 1_0100_wheel03 keyword _bo01 keyword None Parent group: 1_1000_rear_hdlgt_1
Group objects: Parent group: 1_0100_bo01 Parent group: 1_1000_cab Group objects:
1_0100_rod2_l Group objects: Group objects: 1_1000_rear_hdlgt_2
2_1000_bo01 1_1000_rear_exh
--- Group --- 1_0100_rod2_r (1 item) --- Group --- 1_1000_rear_hdlgt_3 (1 item)
LOD level 1 / LOD distance 0100 / --- Group --- 1_1000_cab_interior (1 item) --- Group --- 1_1000_rear_exh_cvr (1 item) LOD level 1 / LOD distance 1000 /
keyword 1_0100_rod2_r LOD level 1 / LOD distance 1000 / LOD level 1 / LOD distance 1000 / keyword None
Parent group: 1_0100_wheel03 keyword None keyword None Parent group: 1_1000_rear_hdlgt_1
Group objects: Parent group: None Parent group: 1_1000_cab Group objects:
1_0100_rod2_r Group objects: Group objects: 1_1000_rear_hdlgt_3
1_1000_cab_interior 1_1000_rear_exh_cvr
--- Group --- 1_0100_wheel04 (1 item) --- Group --- 1_1000_front_hood (1 item)
LOD level 1 / LOD distance 0100 / --- Group --- 1_1000_rear_cplr_pkt (1 item) --- Group --- 1_1000_rear_hood (1 item) LOD level 1 / LOD distance 1000 /
keyword 1_0100_wheel04 LOD level 1 / LOD distance 1000 / LOD level 1 / LOD distance 1000 / keyword None
Parent group: 1_0100_bo02 keyword None keyword None Parent group: None
Group objects: Parent group: None Parent group: None Group objects:
1_0100_wheel04 Group objects: Group objects: 1_1000_front_hood
1_1000_rear_cplr_pkt 1_1000_rear_hood Group children:
--- Group --- 2_1000_bo02 (1 item) Group children: 1_1000_rgt_grbox
LOD level 2 / LOD distance 1000 / --- Group --- 1_1000_frnt_cplr_pkt (10 1_1000_hdrail_rear_3 1_1000_right_fuel_flr
keyword _bo02 items) 1_1000_left_fuel_filr
Parent group: 1_0100_bo02 LOD level 1 / LOD distance 1000 / 1_1000_lft_gearbx --- Group --- 1_1000_rgt_grbox (1 item)
Group objects: keyword frnt LOD level 1 / LOD distance 1000 /
2_1000_bo02 Parent group: None --- Group --- 1_1000_hdrail_rear_3 (5 keyword None
Group objects: items) Parent group: 1_1000_front_hood
--- Group --- 1_0100_bo01 (1 item) 1_1000_frnt_cplr_pkt LOD level 1 / LOD distance 1000 / Group objects:
LOD level 1 / LOD distance 0100 / 1_1000_pilot_frnt keyword rail 1_1000_rgt_grbox
keyword _bo01 1_1000_frnt_exh Parent group: 1_1000_rear_hood
Parent group: None 1_1000_frnt_exh_cvr Group objects: --- Group --- 1_1000_right_fuel_flr (1 item)
Group objects: 1_1000_frnt_hdrail_2 1_1000_hdrail_rear_3 LOD level 1 / LOD distance 1000 /
1_0100_bo01 1_1000_frnt_hdrail_3 1_1000_hndrail_rear_4 keyword None
Group children: 1_1000_frnt_hndrail_1 1_1000_rear_hdrail_1 Parent group: 1_1000_front_hood
1_0100_wheel01 1_1000_frnt_hdlgt_1 1_1000_rear_hdrail_2 Group objects:
1_0100_wheel02 1_1000_frnt_hdlgt_2 1_1000_frt_hdrail_4 1_1000_right_fuel_flr

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
54
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Choice 4: IGS export with:


Hierarchy processing: Main object:
enabled 1_0100_frame
Custom Keywords:
frnt 1_0100_rod2_l 1_0100_wheel03
rail 1_0100_rod2_r 1_0100_wheel04
1_0100_rod1_l 1_0100_wheel01
1_0100_rod1_r 1_0100_wheel02
------------------ Groups list ----------------- --- Group --- 1_0100_wheel03 (1 item) LOD level 1 / LOD distance 0100 / 1_0100_wheel02
--- 15 groups --- LOD level 1 / LOD distance 0100 / keyword _bo01
keyword 1_0100_wheel03 Parent group: None --- Group --- 2_1000_bo01 (1 item)
--- Group --- 1_1000_frame (19 items) Parent group: 1_0100_bo02 Group objects: LOD level 2 / LOD distance 1000 /
LOD level 1 / LOD distance 1000 / Group objects: 1_0100_bo01 keyword _bo01
keyword None 1_0100_wheel03 Group children: Parent group: 1_0100_bo01
Parent group: None Group children: 1_0100_wheel01 Group objects:
Group objects: 1_0100_rod2_l 1_0100_wheel02 2_1000_bo01
1_1000_frame 1_0100_rod2_r 2_1000_bo01
1_1000_cab_interior --- Group --- 1_1000_frnt_cplr_pkt (10
1_1000_rear_cplr_pkt --- Group --- 1_0100_rod2_l (1 item) --- Group --- 1_0100_wheel01 (1 item) items)
1_1000_lft_fuel_tnk LOD level 1 / LOD distance 0100 / LOD level 1 / LOD distance 0100 / LOD level 1 / LOD distance 1000 /
1_1000_rt_fuel_tnk keyword 1_0100_rod2_l keyword 1_0100_wheel01 keyword frnt
1_1000_pilot_rear Parent group: 1_0100_wheel03 Parent group: 1_0100_bo01 Parent group: None
1_1000_cab Group objects: Group objects: Group objects:
1_1000_rear_exh 1_0100_rod2_l 1_0100_wheel01 1_1000_frnt_cplr_pkt
1_1000_rear_exh_cvr Group children: 1_1000_pilot_frnt
1_1000_rear_hood --- Group --- 1_0100_rod2_r (1 item) 1_0100_rod1_l 1_1000_frnt_exh
1_1000_left_fuel_filr LOD level 1 / LOD distance 0100 / 1_0100_rod1_r 1_1000_frnt_exh_cvr
1_1000_lft_gearbx keyword 1_0100_rod2_r 1_1000_frnt_hdrail_2
1_1000_reardoor Parent group: 1_0100_wheel03 --- Group --- 1_0100_rod1_l (1 item) 1_1000_frnt_hdrail_3
1_1000_rear_hdlgt_1 Group objects: LOD level 1 / LOD distance 0100 / 1_1000_frnt_hndrail_1
1_1000_rear_hdlgt_2 1_0100_rod2_r keyword 1_0100_rod1_l 1_1000_frnt_hdlgt_1
1_1000_rear_hdlgt_3 Parent group: 1_0100_wheel01 1_1000_frnt_hdlgt_2
1_1000_front_hood --- Group --- 1_0100_wheel04 (1 item) Group objects: 1_1000_frnt_hdlgt_3
1_1000_rgt_grbox LOD level 1 / LOD distance 0100 / 1_0100_rod1_l
1_1000_right_fuel_flr keyword 1_0100_wheel04 --- Group --- 1_1000_hdrail_rear_3 (5
Parent group: 1_0100_bo02 --- Group --- 1_0100_rod1_r (1 item) items)
--- Group --- 1_0100_bo02 (1 item) Group objects: LOD level 1 / LOD distance 0100 / LOD level 1 / LOD distance 1000 /
LOD level 1 / LOD distance 0100 / 1_0100_wheel04 keyword 1_0100_rod1_r keyword rail
keyword _bo02 Parent group: 1_0100_wheel01 Parent group: None
Parent group: None --- Group --- 2_1000_bo02 (1 item) Group objects: Group objects:
Group objects: LOD level 2 / LOD distance 1000 / 1_0100_rod1_r 1_1000_hdrail_rear_3
1_0100_bo02 keyword _bo02 --- Group --- 1_0100_wheel02 (1 item) 1_1000_hndrail_rear_4
Group children: Parent group: 1_0100_bo02 LOD level 1 / LOD distance 0100 / 1_1000_rear_hdrail_1
1_0100_wheel03 Group objects: keyword 1_0100_wheel02 1_1000_rear_hdrail_2
1_0100_wheel04 2_1000_bo02 Parent group: 1_0100_bo01 1_1000_frt_hdrail_4
2_1000_bo02 --- Group --- 1_0100_bo01 (1 item) Group objects:

10.4 TS20XX naming rule check


All objects should follow strict naming conventions.
Each name starts with a single digit representing the LOD level, followed by a 4-digit visible distance between
underscores. After this a logically chosen object name follows and the whole name is limited to a maximum of 31
characters.
From Railworkswiki
Operations are performed after all name modifications have been applied.
The exporter checks the beginning of the name looking for a digit (LOD level), an underscore, 4 digits (visible
distance), an underscore and the name.
If the exporter doesn't find 1 digit, then an underscore, then a number, then an underscore, the name will be
automatically converted to LOD = 1, distance = 1000, followed by the original name. For example, a Blender
object named “MyObject” or "1-0100_MyObject" will be converted as, respectively, “1_1000_MyObject” or
"1_1000_1-0100_MyObject".
Otherwise, a best fit to the number is found. For example:
 1_02_object is converted as 1_0200_object
 1_2_object is converted as 1_2000_object
 2_10000_object is converted as 2_1000_object
Warning messages are written to the log file about misnamed objects which name is converted.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
55
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

10.5 Selection example for IA export

These should be selected at least:


Object Raison for selection
1_0128_panto01_03 Object without parent (no parentage created with Ctrl p). It
has an animation.
1_0128_panto01_02 Object which parent is an armature
1_0128_panto01_CylPart10 Object without parent (no parentage created with Ctrl p)
1_0128_panto01_01 Object without parent (no parentage created with Ctrl p)
1_0128_panto01_01b Object without parent (no parentage created with Ctrl p)
1_0128_panto01_04b Object which parent is an armature
1_0128_panto01_05 Object which parent is an armature

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
56
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

The other *panto01* objects like 1_0128_panto01_04 don't need to be selected because they are
children of already selected objects.

Other objects not shown here (little additional parts) don't need to be selected either because they are
children of *panto01*. They will be present in the exported animation.

10.6 Dynamic text

Please refer to the excellent tutorial on:


https://www.christrains.com/en/ts_faq_autonumbering.html (The paragraph about "Multi/Sub-Object
material" is specific to 3DSMax.)

Please note that it may be necessary to import again the equipment in a scenario so that the game takes
into account changes in xml files or in the Blender model.

In addition to this tutorial, here is how 3 numbering objects with 3 digits were implemented in Blender:

They are respectively named 1_0050_primarydigits_3 (for the number on the right of the image),
1_0050_primarydigits_3.001 (for the number on the opposite side) and 1_0050_primarydigits_3.002 (for the front
number).

The white rectangle shows the main bicolour texture and the alpha alpha texture for digit 3 included in
a 64 x 128 pixels DDS file. The faces for the side grey number crop the grey area and the faces for the
front white number crops the white area.

The text is set here to “467”.

The 1_0050_primarydigits_3 object (1_yyyy_primarydigits_ followed by the number of digits = 3) is a plane divided
into 3 faces. The other 1_0050_primarydigits_3.00x objects are created by duplication.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
57
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Each face is assigned a material: primarynumber_0 (units), primarynumber_1 (tens digit) ou primarynumber_2
(hundreds digit).

In detail, each of these 3 materials is defined by (N is set to 0, 1, 2, …, 29, …, 99, and perhaps even
higher):

 Material name: primarynumber_N

 Image in UV-editor : decal_primarynumber_N.dds

 Selected shader: TrainDecal.fx

 Material first texture slot: texture named decal_primarynumber_N associated in the UV-editor to image
decal_primarynumber_N.dds and associated to texture file decal_primarynumber_N.dds.

File decal_primarynumber_0.dds is created by copying and renaming number_1.dds (thus digit 1 is


displayed in the above screenshot. This digit will be replaced in game by the corresponding value read
in the csv file).

File decal_primarynumber_1.dds is created by copying and renaming number_2.dds (thus digit 2 is


displayed in the above screenshot).

File decal_primarynumber_2.dds is created by copying and renaming number_3.dds (thus digit 3 is


displayed in the above screenshot).

For example for primarynumber_0:

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
58
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Material first texture slot:

Material second texture slot (in the UV-editor, the image is decal_primarynumber_0.dds)

Nota: Be careful when creating NamedTextureSets for your dynamic text. TextureName field of each
entry must contain 1 ASCII symbol, else your text won't display at all.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
59
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

10.7 Example with TrainUprightViewFacingFlora.fx

Tree texture in Material "MatSimpletree" with “Transparency” enabled in IGS option panel:

(Texture file provided by cilldroichid)

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
60
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Texture for the selection cube (Material "MatInvisible"). An invisible object must be added otherwise it
will be impossible to select the object once placed in a scenario. There is no special care to take to
texture this item because it will not be visible.

Result:

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
61
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

10.8 Texturing lexical notes

10.8.1 3 components maps (RGB)


Diffuse map (Diff or albedo) contains colour informations.

Normal map (or just Normal) holds informations about fake details. i.e. , details to heavy and too little
to be included in final 3D work are printed to a normal map to spare performances. This can be useful
for vents, screws, metal panels, hinges, windows, etc...

Cubic map (,Cubemap or Skybox) is a special texture type used to fake reflections on old rendering
engines. It contains 6 images mapped inside a virtual cube. They should look like the real mirrored
environment around your object for more realism. These can be contained in DDS files; use GIMP or Ps
to be able to manipulate them.

10.8.2 1 component maps (greyscale)


Transparency is holding opacity informations, it is common to find it nicknamed as Alpha because it is
often stored in Alpha channel of a diffuse texture. Its value blends current texture with what stands
behind.

Specular map (or Spec) specifies specular intensity (“specular power” in TS: see 6.2) at given places of
the texture . This is used to fake a particular real life material light properties, making it shiny or dull.

Gloss map (or simply Gloss) specifies specular size (“Phong” size in TS: see 6.3, Hardness in Blender,
“tightness”) at given places of the texture . This is used to fake a particular real life material light
properties, making it glossy or diffuse.

Environment map (or Envmap) holds reflectiveness of a material making it more or less mirror-like.

Light map (LM), which save shadows from all light sources, and Ambient occlusion (AO) map, which save
shadows from bouncing environmental light (in more or less fake way), can be considered the same in
TS as they are treated the same way. Both contain fixed shadows which are altered by dynamic TS light
sources and occlusion volumes. However, you can mix them to your diffuse maps or use them as stencil
shadows (e.g. with SubtractATexDiff) to make them unalterable by game engine.

Emissive map specifies which part of a material emits light and in which amount. This can be used to
make glowing effects or to cut off a light build into a wall texture.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
62
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Greyscale maps sometimes need to be cast to RGB components (just copy values to all channels) when
TS needs it.

10.8.3 Palettisation
This refers to a semi-random way of generating variations for diffuse channels in TS.
Take a look at this document:
'TS directory'/dev/Docs/TS2014Tech_P1.pdf, p19, 6. Palettisation

You may also see and try using the provided PalletisedCar.blend file (Thanks to Ash from UKTS) and
it’s associated blueprints

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
63
BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter

Maintainance and contact infos

Last modification:
> Julian MERLE-REMOND - 19:22, 30/01/20

Document maintainer coordinates :

Name: Julian MERLE-REMOND


e-mail : [email protected]

Made with love, dedication and boredom by your servant Juju49.

Total time elapsed on this document: 07:55:48

Documentation - EN - v2.5.786 - Blender 2.7x BRIAGE v251 - EN.odt

If you want to translate this manual or BRIAGE interface in another language: please contact document
maintainer for *.odt source files and/or to include your work in the main BRIAGE distribution.

BRIAGE User Manual - BlendeR Intermediate Animation and Geometry Exporter


for Blender 2.7x and Train Simulator 20xx

Documentation - EN - v2.5.786
64

You might also like