Blender制作3D模型导入《武装突袭3》

0 点赞
武装突袭3
转载

本指南展示了如何快速将简单的3D模型从Blender导出到《武装突袭3》,包括碰撞、阴影和道路设置。 内容: 本教程旨在通过最少的设置提供快速且简单的结果。 所需工具: 需要两个必要程序: Blender Arma 3 Tools 两者都可以通过Steam免费下载。 注意:与其他必须设置P盘的教程不同,我们将只使用Arma 3 Tools中的Addon Builder,无需P盘。 对于Blender,我们需要MrClock的“Arma 3 Object Builder”插件。 下载最新版本的插件,只需将ZIP文件拖放到Blender中进行安装。将默认立方体导出到《武装突袭3》 现在我们要将Blender的默认立方体导出到《武装突袭3》中。 删除默认的灯光和相机对象——它们是不需要的。 Blender中显示的网格代表《武装突袭3》中的地面高度。 为防止立方体在游戏中部分沉入地形,需将其略微抬高:

准备LOD LOD即细节级别。 在《武装突袭3》中,每个LOD都有特定功能,且必须在Blender中分配给单独的对象(每个对象只能分配一个LOD)。 这意味着我们需要为每个要使用的LOD类型复制基础立方体。 目前,为以下LOD各创建一个副本: 分辨率 几何体 阴影体积 道路 为清晰和便于组织,请将每个对象重命名为与其对应的LOD名称(例如分辨率、几何体等)。

创建分辨率LOD 分辨率LOD负责《武装突袭3》中模型的视觉表现。 确保已选中分辨率立方体。 转到数据选项卡(绿色三角形图标)。 向下滚动至由插件添加的“对象生成器:LOD属性”。 点击“Is P3D LOD”,然后进行设置: 类型=分辨率 分辨率/索引=1

为分辨率LOD指定颜色 要为立方体添加颜色: 确保已选中分辨率立方体。 打开材质选项卡(红色球体图标)。 向下滚动至【对象生成器:材质属性】——由插件添加。 将【纹理源】设置为【颜色】,然后选择你喜欢的颜色。

通常情况下,颜色会在【视口着色模式】中显示。但对象生成器的材质属性设置不会影响Blender的着色预览。

无论如何要可视化颜色:复制所选颜色的十六进制代码;在材质选项卡中向上滚动;将代码粘贴到材质的基础颜色中(可以使用默认的“Material”)。

注意: - 此颜色仅用于Blender中的可视化。只有在Object Builder(对象生成器)的材质属性中定义的颜色才会影响模型在《武装突袭》中的显示效果。 - 你可能需要暂时隐藏其他立方体才能看到颜色。 创建几何LOD 几何LOD用于定义物体的碰撞形状。 分配几何LOD的步骤: 1. 确保已选中几何立方体。 2. 进入数据选项卡(绿色三角形图标)。 3. 向下滚动至由插件添加的Object Builder(对象生成器):LOD属性。 4. 点击“Is P3D LOD”,然后设置:类型 = 几何。 启用碰撞(需要质量): 要使碰撞在《武装突袭》中正常工作,物体的质量必须至少为10千克。 分配质量的步骤: 1. 确保已选中几何立方体。进入编辑模式并选择所有几何体(快捷键:A) 打开侧边栏(快捷键:N) 前往侧边栏中的【对象生成器】选项卡 找到名为【顶点质量编辑】的部分 点击【实时编辑】以激活批量分配 在【当前质量】下,输入至少10(千克)并按回车键确认

注意: - 必须是封闭网格(无孔洞或间隙)。 - 无需像分辨率LOD那样详细——保持简单以获得更好性能。 创建阴影体积LOD 阴影体积LOD定义将投射阴影的形状。 分配方法: 确保已选中阴影体积立方体。 转到数据选项卡(绿色三角形图标)。 向下滚动至【对象生成器:LOD属性】——由插件添加。 点击【Is P3D LOD】,然后设置: 类型=阴影体积 注意: - 无需像分辨率LOD那样详细——保持简单以获得更好性能。 - 网格必须由三角形组成:

在Blender中可以轻松做到这一点: 在编辑模式下,选择所有面,然后点击【面】→【三角化面】,或按Ctrl + T。如果模型不是由三角形组成,《武装突袭3》中的阴影渲染可能会出现错误或故障。

创建道路LOD 道路LOD用于定义可行走表面——即玩家可以站立或行走的区域。 分配道路LOD的步骤如下: 1. 确保已选中道路立方体。 2. 进入数据选项卡(绿色三角形图标)。 3. 向下滚动至由插件添加的【对象生成器:LOD属性】。 4. 点击【Is P3D LOD】,然后进行设置:类型 = 道路 此LOD应仅包含平坦的可行走表面,不能有垂直或陡坡多边形。 建议删除立方体除顶面外的所有面。 将顶面抬高几厘米,以防止玩家站立时脚部陷入模型。

将模型导出为P3D文件 当所有LOD都正确分配后,模型就可以导出为.p3d文件了。 从Blender导出: 在Blender中,依次点击文件→导出→武装突袭3模型(.p3d) 将文件导出到你选择的干净、空的项目文件夹中(例如myCubeProject) (此文件夹还将包含你的config.cpp、纹理和其他相关文件) 为文件命名(例如myCube.p3d)。 创建config.cpp文件 要使你的模型能在游戏中使用,项目文件夹必须包含一个名为config.cpp的配置文件。 该文件定义了例如模型在游戏中的名称等信息。 如何创建该文件: 在项目文件夹(例如myCubeProject)中,右键点击并选择新建→文本文档 将文件重命名为config(确保文件扩展名确实从.txt更改为.cpp——你可能需要在Windows资源管理器中启用文件扩展名显示)

使用记事本或Notepad++等文本编辑器打开文件开始编辑。将以下内容粘贴到文件中:// 定义此模组的内容(包括其添加的单位、所需插件等)class CfgPatches{ class cube_mod// 模组内部名称 { units[] = {"MyCubeUnit"};// 此模组添加名为"MyCubeUnit"的单位/类别 requiredAddons[] = {"A3_Data_F"};// 确保加载《武装突袭3》核心游戏数据 requiredVersion = 0.1;//运行此模组所需的最低游戏版本 author = "Joshua9797";//作者信息(可选,仅元数据) }; }; //为3DEN编辑器或 Zeus 创建自定义类别 class CfgEditorCategories { class My_Categorie//编辑器类别的内部名称 { displayName = "My Categorie";//编辑器中显示的名称(3DEN 或 Zeus) }; }; //定义新载具或静态物体 class CfgVehicles { class House;//继承的基类(用于静态物体/建筑) class MyCubeUnit: House//基于"House"定义新单位/类别 { scope = 2;//使该物体在编辑器中可用(可见且可放置) scopeCurator = 2;//使该物体在 Zeus(管理员)模式中可用 editorCategory ="My_Categorie";//将其分配到之前定义的编辑器类别显示名称 = "立方体";// 编辑器中的显示名称 模型 = "myCubeProject myCube.p3d";// 3D模型文件路径(.p3d) 描述 = "这是一个立方体!";// 描述文本(工具提示或元数据) }; }; 如果你的文件未命名为myCubeProject myCube.p3d,请确保调整模型条目中的项目文件夹和P3D文件名。

使用Addon Builder打包PBO文件 文件夹结构: 打包前,请准备以下文件夹结构: 创建一个名称以@开头的文件夹,例如:@myCube 在该文件夹内,创建一个名为addons的子文件夹 您的.pbo文件将保存到addons文件夹中。 使用Addon Builder(通过Steam中的《武装突袭3》工具)将项目文件夹打包为.pbo文件。 步骤: 启动Addon Builder 将源目录设置为您的项目文件夹(包含.p3d文件的文件夹) 将目标文件夹设置为addons文件夹(例如@myCube addons) 点击“Pack”创建.pbo文件

将模组添加到《武装突袭3》启动器 当你的.pbo文件已打包并放置在@myCube/addons文件夹中后,最后一步是将其作为本地模组加载到《武装突袭3》中。 添加模组的步骤: 1. 打开《武装突袭3》启动器 2. 进入“模组”选项卡 3. 点击【添加本地模组】(通常在左上角) 4. 选择你的@myCube文件夹 你的模组现在应该会出现在模组列表中,并且可以被激活。

为立方体分配纹理 进行中 除了之前使用的纯色分配方式,你还可以为分辨率LOD应用PAA纹理,使模型获得合适的纹理表面。 PAA文件是《武装突袭3》使用的纹理格式。 你可以通过Gruppe Adler的在线PAA转换器或《武装突袭3》工具中包含的ImageToPAA工具,将JPG或PNG格式转换为.paa格式。 纹理必须具有2的幂次方分辨率,例如1024x2048或512x512,才能成功转换。 对于我们的立方体,我从互联网上下载了一张纹理:

以我的情况为例,原始纹理的分辨率为1430×1072。 我将宽度缩小到1024像素,然后将画布水平扩展到2048像素,最终分辨率为2048×1024——这对《武装突袭3》来说是有效的(尺寸为2的幂)。 之后,我将图像转换为.paa文件。 确保将.paa文件放置在项目文件夹内,因为在打包过程中它必须包含在最终的.pbo中——例如:myCubeProject textures myTexture.paa 现在,与颜色设置类似,我们可以将.paa纹理分配给分辨率LOD: 确保已选择分辨率立方体 打开材质选项卡(红色球体图标) 向下滚动到Object Builder:材质属性——由插件添加 将纹理源设置为文件并选择你的。paa文件 文件路径必须从项目文件夹开始,因此请确保进行相应调整: <图像> 与颜色分配类似,通过Object Builder:Material Properties设置的纹理在Blender的视口着色模式下不可见。 要在Blender中预览纹理: 确保已选择分辨率立方体 为默认材质命名,例如“myTexture” <图像> 切换到着色工作区 确保已选择“myTexture”材质 添加图像纹理节点并选择原始JPG或PNG文件 将图像纹理节点连接到Principled BSDF着色器的基础颜色输入 <图像> 此时,纹理应在视口着色模式下显示在立方体上。不过,它可能会在立方体上显得拉伸、错位或放置错误。这是因为UV贴图尚未正确设置,需要进行调整。Object Builder插件在将模型导出为.p3d文件时,会方便地包含UV映射。注意:如果你使用的是下载的3D模型,UV映射通常已经正确设置。 修复UV映射: 1. 切换到UV编辑工作区 2. 确保处于视口着色模式 3. 确认已选择正确的纹理 4. 切换到编辑模式 5. 选择立方体的所有面(快捷键:A) 6. 所选面现在应显示在UV编辑器的纹理上方 7. 在UV编辑器中移动、缩放和旋转UV顶点,直到纹理在立方体上正确显示 注意:在我的案例中,最后需要将分辨率立方体旋转90度,使纹理的草面朝上。