创建自定义旗帜图标与颜色
简介
本文档将介绍以下步骤:
- 设置包含旗帜图标的自定义贴图。
- 为自定义旗帜图标生成材质。
- 将新创建的旗帜图标添加到自定义模组中。
- 向旗帜编辑器(Banner Editor)添加自定义图标颜色。
先决条件
- 从Steam下载的《骑马与砍杀2:领主》- 模组制作工具包(Modding Kit)。
创建旗帜图标贴图
- 要创建一套新的旗帜图标,首先需要创建一个分辨率为2048x2048的PSD文件,并将其分割为16个相等的网格部分。文件可以比这更大,但不建议将其做得更小。
- 然后将此文件放入你的模组的AssetSources\BannerIcons目录中。请注意,该文件可以是PSD或DDS格式。
- 此外,你还需要在Assets\BannerIcons中创建一个空文件夹。
- 在下方的示例图片中,画布被分割为4x4网格,并且在第一个(第0个)槽位中有一个示例旗帜图标。
- 旗帜图标槽位从顶行的0、1、2、3开始,到底行的12、13、14、15结束。

将旗帜图标贴图导入游戏并创建新材质
- 现在贴图已添加完毕,请从Steam启动《骑马与砍杀2:领主》- 模组制作工具包(Modding Kit)。
- 确保在启动器的Mods部分选中你的模组,然后点击”Play”。
- 在主菜单中,按下Alt + `打开控制台。
- 输入resource.show_resource_browser,然后按回车键。
- 在资源浏览器(Resource Browser)中,选择与你的模组名称相同的文件夹。
在该文件夹中,点击”Scan new asset files”(扫描新资源文件)。

如果你正确完成了前面的步骤,会弹出一个窗口提示检测到新文件。点击导入(import)。

进入BannerIcons子文件夹,点击你创建的贴图,并按如下所示设置导入设置(Import Settings)。如果你的旗帜图案细节较多,也建议勾选”Do not Compress“(不压缩)选项。

在同一文件夹中,右键单击并选择Create(创建),然后选择Material(材质)。将此材质命名为与你的贴图相同的名称。

新材质应如下图所示出现。

新材质的初始设置:
- 从贴图列表(Textures List)中移除所有预定义的贴图。
- 将你的旗帜图标贴图添加到贴图列表的漫反射(diffuse)槽位中。
- 将着色器(shader)从pbr_metallic设置为gui_color_and_stroke。

材质着色器标志(Material Shader Flags)、透明度(Transparency)、其他(Others)以及顶点布局(Vertex Layout)选项卡的附加设置:

现在我们已经完成了自定义旗帜图标的贴图和材质设置,可以将其添加到我们的模组中。
创建自定义旗帜定义
- 要在游戏中使用自定义旗帜图标,需要向你的模组中添加一个包含旗帜定义的XML文件。
- 该文件的路径为{MODULE_NAME}\ModuleData\banner_icons.xml。
- 该文件会在你的模组加载时自动加载。
- 下面展示了一个示例banner_icons.xml文件。
<?xml version="1.0" encoding="utf-8"?>
<base xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" type="string">
<BannerIconData>
<BannerIconGroup id="16" name="{=!}My Custom Banner Icon Group" is_pattern="false">
<Icon id="16001" material_name="module_custom_banner_icons_01" texture_index="0" />
</BannerIconGroup>
</BannerIconData>
</base>- 在基础XML定义之后,添加了一个名为BannerIconData的根元素。所有自定义图标都添加在该元素之下。
- 对于每个图标组,需要添加一个BannerIconGroup元素。该组的ID必须是唯一的。在添加自定义组之前,请先检查原生模组的旗帜图标组ID。
- name参数由你(模组制作者)自行决定,可以是任意内容。其命名方式与其他本地化文本相同。
- BannerIconGroup的子元素是Icon元素。所有图标元素同样必须具有唯一的ID。图标的ID规则与旗帜图标组相同。
- 图标的材质名称需要与我们在上一步中创建的材质相同。
- 贴图索引(Texture Index)是一个从0到15的数字,在本指南的第一步中已有说明。
- 如果你已将上面展示的banner_icons.xml文件添加到你的模组中并重新启动游戏,你应该就能使用你创建的图标了。
带有空白缩略图的图标就是我们创建的图标。点击该按钮以选择新创建的旗帜图标。

请注意缩略图尚未显示。要添加缩略图,请参阅生成和加载UI精灵表(Generating and Loading UI Sprite Sheets)指南。请注意,你的精灵图名称需要与图标的ID相同。因此在我们的示例中,缩略图精灵图的名称为16001.png。
生成缩略图后,旗帜图标列表应如下所示。

添加自定义颜色选项
- 要添加一组颜色,请在你的模组的banner_icons.xml文件中创建一个BannerColors元素。
- BannerColors的子元素是Color元素。所有颜色元素必须具有唯一的ID。此处的ID规则与Icon元素相同。
- 颜色有两个可选参数。
- player_can_choose_for_background:使该颜色在旗帜编辑器界面(Banner Editor Screen)的背景颜色(Background Color)部分中可用。
- player_can_choose_for_sigil:使该颜色在旗帜编辑器界面(Banner Editor Screen)的纹章颜色(Sigil Color)部分中可用。
- 如果这些参数都没有设置为true,该颜色仍会被添加以用于旗帜,但只能被NPC氏族和势力使用。
- 如果要添加大量新颜色,可能需要包含并更新位于Native\GUI\Prefabs\BannerEditor中名为BannerEditor.xml的预制件(prefab)。
<?xml version="1.0" encoding="utf-8"?>
<base xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" type="string">
<BannerIconData>
<BannerIconGroup id="16" name="{=!}My Custom Banner Icon Group" is_pattern="false">
<Icon id="16001" material_name="module_custom_banner_icons_01" texture_index="0" />
</BannerIconGroup>
<BannerColors> <!-- New colors element-->
<Color id="2000" hex="0xFFDBCFB0" player_can_choose_for_sigil="true" />
<Color id="2001" hex="0xFF545775" player_can_choose_for_background="true" />
</BannerColors>
</BannerIconData>
</base>- 如果你按照上面所示添加了颜色,你将在旗帜编辑器界面(Banner Editor Screen)中获得以下颜色。

本页面由 AI 翻译,可能存在不准确之处。请以英文原版为准。
