

なんて簡単な! これは使える
Liveriesは、まるで服を着替えるようにクリック一つで機体の塗装を変えることができて便利この上ないわけですが、その際同時に装備の異なるバリエーションもなぜか選択できる機体があって、どうしてそういうことができるのかが不思議でした。
私自身にとっては積年の課題が、今回MD902に出会うことで解決しました。
素人が、ただ闇雲に模倣し我流で強引なプログラムをつくり、なぜそうなるかの理解を深めることもせずにきましたから、結構簡単なことでも考えつかぬことが多いのではないかと思います。今回の問題もその端的な例といえます。
わかったのは、基本的に次のようなもの。
オブジェクトを表示をさせるかさせないかは条件によることを示す<select>文を使い、条件は単純に使うか使わないかのどちらかをtrueかfalseでLiveriesのxmlファイル中に記述することにより、塗装だけでなく装備も異なるバリエーションがたやすく選べる、という簡単なものです。
確認した実例を記録しておきます。
※オリジナルのOH-6DAは、Liveriesに対応していません。Liveriesに対応させたことを前提にします。
■OH-6DAにMD902からもってきたサーチライトを装着したものしないものを設ける例
●3Dモデル設定ファイル(Modeles/OH-6DA.xml)
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<path>OH-6DA.ac</path>
<nasal>
<load>
var livery_update = aircraft.livery_update.new("Aircraft/OH-6DA/Models/Liveries", 10);
</load>
<unload>
livery_update.stop();
</unload>
</nasal>
・
・
・
(略)
・
・
・
<!-- searchlight -->
<model>
<name>searchlight_SX16_Nose</name>
<path>Aircraft/md900/Models/SearchLight/searchlight_SX16.xml</path>
<offsets>
<x-m> -1.800 </x-m>
<y-m> 0.0 </y-m>
<z-m> -1.2 </z-m>
<pitch-deg>0</pitch-deg>
</offsets>
</model>
<animation>
<type>select</type>
<object-name>searchlight_SX16_Nose</object-name>
<condition>
<property>sim/model/OH-6DA/searchlight_SX16_Nose</property>
</condition>
</animation>
・
・
(同様にして他にも装備を加える記述を書くとよいでしょう)
・
・
</PropertyList>
下線部分が示すように、ここではすでにMD902が存在し、そこへファイルを読みに行っています。別途MD902からサーチライトに関するファイルを取り込んできてもいいかと思います。
●装着する場合のLiveriesのxmlファイル(Modeles/Liveries/○○○.xml)
<?xml version="1.0"?>
<PropertyList>
<sim>
<model>
<livery>
<name type="string">lightyellow-belt</name>
<texture>lightyellow-colorbelt.png</texture>
・
・
・
(略)
・
・
・
</livery>
<OH-6DA>
<searchlight_SX16_Nose type="bool">true</searchlight_SX16_Nose>
・
・
(同様にして他の装備についてもtrue、falseを記します)
・
・
</OH-6DA>
</model>
</sim>
</PropertyList>
下線部分がtrueの場合はこれを装着、falseの場合は装着しません。
■OH-6DAの3Dモデルにロケット弾ポッドも含ませている場合の例
●3Dモデル設定ファイル(Modeles/OH-6DA.xml)
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<path>OH-6DA.ac</path>
<nasal>
<load>
・
・
・
(略)
・
・
・
<animation>
<type>select</type>
<object-name>head</object-name> ↓以下ロケット弾ポッドのオブジェクト名
<object-name>body</object-name>
<object-name>handle-r</object-name>
<object-name>handle-l</object-name>
<object-name>plane</object-name> ↑
<condition>
<property>sim/model/OH-6DA/B-8M1</property>
</condition>
</animation>
・
・
(他にも装備を加える記述を書くとよいでしょう)
・
・
</PropertyList>
本体acファイルに一体化されていますのでシンプルです。
装備については、本体acファイルと一体のもの、別acファイルになっているもの、混在が可能です。
●装着する場合のLiveriesのxmlファイル(Modeles/Liveries/○○○.xml)
<?xml version="1.0"?>
<PropertyList>
<sim>
<model>
<livery>
<name type="string">lightyellow-belt</name>
<texture>lightyellow-colorbelt.png</texture>
・
・
・
(略)
・
・
・
</livery>
<OH-6DA>
<B-8M1 type="bool">true</B-8M1>
<searchlight_SX16_Nose type="bool">false</searchlight_SX16_Nose>
・
・
(同様にして他の装備についてもtrue、falseを記します)
・
・
</OH-6DA>
</model>
</sim>
</PropertyList>
使わない装備については、falseを記入します。
こんな簡単なことだったとは。知らないということは恐ろしいことです。
単に装着するだけですから、重さの違いも反映されるわけではありませんが、これなら機体の様々なバリエーションが簡単に再現できるというものです。



