在修改地图文件时,很多事情都可能导致游戏崩溃,比如 troubleshooting.
最重要的是保存时使用的格式,因为错误格式会导致加载时CTD:
| File | Role | Format |
|---|---|---|
| provinces.bmp | Province boundaries | RGB Color (24 bits), no color space information |
| world_normal_height.bmp | Lighting | |
| rivers.bmp | Flow of minor rivers | Indexed color (8 bits) |
| terrain.bmp | Terrain textures | |
| trees.bmp | Tree types and density | |
| topology.bmp | Height of the terrain | Greyscale (8 bits) |
这些图片的高度和宽度应为64的倍数,以避免启动时崩溃。
但实际上需要是256的倍数,否则地图边缘会出现一些黑边。[1]
Default.map 包含关于地图的一般信息。里面的大部分物品都应该保持原样。以下是你需要担心的因素:
注:sea_starts在2.1补丁(印度王朝)起被淘汰。以上信息截至2.6补丁。
Provinces.bmp 可能是你地图中最重要的文件,因为它显示了所有县和海域的边界。每种颜色对应于一个元素 definition.csv.编辑provinces.bmp时,确保只使用纯色,不要使用抗锯齿、透明度或其他任何处理。
新增省份需要遵循许多步骤。以下是需要完成的任务清单。[2]
map/definition.csv.你可以使用其他克劳塞维茨游戏的RGB值,那些游戏省份数更多(比如《HoI4》的>13k)。如果一切都做得好,打开游戏时应该能在地图上看到灰色的新省份。
history/provinces/history/titles/.common/province_setup/ 档案。(除非你是改装旧版本的,否则现在不需要这个功能)gfx/flags/.需要是128x128,并保存为.tga格式使用铅笔工具时,将模式设置为溶解,刷涂“硬度100”,尺寸1.00,动态设置为“动态关闭”。使用桶填充时,将模式设置为溶解。
保存时,确保在兼容性选项中勾选“不写入色彩空间信息”,在高级选项中选择24位,R8 G8 B8。使用不同设置会导致加载时崩溃。
The file definition.csv lists all provinces and their colors in provinces.bmp. Each line is formatted like this:
1;42;3;128;Vestisland;x
1是该省的身份编号。42,3,128 是其 RGB 颜色的 provinces.bmp。维斯特斯蒂岛是该省的名称,但实际显示在地图上的名称取决于地理位置。“x”只是用来标记行的终点。
Adjacencies.csv 用于省份间的特殊连接。该文件可以与 Microsoft Excel 关联,但建议在编辑时使用如 Notepad++ 等文本编辑器。
通过海洋连接常用于连接相近的陆地块,例如爱琴海的岛屿。
通过海洋连接两个省份的编码方式如下:
Province number 1;Province number 2;sea;The sea the connection will go through;X₁;Y₁;X₂;Y₂;Comment
例如,科西嘉岛和撒丁岛之间的联系是这样的:
324;325;sea;1027;-1;-1;-1;-1;Corsica-Arborea
在大多数情况下,游戏会根据距离自动选择每个省份的一个点来绘制交叉路径。如果需要自定义点(例如防止与其他交叉点重叠、模拟历史交叉点,或仅仅出于风格原因),参数 X₁, Y₁, X₂ and Y₂ 可以用来定义这些点。大多数情况下不需要这样做,因此这些数值被设置为-1,让游戏自动确定分数。
通过主要河流连接的土地,用于连接如果有普通河流或根本没有河流时本应相连的土地。
通过一条主要河流连接两个省份的编码如下:
Province number 1;Province number 2;major_river;The major river that the connection will cross;-1;-1;-1;-1;Comment
例如,这是荷兰与布雷达之间莱茵河对岸的连接:
80;92;major_river;1043;-1;-1;-1;-1;Holland-Breda
搬运是指通过陆路连接海洋的通道。搬运的编码如下:
Sea number 1;Sea number 2;portage;The land province the connection will go through;X₁;Y₁;X₂;Y₂;Comment
例如,这是顿河和伏尔加河的连接:
1089;1094;portage;595;-1;-1;-1;-1;Don-Volga
Like sea crossings, the X₁, Y₁, X₂ and Y₂ 参数可用于定义交叉点的绘制位置。
The file positions.txt 决定城市、港口、议员和军队在省份中的部署位置。
Rivers.bmp 地图上显示所有次要河流。它不包括主要可通航河流,这些河流被视为海域,rivers.bmp中呈粉色。
任何与另一条河流汇合或分流的河流都是河流系统的一部分。每个河流系统只能有一个源头(绿点)。每个单独的河流只能是一个像素。两个河流像素必须正交相邻(而非斜线)才能成为同一条河流的一部分。当一条河流汇入另一条河流时,需要使用红点。此外,河流的颜色与河流的大小和所获得的防御加成相对应。 [3]
rivers.bmp使用索引色彩调色板。如果没有正确调色板保存,会导致崩溃,所以我建议打开原版rivers.bmp,复制粘贴你的地图。
| Category | Color | RGB | Hex Code |
|---|---|---|---|
| River Source | 0 255 0 | #00FF00 | |
| Minor River source from Major River | 0 158 0 | #009E00 | |
| Merging River | 255 0 0 | #FF0000 | |
| Splitting River | 255 252 0 | #FFFC00 | |
| Water & Major Rivers | 255 0 128 | #FF0080 | |
| Land | 255 255 255 | #FFFFFF | |
| Rivers | 0 255 255 | #00FFFF | |
| 0 200 255 | #00C8FF | ||
| 0 150 255 | #0096FF | ||
| 0 100 255 | #0064FF | ||
| 0 0 225 | #0000E1 | ||
| 0 0 200 | #0000C8 | ||
| 0 0 150 | #000096 | ||
| 0 0 100 | #000064 |
其他一些颜色也在rivers.bmp索引中,但它们的用法并不明确。 只要有河流源,它们似乎确实能作为河流发挥作用。
| Note | Color | RGB | Hex Code |
|---|---|---|---|
| 0 85 0 | #005500 | ||
| Not in the vanilla rivers.bmp | 0 125 0 | #007D00 | |
| 24 206 0 | #18CE00 |
Terrain.bmp 是决定你地图纹理的文件,且 terrain 省份中的战斗修正值(尽管这些修正值可以在 history/provinces).该文件是一个4位索引位图,因此包含16种可能的颜色(索引);但默认地图上只有14个。每个索引映射到特定的地形类型 map/terrain.txt.
每个索引对应精灵中的瓦片索引 map/terrain/atlas0.dds 用于渲染。其中几个索引映射到相同的地形类型,仅用于改变纹理——从游戏玩法角度看它们是相同的。
两个索引(13和14)本体游戏未被使用,仍可被模组制作者使用。默认情况下,它们映射到与索引15相同的地形类型(即水域/海洋;terrain.txt中称为coastal_desert),但可以在terrain.txt中重新映射。默认情况下,两者都使用深棕色的土壤纹理(在地图/地形/atlas0.dds的两个底部中间框中)。
| Index | Color | Type | Default terrain type mapped to in terrain.txt | RGB | Notes |
|---|---|---|---|---|---|
| 0 | Plains | plains | 86 124 27 | ||
| 1 | Farmland | farmlands | 138 11 26 | ||
| 2 | Coastal desert | plains | 130 158 75 | Mix between desert and patches of grass. | |
| 3 | Desert | desert | 206 169 99 | ||
| 4 | Sandy mountain | mountain | 112 74 31 | 应该在山谷或沙漠与山脉交汇处 | |
| 5 | Steppe | steppe | 255 186 0 | ||
| 6 | Arctic | arctic | 13 96 62 | Similar color to pine needles | |
| 7 | Desert mountain | mountain | 86 46 0 | Mix of desert and mountain rock | |
| 8 | Forest | hills | 0 86 6 | ||
| 9 | Snowless mountain | mountain | 65 42 17 | ||
| 10 | Snow covered mountain | 155 155 155 | |||
| 11 | More snow covered mountain | 255 255 255 | |||
| 12 | Jungle | jungle | 40 180 149 | ||
| 13 | N/A | coastal_desert | 213 144 199 | Not used in the base game | |
| 14 | N/A | 127 24 60 | |||
| 15 | Water | 69 91 186 | 在默认地图上,这涵盖了所有海洋/海洋区域和可通航的河流。此外,它在海岸线周围延伸约1像素,呈现出海滩的视觉效果 |
Example of the mapping of Plains (index 0) and Coastal desert (index 2) to the same plains terrain in map/terrain.txt允许每个字母使用不同的纹理:
categories = {
plains = {
movement_cost = 1.1
color = { 241 221 184 }
supply_limit = 5
bottleneck_chance = 5
}
}
text_0 = { type = plains color = { 0 } priority = 0 }
text_2 = { type = plains color = { 2 } priority = 2 }
The trees.bmp 文件决定树的位置、数量以及树的类型。
每个彩色像素对应游戏中的一丛树木。请注意,基础游戏中的tree.bmp比其他.bmp文件小8.04188481675倍,因此将地图尺寸除以8.04188481675,并以此结果为参考。自定义tree.bmp文件的大小和比例可能不同,但更高分辨率的文件可能会带来性能问题,因为地图上会生成更多树木,导致树木组密度提高,这可能在视觉上不够美观。
There are 4 types of trees:
| Category | Density 1 | Density 2 | Density 3 | RGB | Hex Code |
|---|---|---|---|---|---|
| Palm trees | [{{{1}}}] | 255 255 0 | #FFFF00 | ||
| Coniferous trees | 30 139 109 | #1E8B6D | |||
| Mediterranean trees | 154 156 51 | #9A9C33 | |||
| Deciduous trees | 76 156 51 | #4C9C33 |
trees.bmp中的每个像素代表游戏中的六边形树木。
The darker the color the more dense & larger the trees.
例如,如果我们使用落叶树中最浅的颜色,就会得到6棵或更多小树的六边形。如果用最深的颜色,我们会得到一个充满更大树木的六边形。
Topology.bmp 是确定地形高度的文件。
地图的拓扑结构由像素的白度决定,越白越高。 编辑时,重要的是你要把海岸线画在水面上方,这样才不会破坏游戏体验。
注意水的最高价值是94/94/94,而土地的最低价值是96/96/96。避免使用95/95/95,因为这可能导致bug行为。注:文件 must 以灰度格式保存,而这在常见的图形编辑器如 paint.net 中并不总是能做到。
让高度之间的过渡平滑,否则会形成明显的锯齿边缘。
World_normal_height.bmp is a normal map 这为游戏提供了关于如何点亮地图的信息。截至3.2版本,方形world_normal_height.bmp的最大尺寸为3344×3344(即2092×256像素,或略高于1118万像素)。不同纵横比的法线贴图可以超过其中一个维度,只要总面积不超过。超过这个区域会导致地形没有光照,因此非常黑暗。幸运的是,world_normal_height.bmp不必和其他地图文件的尺寸相同,甚至不必相同宽高比;较小(或较大)的法线贴图会自动按地图尺寸缩放。
法线贴图可以从高度图(topology.bmp)生成,使用 Nvidia's texture tools或者通过Photoshop CC中的3D滤>生成法线贴图>
CK2 使用两个色彩贴图,均可在地图目录的地形子目录中找到,分别为 colormap.dds 和 colormap_water.dds。它们分别为地图增添了更多细节,作为陆地和水面的叠加层。比如world_normal_height.bmp它们会根据地图的总尺寸来缩放。与其他地图文件不同,它们使用DDS格式,可能需要特殊插件来加载或编辑。
使用Nvidia dds插件保存色彩贴图时,保存为“DXT5 ARGB 8 bpp |插值 alpha“,带有 2D 纹理且无 MIP 映射
省份气候的模组操作方式和geographic_region、island_region类似,只不过这里只有省份可以。这意味着所有拥有某种气候的省份都需要将其省份ID添加到相应的区块中。
虽然繁琐,但非常简单。例如,在一个有16个省份的世界里,这里有一个添加气候的示例:
mild_winter = {
1 2 3 4
}
normal_winter = {
5 6 7 8
}
severe_winter = {
9 10 11 12
}
第13、14、15和16省将属于温带气候。这部分无需添加。任何未被放入某个区块的省份都会自动获得温带气候。如果省份被分在多个区块中,则使用该区块所在的最低区块(但仍建议避免将省份分到多个区块)。
The map frame is defined in the folder static. Predefined values are:
如果文件是空的,地图就没有框架。 如果你的自定义地图比例不一致,也可以添加自定义帧。你需要创建一个新的,导出成pxdmesh格式,并更改00_static.txt和mapitems.gfx
See Custom Map Fonts.
除了图形文件,创建自定义小地图还需要一些界面改装。 See here for more.
本节专门用于排查地图问题。关于其他模组,请参见通用 troubleshooting.
| Symptom | Troubleshooting |
|---|---|
| Provinces do not show up on realm view |
|
| 历史 | 角色 • 家族 • 省份 • 头衔 • 剧本 |
| 脚本 | 指令 • 条件 • 作用域 • 修正 • 事件 • 决议 |
| 常规 | 定义 • 游戏规则 • 另类开局 • 宗教 • 文化 • 政体 • 特质 • 血脉 • 科技 • 法律 • 建筑 • 宣战理由 • 朝贡国 • 单位 • 目标 • 疾病 • 死亡 • 荣誉头衔 • 社团 • 宝物 • 地图外政权 • 内阁成员 • 贸易路线 • 继承 • 奇观 • 称号 |
| 图像/音效/本地化 | 地图 • 图形 • 盾徽 • 肖像 • 界面 • 小地图 • 音乐 • 本地化 |
| 其他 | 故障排除 • 验证器 • 控制台指令 • 编辑游戏存档 • Steam创意工坊 • EU4转档器模组制作 |
Definition.csvEU4转档器模组制作LocalisationMinimap moddingNudgePositions.txtProvinces.bmpSteam创意工坊TerrainTitle moddingTroubleshooting事件模组制作作用域修正内阁成员模组制作决议模组制作剧本模组制作单位模组制作历史模组制作另类开局模组制作图形模组制作地图外政权模组制作头衔模组制作奇观模组制作宗教模组制作定义宝物模组制作宣战理由模组制作家族模组制作小地图模组制作建筑模组制作指令控制台指令政体模组制作故障排除文化模组制作朝贡国类型模组制作本地化条件模组制作死亡模组制作法律模组制作游戏规则模组制作特质模组制作界面模组制作疾病模组制作目标模组制作盾徽模组制作省份模组制作社团模组制作科技模组制作称号模组制作继承模组制作编辑游戏存档肖像模组制作脚本荣誉头衔模组制作血脉模组制作角色模组制作贸易路线模组制作