Flightger翻译

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

这mini-HOWTO解释了如何在FlightGear中添加3d飞机模型FlightGear,以及这些模型如何动画和地位。不需要c++编程,但是用户需要FlightGear的一些知识产权制度和XML标记,并将需要了解FlightGear使用坐标系统的模型:.在米的距离.角在度.x轴纵向运行,向后面.y轴横向运行,向右边.z轴向上运行.标题是在z轴旋转,正面是顺时针从上面.音高是一个绕y轴旋转,正面是顺时针从左边.辊绕x轴旋转,正面是顺时针从背后看到的关于HThismini-HOWTO包含三个部分:1、加载模型2、重新定位模型3、动画模型1、加载模型通过OpenSceneGraphFlightGear支持许多不同的3d文件格式,包括VRML2AC3D,DXF,和许多其他格式。性能/sim/模型/路径在主FlightGear属性树控制模型将被加载;它需要从FG_ROOT得到一个字符串值给模型的相对路径(基地的根包,如/usr/local/lib/FlightGear或C:\FlightGear\)。加载一个新模型的最简单方法是在启动时设置的属性——道具:命令行选项;例如,使用3d飞机模型,您已经安装了$FG_ROOT/Models/my-cessna.wrl。wrl,您可以调用FlightGear这样(在类unix系统):fgfs--prop:/sim/model/path=Models/my-cessna.wrl(注:一般来说任何使用的纹理模型必须出现在相同的目录中。如果my-cessna。wrl使用纹理cessna01。rgb和cessna02。rgb,您应该安装这些纹理$FG_ROOT/Models/。可以指定一个能找到指定纹理的位置的路径(相对于模型路径))。当您想要设置一个3d模型永久作为默认的飞机而不是在命令行中指定它,您需要编辑一个飞机设置文件。在FG_ROOT美元/飞机/目录,设置一系列文件结束。xml,c172-set等。xml,dc3-yasim-set。xml和beech99-uiuc-set.xml。当你开始FlightGear——飞机选项,它读取这些文件中的一个的属性从一个;例如:fgfs--aircraft=dc3-yasim从$FG_ROOT/Aircraft/dc3-yasim-set.xml中加载属性到主FlightGear属性树。这些文件在同一个XML属性列表格式$FG_ROOT/preferences.xml和FlightGear保存文件。可能有很多XML文件与不同的启动条件、声音、面板、3d模型,等等任何一个飞机类型,所以你最好复制现有的一个,重命名,然后改变在路径元素模型sim卡里面的值:PropertyListsimmodelpathModels/my-cessna.wrl/pathtexture-path./Textures/texture-path/model/sim/PropertyList到目前为止,所有的例子有/sim/模型/路径属性直接指向3d模型文件(模型/my-cessna.wrl);然而,如果您希望能够重新定位或动画模型,您需要指向一个中间XML文件,然后将重新定位和动画为XML文件的信息。这是一个简单的三维模型示例包装文件,没有重新定位或动画信息:PropertyListpathmy-cessna.wrl/pathtexture-path./Textures/texture-path/PropertyList像the-set.xml文件,这个文件是xml属性列表的格式,但它的属性不是添加到主FlightGear属性树,他们只用在加载模型。以下部分将解释如何重新定位和动画信息添加到文件,现在,唯一的特性是路径:它提供了实际的3d文件的相对路径从XML包装器文件(不是从FG_ROOT!)。通常,你应该把包装文件在3d文件相同的目录中,然后有/sim/模型/路径点的包装文件,或者在命令行上fgfs--prop:/sim/model/path=Models/my-cessna.xml或在the-set.xm文件:PropertyListsimmodelpathModels/my-cessna.xml/path/model/sim/PropertyList2、重新定位模型通常,飞机模型不是专门为FlightGear确定位置或方位正确的;例如,它可能是离地面太远,机首可能会指向一边,甚至直线上升。在XML包装器文件(不是主FlightGear属性树),有六个属性允许您调整模型的默认位置和姿态:/offsets/x-mThedistancetorepositionthemodelalongthex-axis./offsets/y-mThedistancetorepositionthemodelalongthey-axis./offsets/z-mThedistancetorepositionthemodelalongthez-axis./offsets/heading-degTheanglebywhichtorotatethemodelaroundthez-axis./offsets/roll-degTheanglebywhichtorotatethemodelaroundthex-axis./offsets/pitch-degTheanglebywhichtorotatethemodelaroundthey-axis.例如,如果您想要使用my-cessna的3d模型my-cessna.wrl。但是发现机首指向正确的标准和车轮离地1.5米,你可以调整它的XML包装器文件如下:PropertyListpathModels/my-cessna.xml/pathoffsetsheading-deg270/heading-degz-m-1.5/z-m/offsets/PropertyList它通常需要一些实验来获得正确定位模型。3、动画模型现在到了有趣的部分。FlightGear的,您可以通过有部分转动或旋转的响应性变化的动画模式:例如,推进器可以旋转在发动机上的电梯能上下移动与控制器。没有固定的限制在什么部位可以是动态的:唯一的要求是,该部分被命名为3D模型文件,并且有一个在主树的特性,你可以用它来获取定位信息的主树的属性。目前,有几种类型的动画确认:1.none2.billboard3.rotate4.scale5.blend6.select7.spin8.timed9.translate10.texrotate11.textranslate12.textmultiple13.material14.range15.alpha-test16.noshadow17.dist-scale18.flash通常,将使用的旋转,旋转的组合,并转换成主控制表面,用于大多数标准构型飞机动画。自旋围绕轴线转动所述物体与已知的旋转速度(未担心的确切位置),并以一个准确的位置旋转围绕轴线转动所述物体。每动画显示的动画元素内,并包含一个类型属性和至少一个对象的名称属性:animationtyperotate/typeobject-nameRudder/object-name/animation它是可以省略类型参数。在这种情况下,类型是无并且动画仅在那里下一个名称组自用物品,可以在该文件中位于更远另一个动画中使用。在动画对象分组,具有一个类型或没有,具有重排根目录在对象名称指定的对象的影响。规则是该组被插入在第一个对象和它的原对象之间,然后随后的对象从它们的起源中移除,并添加到新的组中。没有动画,也方便在一种模式重新组织的对象。当对象是translucents,他们应该被抽回到前面以看到背后穿过对象的世界。但是绘制顺序是经常出现在模型文件的顺序,这是很难控制的建模器内。这种方式,可以忽略在建模的顺序,并强制重排序在装载时。顺序是当然的外观动画内的对象名条款的顺序。请注意,这可以通过另一后续动画毁了(最后的优先级高于第一)。对象名称必须与在三维文件中所使用的对象名称匹配(包括案例)。你可以包含一个以上的对象名称,将相同的转换应用于多个对象,假设它们在同一行中旋转:animationtyperotate/typeobject-nameLeftElevator/object-nameobject-nameRightElevator/object-name/animation它是可以省略类型参数。在这种情况下,类型为null和动画仅在那里下一个名称组自用物品,可以在该文件中位于更远另一个动画中使用。在动画对象分组,具有一个类型或没有,具有重排根目录在对象名称指定的对象的影响的规则是,该组插入第一对象及其原对象之间,然后随后的对象与它们的原始组移除并添加到新组。由此产生的分支是坚实的,当涉及到计算高度超过地形(HOT)。当对象是有模拟的光,或另一非固体的人工制品的光束,它可以是有趣的,忽略它用于碰撞检测。它是通过enable-hottype=booleanfalse/enable-hot完成动画中的条款。默认情况下,启用热被设置为true,可以降落在建筑物的屋顶上。每个动画必须完全从主FlightGear属性树一属性关联(记得在包装文件的属性不是树的主要部分),使用属性提供属性名称:animationtyperotate/typeobject-nameRudder/object-namepropertycontrols/rudder/property/animation这个例子旋转的方向舵/控制/舵的属性(或至少,它会在我们指定的中心和轴的旋转);然而,/控制/方向舵是标准化从-1至1,我们可能要旋转舵比,我们需要使用的因素属性做缩放。例如,如果飞机上的舵在每个方向上旋转18度,我们会用18个因子来缩放舵的位置,从-18度到18度:animationtyperotate/typeobject-nameRudder/object-namepropertycontrols/rudder/propertyfactor18/factor/animation如果你想扭转方向舵运动,你会使用一个18个因素。还有一个偏移度属性,可以从非中心点旋转是有用的。例如,让我们说,你想让舵开始1%到左边,而不是死的中心,你可以指定这样的:animationtyperotate/typeobject-nameRudder/object-namepropertycontrols/rudder/propertyoffset-deg-0.01/offset-degfactor18/factor/animation该偏移量是在该因数之后应用的。最后,有最小和最大特性,可以限制旋转量度,如在此(很复杂的)例如为塞斯纳310起落架:animationtyperotate/typeobject-nameNoseWheel/object-namepropertygear/gear[0]/position-norm/propertyfactor120/factoroffset-deg-1/offset-degmin-90/minmax0/maxcenterx-m-2.28/x-my-m0.0/y-mz-m-0.65/z-m/centeraxisx0/xy1/yz0/z/axis/animation在这个例子中,齿轮的位置(从0完全收回到1,完全扩展)乘以一个因子为120和一个偏移量为1,然后夹紧到0和90之

1 / 45
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功