怀着一颗未知的心,终于耗时一周打开了Prepar3D的大门,总结起来也并没有那么的复杂,但是需要配置的步骤可能会稍微繁琐。为防止以后遗忘,服务他人也方便自己,还是写几篇关于开发过程的博客总结吧。本篇主要总结准对使用Prepar3D开发仿真模型的总结,主要的部分为Prepar3D介绍与配置、飞机模型介绍与配置、以及SDK的实践。
Prepar3D介绍与配置
Prepar3D
Prepar3D是一个可视化模拟平台,允许用户创建跨航空、海事和地面领域的训练场景。Prepar3D 通过真实环境让用户参与到沉浸式培训中。Prepar3D软件由洛克希德·马丁(Lockheed Martin)公司开发,该公司是世界上最大的国防承包商。目前版本以更新至V5.2,Prepar3D在软件安装的内部默认安装了众多型号飞机、轮船等的仿真模型,除此模型之外,Prepar3D支持二次开发,也就是说您可以开发定义属于你自己的飞机仿真模型,开发的模型还可以与外部硬件进行通讯,从而让用户达到沉浸式学习的效果。
配置与准备
在进行二次开发之前,请先准备以下资源和软件:
Prepar3D软件已成功安装并破解,如需软件资源可私信联系我准备Prear3D的SDK包,SDK包的主要文件如下,主要包含了一些二次开发的示例代码和工具插件 Prepar3D?Learning Center,P3D的教程中心,也是最权威最全面的参照指南,该文件在默认的安装目录中可以找到 Visual Studio软件已安装,并且对已经掌握软件的使用方法,同时具备一定的C++ 开发经验,如需软件请私信作者Photoshop 软件已安装,并且对PS掌握一些基本的操作,例如形状的绘制、图层的编辑等等 准备好以上资源之后,接下来就是先要对上述的软件进行一些配置和了解,对于P3D需要打开错误报告选项,方法为选择Options->Application->勾选Enable Content Error Reporting 勾选完成之后,在每次软件加载模型过程中,如果编写或者配置的模型有问题,那么就会将具体的错误生成一个TXT文档,输出到Prepar3D v5 Files文件夹中,根据该文档就可以清晰地定位到错误的原因,相当于在编程过程中的二次编译。该文件夹的路径为:C:\Users\zsk\Documents\Prepar3D v5 Files,需要注意的一点就是,只有加载的模型出现问题才会将错误的Content Error Reporting.txt文件输出到该文件夹,如果该文件夹为空,则代表加载的模型正确,也可以说明二次开发的模型在语法和变量函数上没有问题。
飞机模型介绍与配置
模型文件
飞机的模型文件主要为两大类,一类是仿真模型的基础文件,该文件存放在SimObjects文件夹下;另外一类gau文件,存放在gauges文件目录下,可以理解成基础文件的扩展文件,在gau文件中实现了具体的功能和逻辑,二次开发的主要任务也就是生成对应的gau文件。两类文件相互结合,基础文件为gau文件提供框架,gau文件实现框架上的逻辑交互和动画展示。 在默认的安装目录下,P3D为用户提供了多种类型多种型号的仿真模型。以Mooney_Bravo型号的仿真模型为例,说明上述相应的两类文件。 Mooney_Bravo基础模型: 该文件对应的路径如上图中所标记。主要的文件的含义如下:
model:模型文件,该文件夹下存放着主要的Simulink仿真模型文件panel:面板文件飞机上主要的面板都放在此文件夹下,该文件下还有一个panel.cfg(稍后会详细介绍)的配置文件,用于配置这些面板的属性sound:声音文件,模型中例如警告的声音,发动机的声音等一些音频文件都放在这里】texture:涂装文件,包含了飞机的外观设计,和涂装的颜色等等aircraft.cfg:整个飞机模型的配置文件,包含了飞机的各项详细参数,后面将详细介绍.air/.htm文件暂时不用管 gau文件: 除了上述的框架之外,模型还需要gau文件的支持,如标红框的三项为对应飞机模型的gauges文件,该文件是通过Visual Studio C++编程输出的dll文件,具有很好的保密性。在框架的panel.cfg文件中就需要与该dll文件有交互。 如果我们想自己二次开发一架飞机仿真模型,如何添加到P3D中呢,我们可以通过将该飞机模型的基础模型文件和gauges文件打包成一个文件夹放在目录C:\Users\zsk\Documents\Prepar3D v5 Add-ons下,P3D在运行时会自动加载里面的模型。
panel.cfg
panel.cfg文件是面板的配置文件,在P3D的模型中,如果你想显示你编写的面板或者交互开关,必须要在此配置文件夹下进行配置。该文件大致的格式如下: ![image.png](https://img-blog.csdnimg.cn/img_convert/ace7c6684864526f3136d9a5a467e2f7.png)
[Window Titles]:包含面板的种类,其命名规则为:WindowXX={PanelName},XX代表面板的序 号,注意在命名序号中要从0开始,同时{PanelName}不可相同。[Windows XX]: 就是[Window Titles]中WindowXX的详细定义,在该项目中,可以定义面板的背景,面板的相关属性。除此之外,我们想要显示的仪表或者开关就是添加到该项目下,才可以在P3D运行时展示出来,具体的添加格式为:gauge00=Mooney_Bravo!Airspeed, 13, 10, 158, 158 其中Mooney_Bravo为生成dll(gau)文件的名称,Airspeed为在项目中定义仪表的名称,和程序中GAUGE_NAME相同,后面的四项分别代表仪表的X Y W H值。
#define GAUGE_NAME "Attitude"
#define GAUGEHDR_VAR_NAME gaugehdr_attitude
#define GAUGE_W 100
项目中定义的一些属性在此就不做过多的介绍,具体可以参考帮助指南,需要注意就是ident后面的数值每个Windows不能相同。
[VcockpitXX]:我理解的是添加3D的仪表,现在还没有涉及到,后面涉及到在做介绍。[Color]、[Default View]、[VIEWS]:为定义的一些颜色或者视角,在此就不做介绍,以后用到后再详细记录
aircraft.cfg
在模型的基础框架下面都有对应的aircraft.cfg文件,该文件的作用就是配置飞机的一些参数,包括发动机的型号、飞机模型外表的涂装、注册号、以及各个系统的属性参数。例如:在燃油部分配置了燃油的最大容量,如下图所示: 如果我们想改变关于飞机的一些固有参数,在这个文件中查找修改即可。
SDK Panel实践
大致步骤
打开SDK中的C-Gauge Samples例程,该例程的位置D:\Prepar3D_V5\SDK\Panels and User Interface\Panels\C-Gauge Samples打开项目例程,检查例程的属性和配置,对例程进行重新编译将编译成功的例程的输出文件复制到C:\Program Files\Lockheed Martin\Prepar3D v5\gauges目录中对模型飞机的panel.cfg文件进行配置,添加要显示的仪表运行P3D,选择相应的飞机模型,点击Instrument,选择定义好的panel名称即可看到相应的仪表面板。 如下图显示所示,SDK的例程中,提供了燃油量的显示、燃油箱的选择、姿态球、航向和温度等信息。
需要注意
在帮助文档中有教程指导你如何运行SDK提供的C-Gauge Samples项目工程,在运行过程中需要注意以下几点:
检查项目的属性配置,选择本机电脑对应的SDK版本、平台工具集、配置类型选择DLL动态连接库 在将输出的dll文件添加到MOON——brao飞机的仪表过程中,需要将这以下几项文件复制出来。直接粘贴到C:\Program Files\Lockheed Martin\Prepar3D v5\gauges目录。 在编辑panel.cfg的过程中,注意gaugeXX的序号,序号不可重复。
总结
本篇博客主要是大概介绍了P3D的开发,后面将详细介绍SDK项目中程序的实现。第一次接触P3D的二次开发,有些可能还不是特别的了解,大概总结了下自己学习过程中遇到的一些问题,如果有错误之处,欢迎指出。
|