Livery over MP: Difference between revisions
m (→s76c.xml) |
mNo edit summary |
||
Line 3: | Line 3: | ||
On this page we describe how you make use of a script to get a '''livery selection dialog''' for a [[Aircraft|plane]] in [[FlightGear]]. To get new liveries into [[FlightGear CVS]], you need to have them availabe with this script. | On this page we describe how you make use of a script to get a '''livery selection dialog''' for a [[Aircraft|plane]] in [[FlightGear]]. To get new liveries into [[FlightGear CVS]], you need to have them availabe with this script. | ||
The examples are based on the [[ | The examples are based on the [[Robin DR400]]. | ||
==Files== | ==Files== | ||
There are a few files we need to make (or edit), namely: | There are a few files we need to make (or edit), namely: | ||
* <tt> | * <tt>dr400-set.xml</tt> | ||
* <tt>Models/ | * <tt>Models/dr400.xml</tt> | ||
* <tt>Nasal/ | * <tt>Nasal/liveries.nas</tt> | ||
We also have to make a new directory to store our liveries in. Let's make it <tt>Aircraft/ | We also have to make a new directory to store our liveries in. Let's make it <tt>Aircraft/DR400/Models/Liveries</tt>. | ||
===Models/Liveries=== | ===Models/Liveries=== | ||
Line 21: | Line 21: | ||
<model> | <model> | ||
<livery> | <livery> | ||
<name type="string"> | <name type="string">Default</name> | ||
< | <texture>texture.rgb</texture> | ||
</livery> | </livery> | ||
</model> | </model> | ||
Line 29: | Line 28: | ||
</PropertyList> | </PropertyList> | ||
=== | ===dr400.xml=== | ||
The first part is related to the nasal script. <tt>("Aircraft/ | The first part is related to the nasal script. <tt>("Aircraft/DR400/Models/Liveries", 10);</tt> points FlightGear to the directory where we store our liveries. This is a different directory for every plane, but there should be only one folder for one plane, containing all the liveries for that plane. | ||
<nasal> | <nasal> | ||
<load> | <load> | ||
var livery_update = aircraft.livery_update.new("Aircraft/ | var livery_update = aircraft.livery_update.new("Aircraft/DR400/Models/Liveries", 10); | ||
</load><nowiki> | </load><nowiki> | ||
</nowiki> | </nowiki> | ||
Line 61: | Line 60: | ||
<property-base>sim/model/livery</property-base> | <property-base>sim/model/livery</property-base> | ||
<texture-prop>texture</texture-prop> | <texture-prop>texture</texture-prop> | ||
<texture> | <texture>texture.rgb</texture> | ||
</animation> | </animation> | ||
=== | ===liveries.nas=== | ||
The only thing you might change in the nasal file is the directory of the liveries. | The only thing you might change in the nasal file is the directory of the liveries. | ||
aircraft.livery.init("Aircraft/ | aircraft.livery.init("Aircraft/DR400/Models/Liveries"); | ||
===s76c-set.xml=== | ===s76c-set.xml=== | ||
<model> | <model> | ||
<path>Aircraft/ | <path>Aircraft/DR400/models/dr400.xml</path> | ||
< | <livery> | ||
<file type="string">default</file> | |||
</livery> | |||
</model> | </model> | ||
Line 80: | Line 81: | ||
<default> | <default> | ||
<menu n="10"> | <menu n="10"> | ||
<label> | <label>Robin DR 400</label> | ||
<enabled type="bool">true</enabled> | <enabled type="bool">true</enabled> | ||
<item> | <item> |
Revision as of 12:17, 12 October 2008
On this page we describe how you make use of a script to get a livery selection dialog for a plane in FlightGear. To get new liveries into FlightGear CVS, you need to have them availabe with this script.
The examples are based on the Robin DR400.
Files
There are a few files we need to make (or edit), namely:
- dr400-set.xml
- Models/dr400.xml
- Nasal/liveries.nas
We also have to make a new directory to store our liveries in. Let's make it Aircraft/DR400/Models/Liveries.
Models/Liveries
For every livery we need to make a file. Let's say we got a Rescue livery, we than need to make a file called Rescue.xml into our Models/Liveries directory.
<?xml version="1.0"?> <PropertyList> <sim> <model> <livery> <name type="string">Default</name> <texture>texture.rgb</texture> </livery> </model> </sim> </PropertyList>
dr400.xml
The first part is related to the nasal script. ("Aircraft/DR400/Models/Liveries", 10); points FlightGear to the directory where we store our liveries. This is a different directory for every plane, but there should be only one folder for one plane, containing all the liveries for that plane.
<nasal> <load> var livery_update = aircraft.livery_update.new("Aircraft/DR400/Models/Liveries", 10); </load> <unload> livery_update.stop(); </unload> </nasal>
The second part is very important and probably the hardest of all. We need to set which parts of the model should change when you select a new livery. To find the object-names, you could make use of software like Blender or AC3D. The <texture>S76livery.rgb</texture> part points FlightGear to the livery that should be shown on startup.
Warning: be sure you don't have a slash (/) in front of sim/model/livery in the <property-base> tag! Otherwise, all planes will get the same livery!
<animation> <type>material</type> <object-name>LHgeardoor</object-name> <object-name>RHgeardoor</object-name> <object-name>S76C</object-name> <object-name>RF.door</object-name> <object-name>LF.door</object-name> <object-name>Rr.Door</object-name> <object-name>Lr.Door</object-name> <object-name>RHbaggage</object-name> <object-name>LHbaggage</object-name> <object-name>RHfrtgeardoor</object-name> <object-name>LHfrtgeardoor</object-name> <property-base>sim/model/livery</property-base> <texture-prop>texture</texture-prop> <texture>texture.rgb</texture> </animation>
liveries.nas
The only thing you might change in the nasal file is the directory of the liveries.
aircraft.livery.init("Aircraft/DR400/Models/Liveries");
s76c-set.xml
<model> <path>Aircraft/DR400/models/dr400.xml</path> <livery> <file type="string">default</file> </livery> </model>
To make a nice button in the menubar we need to add the following code, just above the </sim> tag.
<menubar> <default> <menu n="10"> <label>Robin DR 400</label> <enabled type="bool">true</enabled> <item> <label>Select Livery</label> <binding> <command>nasal</command> <script>aircraft.livery.dialog.toggle()</script> </binding> </item> </menu> </default> </menubar>