洛克希德·马丁公司的Prepar3D软件开发套件(SDK)培育了开放,繁荣的开发人员生态系统。该SDK支持Prepar3D开放开发架构的理念,并鼓励第三方为Prepar3D平台带来新的创新,改进的附件和培训内容。
该SDK可用于开发新模型和新内容,例如飞机,仪器,雷达,地面车辆,船只,建筑物和其他结构。它可用于创建新的视觉效果,例如风景,地形和特殊效果。
Prepar3D从根本上说是数据驱动的。对于可以增加或修改以增强培训目标的新数据,模型或方案的数量没有限制。
本文档包含有关SDK组件的详细信息,以及有关安装和其他一般问题的提示和技巧。有关如何部署解决方案的信息可以在“ 解决方案部署”中找到。
如果您是使用此SDK来为Prepar3D生成附加组件的附加组件开发人员,请另参阅《适用于开发人员的附加组件说明》。
有关创建方案的信息,例如教程和清单,请参见SimDirector。
以下是SDK组件的概述,并提供了每个组件的详细文档的链接。除非更改安装目录,否则SDK会安装到:
%PROGRAMFILES%\ Lockheed Martin \ Prepar3D v4 SDK * \
SDK分为以下工具包:
零件 |
描述 |
文献资料 |
造型 |
建模组件是Prepar3D SDK 的最大组件之一,对于许多开发人员来说,它也是最重要的组件。所有出现在模拟中的飞机,轮船,地面车辆,建筑物,桥梁,树木以及几乎任何其他结构都需要以正确的格式创建3-D模型。Prepar3D的格式是特定于仿真的,因此必须格外小心以确保正确完成所有必需的步骤。对于飞机来说尤其如此,其动画,特效,照明和纹理的范围广泛,可以构成如此复杂的对象。 |
3ds Max概述 |
模拟对象 |
模拟对象主要是飞机(固定翼,直升机和水上飞机),但包括由模拟操纵的所有其他对象,例如机场地面车辆,轮船,某些动物和场景系统使用的对象(例如,与直升机升降系统配合使用的负载)。它们都需要在模拟中表示相似的文件夹和文件结构,并且此结构的描述以及每个文件的必需和可选内容是此SDK组件的主要目的。 |
模拟对象概述 |
面板和用户界面 |
可以修改用户界面的各种组件。这可以通过创建用作独立窗口的面板来完成,这些面板可以在Prepar3D中打开。面板可以嵌入Scaleform,并且包含各种默认UI组件的源,以便于修改。 |
面板 |
世界 |
世界组件包含用于修改环境的所有工具。 |
风光 |
脚本编写 |
本节介绍Prepar3D支持的脚本语言。这包括反向波兰表示法(RPN)脚本和LUA脚本。 |
脚本概述 |
SimConnect API |
SimConnect API是程序员与Prepar3D的接口。附加组件可以用C,C ++编写,或者,如果正在使用托管API调用,则可以使用任何.NET语言(例如C#.net或VB.net)编写。该界面有很多可能的用途,包括编写附加组件以控制天气系统,管理AI控制的飞机,拦截关键事件并提供与默认编码器不同的响应。具有向菜单系统添加项目,控制摄像机,请求机场设施数据以及为场景系统提供自定义处理的功能。 |
SimConnect API概述 |
PDK API |
Prepar3D开发工具包(PDK)API是用于获取Prepar3D平台服务的服务提供商。PDK的功能类似于SimConnect,但在较低级别上与Prepar3D绑定在一起,从而具有更好的性能和更直接的交互。与SimConnect不同,PDK插件没有网络接口,因为它们必须作为进程内dll开发。通过与用户编写的.dll接口,可以将数据注入到仿真中或从仿真中接收数据。PDK的用途包括创建自定义SimObject,添加自定义纹理和后处理以及修改摄影机。 |
PDK API概述 |
摄影机 |
通过使用配置设置,可以高度自定义和扩展摄像机。可以将相机添加到飞机和其他对象,并且可以从菜单选项调整相机视图。可以定义跟踪某些对象或在固定路线上移动或相对于另一个对象(例如用户飞机)移动的摄像机。还可以定义摄像机以从飞机上的不同座位区域(例如副驾驶员或后座乘客)提供视野。 |
相机配置 |
附加组件 |
所有形式的Prepar3D内容都可以轻松地打包到一个称为附件的可交付组件中。使用受支持的附加分发方法,可以在不修改核心Prepar3D文件的情况下实现高级用户功能并简化安装。 |
附加组件概述 |
某些SDK工具要求Prepar3D运行时位于同一台计算机上。优良作法是将SDK安装到已安装Prepar3D运行时的计算机上,然后将文件/文件夹(例如SDK Learning Center \ SDKLearningCenter.exe)移动 到另一台计算机上,以便可以在一台计算机上同时参考文档。开发是在另一个上完成的。
该SDK附带的某些工具要求 首先 安装Microsoft .NET Framework 4.7.2 Developer Pack。
仅当将SDK安装到默认文件夹时,文档和某些工具中的路径才正确。如果将SDK安装到非默认文件夹中,请注意某些记录的路径可能不正确,然后运行工具ConfigSDK.exe(在SDK文件夹中)以将许多配置工具的路径更新为正确的路径夹。在运行ConfigSDK.exe之前,请确保至少首先运行一次Prepar3D.exe(因为该工具要求存在某些注册表项),并且Prepar3D运行时已安装到同一台计算机上。
该SDK文档中的说明假定开发人员正在使用管理员特权,否则当这些工具尝试在受保护的目录中创建文件时,可能会发生安全冲突。
应用程序数据存储在:
%APPDATA%\ Lockheed Martin \ Prepar3D v4
这两个文件夹都是隐藏的系统文件夹,并且要使其可见,您需要以管理员身份登录并设置视图属性以显示隐藏的文件和文件夹。在Windows 7中打开Windows资源管理器,选择“组织/文件夹”和“搜索”选项,然后选择“显示隐藏的文件和文件夹”。
Prepar3D的注册表项信息位于:
> HKEY_LOCAL_MACHINE \ SOFTWARE \ Lockheed Martin \ Prepar3D v4
Visual Studio 2017可用于开发SimConnect客户端应用程序。有关Visual Studio的更多信息(包括如何下载Visual Studio 2017),请在此处访问其网站。
警告:如果使用Visual Studio 2005 SP1开发了附加组件,则它将在开发计算机上运行,但是仅当安装了以下Redist软件包之一或使用_USE_RTM_VERSION编译项目时,该附加组件才能在其他计算机上运行。编译器开关。
对于32位操作系统:
http://www.microsoft.com/downloads/zh-CN/details.aspx?familyid=A7B7A05E-6DE6-4D3A-A423-37BF0912DB84&displaylang=en
对于64位操作系统:
http://www.microsoft.com/downloads/zh-CN/details.aspx?familyid=BD512D9E-43C8-4655-81BF-9350143D5867&displaylang=en
虽然大多数开发人员问题将在SDK文档和示例中得到解答,但总会有一些问题未得到解决,因此鼓励SDK开发人员加入并参加各种论坛,讨论有关Prepar3D附加组件开发的问题。
Prepar3D论坛可以在这里找到。
许多SDK组件需要GUID(全局唯一标识符)。Visual Studio中包含一个生成这些工具的工具。
这将在桌面上放置一个名为GUIDGen的图标。打开此窗口,然后双击GUIDGEN以打开该工具:
转存失败重新上传取消 |
对于大多数应用程序,选择选项4.注册表格式作为最合适的GUID格式。 |
转存失败重新上传取消 |
Prepar3D 的SDK 也附带GUID Generator工具。要使用GUID生成器,请在SDK目录中运行GUIGenerator.exe文件。在给定的文本框中键入您希望生成的GUID数量。然后单击生成以创建那么多GUID。单击“保存”以将GUID保存到文件中,以便随时可以对其进行检索。 |
在Prepar3D.cfg的[图形]部分中,以下两个设置可能会影响性能:
SmallPartRejectRadius = N(默认值为1),它确定要渲染对象必须具有的半径(以像素为单位)。增大此大小将从渲染管线中剔除更多对象。
MergeDirtyRegionUpdates = 1或0(默认值为1),指示是否应在本地或整个显示区域进行更新,尤其是对玻璃驾驶舱面板的更新。在较旧的图形卡上将此值设置为0可能会导致某些面板的性能有所改善。
在Prepar3D.cfg的[Realism]部分中,以下设置确定当用户飞机坠毁时会发生什么。在多人游戏场景中,尤其是在使用共享驾驶舱时,应格外小心,确保所有计算机上的设置都相同-否则会有不可预测的行为。
CrashDetection True =检测用户飞机坠毁并根据OnCrashAction的设置进行响应,False =通过将飞机“弹起”回到安全飞行状态来忽略所有坠毁。
OnCrashAction在单人游戏模式下:0 =从头开始重置场景(默认),1 =结束场景,2 =将用户飞机置于坠毁位置。在选项0和1的多人游戏模式下,客户将简单地返回到简报室,并且主机将处于崩溃状态(对于场景),或者将场景重置(对于自由飞行)。选项2的工作方式与单人游戏模式相同-主机和客户端的用户飞机都将留在坠毁位置。
在Prepar3D.cfg的[MAIN]部分中,可以使用以下设置来辅助开发内容。
ContentErrorReporting如果将此值设置为1,则许多与内容有关的错误将记录到文件%USERPROFILE%\ Documents \ Prepar3D v4 Files \ ContentErrors.txt中。错误的示例是重复的配置文件或无效的属性设置。通常,Prepar3D将尽可能最佳地静默处理这些错误,但开发人员应验证其内容未在此文件中生成条目。
Prepar3D的许多功能旨在在比运行Prepar3D.exe更受控制的情况下,向观众部署解决方案(例如,教程)。该解决方案部署部分展示了如何更改默认的安装文件夹。“ 命令行开关”部分使模拟可以从特定场景以及可选的特定场景以及其他选项开始。“ 启动解决方案”部分描述了提供的工具,该工具使解决方案的部署(尤其是教程)变得容易且一致。
可以从命令行使用一组可选的开关启动Prepar3D.exe。可以使用多个开关,只要它们彼此不冲突即可。在输入路径的地方,应在开关和路径两边都加上引号(请参阅表中的示例)。
开关 |
描述 |
例子 |
-dev |
此开关已被弃用。 |
Prepar3D -dev |
“ -flt:path_to_scenario .flt” |
加载命名的旧方案文件。该路径可以相对于包含Prepar3D.exe的根文件夹,也可以是绝对路径。这是加载单人任务的推荐方法。如果到旧方案文件的路径是命令行上的最后一个条目,则-flt开关是可选的。 |
Prepar3D“ -flt:场景\教程\飞行基础\ Flight.flt基础” |
“ -fxml:path_to_scenario .fxml” |
加载命名的方案文件。该路径可以相对于包含Prepar3D.exe的根文件夹,也可以是绝对路径。这是加载单人任务的推荐方法。如果场景文件的路径是命令行上的最后一个条目,则-fxml开关是可选的。 |
Prepar3D“ -fxml:场景\教程\洛克希德·马丁Showcase \洛克希德·马丁Showcase.fxml” |
-mp |
模拟器将在“主持标准场景会话”多人游戏模式下启动,并显示“多人对话”。 |
Prepar3D -mp |
“ -mp:path_to_scenario .fxml” |
使用提供的方案和目标文件,并在“多人对话”可见的情况下,以“托管多人方案”模式启动模拟器。如果路径中有任何嵌入式空格,则可以使用双引号,空格可以是绝对路径,也可以是相对于包含Prepar3D.exe的文件夹的相对路径。 |
Prepar3D“ -mp:场景\教程\多人和SimOperator基本场景\多人和SimOperator基本场景.fxml” |
-mpjoin |
在“加入多人游戏会话”模式下启动模拟器,并显示“多人游戏对话框”。 |
Prepar3D -mpjoin |
“ -mpplayer:局域网名称 ” |
跳过登录屏幕,并使用命令行提供的播放器名称。 |
Prepar3D -mpjoin“ -mpplayer:实习飞行员一” |
-mpplayer |
跳过登录屏幕,并使用Prepar3D.cfg配置文件(在[Multiplayer]部分中的条目“ LANUsername = Player name ”)提供的播放器名称。玩家名称的最大长度为20个字符。如果该文件中不存在该条目,则忽略该开关并显示常规登录屏幕。 |
Prepar3D -mpjoin -mpplayer |
“ -net:path_and_filename .cfg” |
此开关允许从命令行启动多人游戏会话。提供的.CFG文件应具有[Multiplayer]部分,其中包括Prepar3D.cfg文件的[Multiplayer]部分中可用的所有条目。 |
Prepar3D.exe -net:d:\ MPHost.cfg |
“ -rolename:角色名称 ” |
此开关允许通过命令行从名称中选择多人角色。当与-net和-fxml开关结合使用时,这是有效的。fxml文件必须包含指定的角色名称。 |
Prepar3D.exe“ -net:d:\ MPHost.cfg”“ -fxml:Scenarios \ Tutorials \ Multiplayer and SimOperator Base Scenario \ Multiplayer and SimOperator Base Scenario.fxml”“ -rolename:Player 1” |
“-风景:path_to_folder” |
使用此开关,可以将特定的风景和地形配置文件应用于特定的场景。开关中指定的文件夹应包含terrain.cfg文件和scenery.cfg文件,并且必须是可写文件夹(以便Prepar3D可以将正确的风光索引文件写入该文件夹)。如果该文件夹中不存在任何文件,该文件夹不存在或不可写,则Prepar3D将恢复为使用默认的地形和风光配置文件。请注意,路径中不应包含结尾的“ \”(如果示例以Prepar3D“ -Scenery:C:\ Alternate Config Folder \”的形式输入 ,则将无法正确解析)。 |
Prepar3D“ -Scenery:C:\ Alternate Config文件夹” |
“ -cfgdir:path_to_folder \” |
此开关允许使用指定目录覆盖3个配置目录。被覆盖的3个目录是:
现在将从这3个目录中写入或读取的所有文件都将重定向到提供的目录。这包括Prepar3D.cfg和SimConnect.xml文件。 |
Prepar3D.exe -cfgdir:d:\ Replacement \ Directory \ |
-runas专业 |
此开关允许具有Professional Plus许可证的系统作为模仿的Professional许可证运行。这有助于测试为Professional Plus许可证开发的内容,方案和功能,但也希望与Professional许可证兼容。仅建议将该开关用于测试,不得将其用于任何其他原因。 |
Prepar3D.exe -runasprofessional |
-simdirector |
此开关将导致应用程序在SimDirector中启动 。 |
Prepar3D.exe -simdirector |
-模拟器 |
此开关将导致应用程序在SimOperator中启动 。 |
Prepar3D.exe -simoperator |
“ -configure: |
此开关使内容开发人员可以更轻松地执行附加配置任务(例如,添加,删除,启用或禁用Prepar3D将在其中查找诸如效果或simobjects内容的目录)。此开关旨在消除开发人员编写脚本以添加其内容的需求,这些脚本通常会覆盖基本安装文件或访问用户可能没有访问权限的文件。 请参阅附加配置文件主题以获取更多信息,包括选项的广泛列表以及可以指定的各个值。 |
Prepar3D.exe“-配置:文件=效果,操作=添加,路径= C:\ Program Files \ My Company \ My Effects产品\ data” |
-删除的 |
删除以下文件夹的内容,Prepar3D在其中存储设置和缓存的数据:
|
Prepar3D.exe-删除生成 |
-deleteshadercache |
删除位于以下位置的着色器缓存文件夹的内容: %LOCALAPPDATA%\ Lockheed Martin \ Prepar3D v4 \ Shaders |
Prepar3D.exe -deleteshadercache |
-deletedocuments |
删除存储方案的Prepar3Ddocuments文件夹的内容,该文件夹位于: %USERPROFILE%\ Documents \ Prepar3D v4文件 |
Prepar3D.exe-删除文档 |
本节介绍了建议的用于部署和启动解决方案的过程。所有客户端计算机都必须安装了Prepar3D客户端版本。通常,这将在安装任何特定解决方案之前完成。解决方案通常由启动程序,启动程序的清单文件以及方案和目标文件组成。启动器程序旨在简化确保学生启动教程的一致且简单的指令集的过程。SDK附带了一个示例启动器Prepar3DLauncher.exe及其源代码,以便能够为特定的应用程序进一步开发它。一个Prepar3D解决方案可以完全包含在Visual Studio安装项目中。该项目将包含所有必需的文件,以及启动程序和清单文件。以这种方式包含解决方案应该提供一种可靠的部署方法,尤其是对于那些可能对大量学生提供简单指导的教程而言。或者,可以将启动器安装在客户端计算机上,并将其数据文件(图像,脚本和目标文件)远程保存在服务器上。如果尝试远程运行启动程序,则会触发安全异常。
启动器的示例源代码和项目已安装到SDK \ SimConnect Samples \ Launcher文件夹中。此文件夹中包含的XML文件是启动程序加载的清单文件。下一节提供了此文件的格式。
清单文件格式
下面显示了一个清单文件示例,其中包含一个单人游戏和一个多人游戏场景。
<解决方案>
<名称> Prepar3D Launcher的示例解决方案 Name>
<说明>这是在Lockheed Martin Prepar3D 1.0 Launcher中填充信息的示例解决方案。 Description>
<说明>这是一项基本的训练任务(模拟和飞行熟悉)。预计完成时间:5分钟。 Description>
Scenario>
<说明>这是基本的训练任务(飞机转弯)。预计完成时间:10分钟。 Description>
Scenario>
Solution>
|
第一个条目范围(名称,描述,VersionMajor,VersionMinor,Publisher,SupportPHone,SupportEmail,HelpURL)的用途不言而喻。只需输入适当的信息以供您自己使用。下表描述了Scenario标记中可以包含的条目。
XML标签 |
描述 |
名称 |
方案的名称(任务,教程等),显示在启动器的UI中。这是唯一必填字段。 |
描述 |
方案说明。 |
IsMultiplayer |
对于多人任务, 设置为True,否则为False。 |
图片 |
要在启动器UI中显示的图像的路径。图片必须是.bmp文件,并且应为380 x 232像素。 |
FltFile |
方案的排期文件的路径。任务文件将从飞行文件中引用。 |
风景 |
包含替代景观和地形配置文件的文件夹的路径。 |
- 最佳 -