|
今儿空闲,接着上次写,这回分享一下xml脚本文件的简单结构,了解了这个,估计大家就知道建立简单模型的方法了。xml文件标记了一些程序运行需要的信息,它本身不会去执行,它的执行方式是被调用。xml为程序增添了扩展性,比如我们有时会在xml文件里调节游戏手柄的按键,这样就使程序更加灵活。我本人比较推崇在程序中使用xml文件,虽然至今还未真正实践过,呵呵。
仍以f18为例,首先说f18-set.xml,FlightGear在导入模型的时候会首先找这个文件,因为该脚本里定义了模型文件的位置及其它相关信息,打开:
首先是:
<description>F-18 Hornet Royal Canadian Air Force</description>
<author>Fabrice Kauffmann</author>
<status>Early production</status>
<flight-model>jsb</flight-model>
<aero>f18</aero>
从英文标记描述可看出这部分定义了一些基本信息,其中最重要的是<flight-model>jsb</flight-model>,因为此句定义了气动模型为“jsb”。
接下来:<splash-texture>Aircraft/f18/f18-splash.rgb</splash-texture>
飞机贴图文件位置
<path>Aircraft/f18/f18-sound.xml</path>
声音控制脚本位置,f18-sound.xml里面定义了声音文件位置,格式为“.wav”
<path>Aircraft/f18/Models/f18.xml</path>
模型控制脚本位置,待会儿会具体说f18.xml文件
<path>Aircraft/f18/Panels/f18-2d-panel.xml</path>
面板(即机舱视角)控制脚本,里面主要定义了贴图文件位置,这些贴图文件是在建模时贴上去的
<path n="1">Aircraft/f18/f18-hud.xml</path>
飞机HUD文件
这些只是最简单的配置,主要是了解xml的作用,还有很多实现其它功能复杂的配置,包括与Nasal的配合等。因本人才疏学浅也不是很了解编写方法和作用,实际上只是FG为这些标记预留了处理接口而已。
下面说位于Models文件夹下的f18.xml,(这里要声明一下:与Models同级目录下也有一个f18.xml脚本,里面定义的内容很复杂,所以还请牛人指教小弟一下,该文件不可缺)首先看里面的内容,以这样一部分结构为例:
-<animation>
<type>rotate</type>
<object-name>RudderLeft</object-name>
<property>surface-positions/rudder-pos-norm</property>
<factor>30</factor>
-<axis>
<x1-m>4.46901</x1-m>
<y1-m>-1.03207</y1-m>
<z1-m>0.670875</z1-m>
<x2-m>4.84972</x2-m>
<y2-m>-1.39064</y2-m>
<z2-m>1.71914</z2-m>
</axis>
</animation>
对象名为:RudderLeft(<object-name>RudderLeft</object-name> ,该句定义),还记得我说过建模时飞机模型的各个对象名不可以随便取吧,就是因为在这个脚本里需要引用,脚本里定义的名称为RudderLeft,则模型里面的“左舵角”名称也应为RudderLeft,否则初始化的时候将因找不到该对象而报错。<property>surface-positions/rudder-pos-norm</property> 定义了属性的节点;后面的参数因机型的不同而不同,具体值大家需要查资料了。
该脚本的其它内容在结构功能上与此相似,各对象名称需要与模型相对应。
当然,脚本里不仅仅只定义了这些功能,要想了解还需深入研究啊。
不过,了解了以上这些,构建一个不精准的模型还是可以的,FG模型文件的构建步骤也差不多是这样。
以上是本人研究过的东西,还希望这方面的前辈帮助指正,交流。
|
|