地图模组制作:修订间差异

本页面所适用的版本可能已经过时,最后更新于1.1
 
(未显示3个用户的14个中间版本)
第1行: 第1行:
{{version|1.1}}{{需要翻译}}
{{version|1.1}}{{需要翻译}}
 在 十字军之 王III》 中,可以修改游戏地图。这包括编辑陆地、海洋、河流和省份。关于修改 标题 ,请 [[title modding]].
 在[[ 十字军之 王 III]] 中,可以修改游戏地图。这包括编辑陆地、海洋、河流和省份。关于修改 头衔 ,请 [[ 头衔模组制作]]


==  高程图 ==
==  如何开始 ==
[[File:Heightmap example.png|thumb|right|An example heightmap of Ireland and part of Britain]]
  这样打开 地图 编辑器:
  高程图是每张 地图 的基础,定义了非纸质地图的整体形状。高度图用灰度图像表示,其中黑色是可能的最低海拔,白色是可能的最高海拔。


=== 创建 高度图 ===
* Navigate to the Steam Library, right-click on CK3 and open properties.
对于现实世界 地点 美国航天局通过 "Blue Marble project"项目 的地 部分向公众提供详细 高度图
* Under the General tab, and within the "LAUNCH OPTIONS" section type -mapeditor in the specified field.
* Simply open CK3. Do this with a map that functions before you try to use anything you've created. You can import new assets later from within the editor.
* 导航至STEAM库中,右击CK3打开“属性”
* 在“通用”菜单下,“启动选项”一栏输入“-mapeditor”
* 打开CK3。在你尝试使用你所 创建的 任何东西之前 先用这个方式打开一个能够正常工作 的地图 。之后你就可以在编辑器内导入新 资源 (英文描述先不要删除,这句话翻译可能有歧义)


  虚构 的高 通常 使用软件组合创建 的, 通常是Photoshop或GIMP等 图像 编辑器和World Machine或Gaea等地形生成软件
== 高度地图 ==
[[File:Heightmap example.png|thumb|right|爱尔兰和不列颠部分地区 的高 度地图示例]]
高度地 图是 每张地图 基础 定义了非羊皮纸地图的整体形状。高度地图用灰度 图像 表示,其中黑色是可能的最低海拔,白色是可能的最高海拔


===  文件 ===
===  创建 度地 图 ===
 高度图 在"[mod]/map_data/heightmap.png "中找到,并且必须保存为16位灰度图像
  对于现实世界的地点,美国航天局通过“Blue Marble project”项目的地形图部分向公众提供详细的 高度图。


 高度图 的尺寸必须符 "[mod]/map_data/heightmap.heightmap "中定义 "original_heightmap_size"
  虚构的 高度 通常是使用软件组 创建 ,通常是Photoshop或GIMP等图像编辑器和World Machine或Gaea等地形生成软件


===  其他heightmap 文件 ===
===  主高度地图 文件 ===
  除了 "heightmap.png "之外,还有两个重要的'''自动生成''' 高度图 文件,"indirection_heightmap.png "和 "packed_heightmap.png"。当高度图被重新打包 并保存 时,CK3地 编辑器会创建这两个文件
 高度 在“[mod]/map_data/heightmap.png ”中找到, 且必须 保存 为16位灰度


[[File:Repack.png|thumb|left]]
高度地图的尺寸必须符合“[mod]/map_data/heightmap.heightmap”中定义的“original_heightmap_size”。
 
=== 其他高度地图文件 ===
除了“heightmap.png”之外,还有两个重要的'''自动生成'''高度地图文件,“indirection_heightmap.png”和 “packed_heightmap.png”。当高度地图被{{Ruby|重新打包|repack}}并保存时,CK3地图编辑器会创建这两个文件。
 
[[File:Repack.png|thumb|left]]
==== 重新打包 ====
==== 重新打包 ====
 当主heightmap.png被改变时,你必须在地图编辑器中 " 重新打包 " 以使河流、边界和 标题 等符合新 的heightmap 。如果你有任何问题,如东西似乎不 " 服从 " 高度图,第一个解决问题的步骤应该是重新打包。
 当主heightmap.png被改变时,你必须在地图编辑器中 “{{Ruby| 重新打包|repack}}” 以使河流、边界和 头衔 等符合新 的高度地图 。如果你有任何问题,如东西似乎不 服从 高度 图,第一个解决问题的步骤应该是{{Ruby| 重新打包|repack}}


== River map ==
== 河流地图 ==
[[File:Rivermap example.png|thumb|right|An example river map of Ireland and part of Britain]]
[[File:Rivermap example.png|thumb|right| 爱尔兰和不列颠部分地区的河流地图示例]]
 河流地图是一个定义海岸和河流的特殊文件,它既被地形引擎用来在地图上绘制河流,也用来定义军队过河的位置。它不用于通航的河流或其他水体。
 河流地图是一个定义海岸和河流的特殊文件,它既被地形引擎用来在地图上绘制河流,也用来定义军队过河的位置。它不用于通航的河流或其他水体。


''' 不正确 创建的河流地图将导 致CTD''。它们必须是索引的RGB图像,具有非常特定的调色板;在创建河图时,防止崩溃的最好方法是 开始 使用游戏的原始河图 "[CK3目录]/game/map_data/rivers.png " 中找到。除了原始颜色索引中的颜色外,任何其他颜色,包括反锯齿或透明,都会导 致CTD
''' 错误 创建的河流地图将导 致游戏崩溃并跳回桌面'''。它们必须是索引的RGB图像,具有非常特定的调色板;在创建河 流地 图时,防止崩溃的最好方法是 使用游戏的原始河 流地 [CK3目录]/game/map_data/rivers.png 中找到 。除了原始颜色索引中的颜色外,任何其他颜色,包括反锯齿或透明,都会导 致游戏崩溃并跳回桌面


=== 了解河图颜色 ===
=== 了解河 流地 图颜色 ===
[[File:River map color table.png|128px|thumb|left]]
[[File:River map color table.png|128px|thumb|left]]
 河流地图应该是有颜色索引的,这意味着它们是用特殊编码保存的, 表示 只能使用某些特定的颜色。
 河流地图应该是有颜色索引的,这意味着它们是用特殊编码保存的,只能使用某些特定的颜色。


 每种颜色都有特定的含义,由游戏引擎转化为好看的河流。
 每种颜色都有特定的含义,由游戏引擎转化为好看的河流。
#00ff00(纯绿色)表示河流系统的源头。
* #00ff00(纯绿色)表示河流系统的源头。
* #ff0000( 纯红色) 表示一条支流 主河 相通
* #ff0000 纯红色 表示一条支流 进入 主河。
* #fffc00( 纯黄色) 表示分
* #fffc00 纯黄色 表示 河流向外
* #ff0080(洋红色)表示海洋、湖泊和通航河流。
* #ff0080(洋红色)表示海洋、湖泊和通航河流。
* #ffffff(白色)表示陆地。
* #ffffff(白色)表示陆地。
 其余颜色为浅蓝色到深蓝色的渐变,蓝色越深,河流越宽。
 其余颜色为浅蓝色到深蓝色的渐变,蓝色越深,河流越宽。


===像素完美 ===
=== 像素完美 ===
[[File:River validity.png|thumb|right]] 每个河流像素必须与不超过2个其他河流像素正交相邻,分 连接 必须与不超过3个其他河流像素相邻。两个像素宽的河流''''将导致崩溃'', 仅用对角线像素连接的河流将无法渲染。
[[File:River validity.png|thumb|right]] 每个河流像素必须与不超过2个其他河流像素正交相邻,分 流入 必须与不超过3个其他河流像素相邻。两个像素宽的河流 以及 仅用对角线像素连接的河流将无法渲染。


=== 绘制程序 ===
=== 绘制程序 ===
[[File:River special pixels.png|thumb|right]]
[[File:River special pixels.png|thumb|right]]
 你可以认为CK3的河道绘制算法基本上是以三种特殊像素颜色(红、黄、绿)中的一种作为起点来绘制河段,其中绿色的那个是整个河系的起点。每条河段的一端应该有三种像素类型中的一种,另一端则没有。这意味着一条河流不能像现实生活中经常发生的那样,离开母体又重新加入母体。河段边上的红色和黄色像素与这个限制是分开的,因为它们会生成新的河段。三种河流类型中的每一种也决定了它生成的河段的流向。绿色和黄色像素使河流远离它们,红色像素使河流流向它们。
 你可以认为CK3的河道绘制算法基本上是以三种特殊像素颜色(红、黄、绿)中的一种作为起点来绘制河段,其中绿色的那个是整个河系的起点。每条河段的一端应该有三种像素类型中的一种,另一端则没有。这意味着一条河流不能像现实生活中经常发生的那样,离开母体又重新加入母体。河段边上的红色和黄色像素与这个限制是分开的,因为它们会生成新的河段。三种河流类型中的每一种也决定了它生成的河段的流向。绿色和黄色像素使河流远离它们,红色像素使河流流向它们。


==== 河源====
==== 河源 ====


 每条河流''系统''应该只有一个源像素;这意味着如果一条河流有任何支流,这些支流不应该有绿色的源像素。
 每条河流''系统''应该只有一个源像素;这意味着如果一条河流有任何支流,这些支流不应该有绿色的源像素。
第54行: 第64行:
=== 水下河道技巧 ===
=== 水下河道技巧 ===


 河流地图上的粉色和白色只供你参考 它们都有 一个共同的代号,那就 不属于 河流。因此,你可以像在陆地上一样轻松地 通过 水画出河流,只是不 会被看出来 。当一条河流在湖泊或大海中结束时,建议将河流延续几个像素进入粉色区域(甚至完全穿过小湖泊,如果它在另一边再次出口的话),这样CK3可以更好地理解河流末端的方向性。
 河流地图上的粉色和白色只 供你参考 它们都有 是河流 的编码含义 。因此,你可以像在陆地上一样轻松地 画出河流,只是不 可见而已 。当一条河流在湖泊或大海中结束时,建议将河流延续几个像素进入粉色区域(甚至完全穿过小湖泊,如果它在另一边再次出口的话),这样CK3可以更好地理解河流末端的方向性。


 如果您有复杂的河流系统,也要穿过湖泊,这也是很有帮助的,因为它为您提供了一个额外的工具来协调现实生活中河流属性和CK3引擎功能之间的差异。
 如果您有复杂的河流系统,也要穿过湖泊,这也是很有帮助的,因为它为您提供了一个额外的工具来协调现实生活中河流属性和CK3引擎功能之间的差异。


== 省地图 ==
== 省 地图 ==
[[File:Province map example.png|thumb|right|爱尔兰和 英国 部分地区的省份地图示例]]
[[File:Province map example.png|thumb|right|爱尔兰和 不列颠 部分地区的省份地图示例]] 
 省地图定义了男爵领 和海区。在 省地图中,每个 省/海区都以独特的颜色来定义。就像河流地图一样, 省地图必须避免反锯齿和透明度。
 省 地图定义了男爵领和海区。在省 地图中,每个省 /海区都以独特的颜色来定义。就像河流地图一样,省 地图必须避免反锯齿和透明度。


 省地图不能定义 、公国、王国或帝国。要定义 、公国、王国和帝国,你需要在landed_titles文件夹中定义它们。
 省 地图不能定义 伯爵领 、公国、王国或帝国。要定义 伯爵领 、公国、王国和帝国,你需要在landed_titles文件夹中定义它们。


== 创建 标题 ==
== 创建 头衔 ==
 创建头衔的方法是将省地图中的颜色与男爵、 、公国、王国和帝国的定义联系起来。这个过程包括以下步骤。
 创建头衔的方法是将省 地图中的颜色与男爵 伯爵领 、公国、王国和帝国的定义联系起来。这个过程包括以下步骤。
# 创建一个省地图来定义 个男爵领
# 创建一个省 地图来定义个 男爵领。
#通过"[mod]/map_data/definition.csv " 省地图中的RGB来识别男爵领
# 通过 [mod]/map_data/definition.csv 地图中的RGB来识别男爵领。
# 在"[mod]/common/landed_titles/" 中的新文件中定义你的头衔 继承权
# 在 [mod]/common/landed_titles/ 中的新文件中定义你的头衔 层级
# 在"[mod]/localization/[language]/" 中新建一个文件,为你的 标题 创建本地化。
# 在 [mod]/localization/[language]/ 中新建一个文件,为你的 头衔 创建本地化。


=== 定男爵 ===
=== 男爵 ===
 要把省地图的颜色变成可用的男爵领地,你必须在 "definition.csv" 文件中定义它们。
 要把省 地图的颜色变成可用的男爵领地,你必须在 “definition.csv 文件中定义它们。


 男爵领 定义的格式是
 男爵领定义的格式是
    [ID];[RED];[GREEN];[BLUE];[Barony Name];x
    [ID];[RED];[GREEN];[BLUE];[Barony Name];x;
    # 例如:
    # 例如
    2333;128;183;194;PARIS;x;
    2333;128;183;194;PARIS;x;


'''ID必须是 有顺序 的,否则你的游戏会崩溃''
'''ID必须是 是连续 的,否则你的游戏会崩溃 。'''
    # 这将工作。
    # 这将工作。
    1;42;3;128;CAMELOT;x;
    1;42;3;128;CAMELOT;x;
    2;84;6;1;AVALON;x
    2;84;6;1;AVALON;x;
    3;126;9;129;TINTAGEL;x;
    3;126;9;129;TINTAGEL;x;
    
    
    # 这将导致崩溃。
    # 这将导致崩溃。
    1;42;3;128;CAMELOT;x;
    1;42;3;128;CAMELOT;x;
    4;84;6;1;AVALON;x
    4;84;6;1;AVALON;x;
    19;126;9;129;TINTAGEL;x;
    19;126;9;129;TINTAGEL;x;


===  所有权 ===
===  头衔 ===
  所有权 和法律上的 级必须在"[mod]/common/landed_titles/" 中定义。基本结构如下。
  头衔 和法律上的 级必须在 [mod]/common/landed_titles/ 中定义。基本结构如下。


 名称(e_empire_tier ,k_kingdom_tier等) 只是举例,"color " 可以是任何你喜欢的RGB值,但 "color2 " 是静态的,有效的 大写字母 郡名 。任 何一个层 级都可以包含下一 个下层 的多个 (比如1个帝国有5个王国)。
 名称 (e_empire_tier ,k_kingdom_tier等 只是举例, “color” 可以是任何你喜欢的RGB值,但 “color2” 是静态的,有效的 首都 伯爵领头衔 。任 意等 头衔 都可以包含 多个 下一 头衔 (比如1个帝国有5个王国)。


 男爵 在游戏中出现的顺序与文件中的顺序相同。即第一个将是默认的首 。引擎将使用"[mod]\history\provinces@_title.txt " 中设置的首 男爵的文化和宗教来确定其 的文化和宗教 在任何设定的日期
 男爵 在游戏中出现的顺序与文件中的顺序相同。即第一个将是默认的首 。引擎将使用 [mod]\history\provinces@_title.txt 中设置 的在任何设定日期 的首 男爵 的文化和宗教来确定其 伯爵领 的文化和宗教。


   e_empire_tier = {
   e_empire_tier = {
第119行: 第129行:
              color = { 0 0 0 }
              color = { 0 0 0 }
              color2 = { 255 255 255 }
              color2 = { 255 255 255 }
              province = id (defined in map_data/definition.csv)
              province = id (在map_data/definition.csv 中定义)
            }
            }
          }
          }
第125行: 第135行:
      }
      }
    }
    }
== 省份的地形 ==
You can set each province's terrain in [mod]/common/province_terrain/00_province_terrain.txt.
Each line's format is [prov_id]=[terrain] (plains/farmlands/hills/mountains/desert/desert_mountains/oasis/jungle/forest/taiga/wetlands/steppe/floodplains/drylands).
Note that the modification will take effect immediately in the game.
你可以在[mod]/common/province_terrain/00_province_terrain.txt文件中设置每个省份的地形。
每一行的格式为[prov_id]=[terrain] (plains/farmlands/hills/mountains/desert/desert_mountains/oasis/jungle/forest/taiga/wetlands/steppe/floodplains/drylands)。
注意,修改效果会在游戏内立即生效。


== 地图定位器 ==
== 地图定位器 ==


 一旦定义了男爵领 ,就可以定义其四个主要定位对象的位置 (position) 。这将告诉引擎每 瓦的举起的 军队(船的位置) 的位置 ,以及地图上每个男爵的 守备 建筑、军队、军队战斗和攻城武器对象的位置。这四个定位器的位置分别在building_locators.txt, combat_locators.txt, player_stack_locators.txt and siege_locators.txt,这些文件可以在"[mod]/gfx/map/map_object_data/" 中找到。
 一旦定义了男爵领,就可以定义其四个主要定位{{Ruby| 对象|object}} {{Ruby| 位置|position}} 。这将告诉引擎每 区被调集 军队 的放置位置 (船的位置),以及地图上每个男爵的 地产 建筑、 被调集 军队、军队战斗和攻城武器对象的位置。这四个定位器的位置分别在building_locators.txt 、combat_locators.txt 、player_stack_locators.txt 和siege_locators.txt 中定义 ,这些文件可以在 [mod]/gfx/map/map_object_data/ 中找到。


 在这些文件中,每 个barony 都由一个实例来表示,在这个实例中可以设置地图对象的位置、旋转和比例。 例如,下面的代码定义了一个单一 的barony 的定位器,ID=1,标准尺寸,地图上的坐标为x=2000,y=1000
 在这些文件中,每 个男爵领 都由一个{{Ruby| 实例|instance}} 来表示,在这个实例中可以设置地图对象的位置、旋转和比例。例如,下面的代码定义了一个单一 的男爵领 的定位器,ID=1,标准尺寸,地图上的坐标为x=2000,y=1000


    instances={
    instances={
第141行: 第165行:
    }
    }


 这些数值,特别 提出了 军队在海陆 省的位置,用于定义部队移动 径指示 。在任何时候,都可以使用游戏中地图编辑器中的地图对象编辑器来微调这些对象的位置、旋转和比例。
 这些数值,特别 是被调集 军队在海陆省 的位置,用于定义部队移动 路。在任何时候,都可以使用游戏中地图编辑器中的{{Ruby| 地图对象编辑器|Map Objects Editor}} 来微调这些对象的位置、旋转和比例。


 要注意的是,如果一 个mod 的定位器文件有任何严重的问题,error.log应该会显示在"[用户]/[文档]/Paradox Interactive/Crusader Kings III/generated " 文件夹中创建了四个文件(一般是 持有 建筑、 举起的 军队、军队战斗和攻城武器定位器文本文件)。您可以将这些文件复制到您 的mod "[mod]/gfx/map/map_object_data/" 文件夹中,替换旧文件并重新启动游戏中的地图编辑器。
 要注意的是,如果一 个模组 的定位器文件有任何严重的问题,error.log应该会显示在 [用户]/[文档]/Paradox Interactive/Crusader Kings III/generated 文件夹中创建了四个文件(一般是 地产 建筑、 被调集 军队、军队战斗和攻城武器定位器文本文件)。您可以将这些文件复制到您的 模组的“[mod]/gfx/map/map_object_data/ 文件夹中,替换旧文件并重新启动游戏中的地图编辑器。


=== 自动推移 ===
=== 自动推移 ===


 游戏中的地图编辑器包含了一个自动推移工具(由对象放置模式上的骰子按钮表示),允许用户自动生成陆地省份的对象定位文件,并在给定省份内随机测试新的对象位置。要使用它,编辑器应该使用省选择工具,选择它想要随机 的省,然后点击推移工具按钮。然后,地图编辑器应该尝试在所有选定的省份上生成每个默认对象。
 游戏中的地图编辑器包含了一个{{Ruby| 自动推移|Auto nudge}} 工具(由{{Ruby| 对象放置模式|object placement mode}} 上的骰子按钮表示),允许用户自动生成陆地省份的对象定位文件,并在给定省份内随机测试新的对象位置。要使用它,编辑器应该使用省 选择工具,选择它想要随机的省 ,然后点击推移工具按钮。然后,地图编辑器应该尝试在所有选定的省份上生成每个默认对象。


 如果有任何无效的位置(例如由于缺乏有效的 产卵 空间而在该省的区域外 产卵 的对象),受影响的省份将在地图上以红色条纹交叉。要解决这个问题,用户就应该选择任何被红色条纹划过的省份,然后通过再次点击自动推移按钮尝试新的随机有效位置,或者手动将任何无效的对象拖入该省份。
 如果有任何无效的位置(例如 由于缺乏有效的 生成 空间而在该省 的区域外 生成 的对象),受影响的省份将在地图上以红色条纹交叉 显示 。要解决这个问题,用户就应该选择任何被红色条纹划过的省份,然后通过再次点击自动推移按钮尝试新的随机有效位置,或者手动将任何无效的对象拖入该省份。


 游戏中的地图编辑器还允许用户对自动推移工具的 产卵 设置进行微调。为了方便使用自动推移工具进行随机放置,用户可以 减少 物体的碰撞框,或者调整每个物体之间的最小和最大距离。用户应该注意的是,默认攻城引擎的设置是经过优化的,这样攻城引擎的动画就能正确地与 持有 建筑对象进行交互。
 游戏中的地图编辑器还允许用户对自动推移工具的 生成 设置进行微调。为了方便使用自动推移工具进行随机放置,用户可以 缩小 物体的碰撞框,或者调整每个物体之间的最小和最大距离。用户应该注意的是,默认攻城引擎的设置是经过优化的,这样攻城引擎的动画就能正确地与 地产 建筑对象进行交互。


== 连接 ==
== 连接 ==
 男爵领 可以通过两种方式连接:拥有相邻的像素,或者在"[mod]/map_data/adjacencies.csv " 中定义连接。
 男爵领可以通过两种方式连接:拥有相邻的像素,或者在 [mod]/map_data/adjacencies.csv 中定义连接。


"adjacencies.csv " 中的条目采用的格式是
“adjacencies.csv 中的条目采用的格式是
    ID From;ID To;Type;ID Through;start_x;start_y;stop_x;stop_y;Comment
    ID From;ID To;Type;ID Through;start_x;start_y;stop_x;stop_y;Comment
    #For example:
    # 例如:
    1527;1526;river_large;629;948;2791;-1;-1;London-Southwark
    1527;1526;river_large;629;948;2791;-1;-1;London-Southwark
    -1;-1;;-1;-1;-1;-1;-1;
    -1;-1;;-1;-1;-1;-1;-1;
* ID From、ID To和ID Through都 是ID。
* ID From、ID To和ID Through都 “definitions.csv 中找到 的ID
"definitions.csv " 中找到
* ID From和ID To是男爵领;ID Through是海 或可航行的河流。
* ID From和ID To是男爵领 ;ID Through是 海或可航行的河流。
* 类型为 “sea” “river_large”
* 类型为 "海 " "大河"
* start_x 和start_y  一个 军队在 “ID From ”男爵领 出发 的坐标(x,y)。
* start_x start_y 是军队在 "ID From "部落 " 出发 " 的坐标(x,y)。
* stop_x和stop_y是一个军队在 “ID To 部落中 登陆 的坐标(x,y)。
* stop_x和stop_y是一个军队在 "ID To " 部落中 " 登陆 " 的坐标(x,y)。
* start_x、start_y、stop_x和stop_y都可以使用 -1 来代替实际坐标,这将默认为军队在该 男爵领 的正常位置。
* start_x、start_y、stop_x和stop_y都可以使用"-1 " 来代替实际坐标,这将默认为军队在该 部落 的正常位置。
* 保留文件末尾的 -1;-1;;-1;-1;-1;-1;-1;
* 保留文件末尾的"-1;-1;;-1;-1;-1;-1;-1;"


== Creating a Map with a Custom Resolution ==
== 使用自定义分辨率创建地图 ==
'''Note:''' width and height are the new widths and height you are setting for your mod
''' 注意:''' 宽度和高度是您为您的模组设置的新宽度和高度。


* common/defines/00_defines.txt:
* common/defines/00_defines.txt:
    WORLD_EXTENTS_X # Should be: map width - 1 
    WORLD_EXTENTS_X # 应该是地图宽度 - 1 
    WORLD_EXTENTS_Z # Shoud be: map height - 1 
    WORLD_EXTENTS_Z # 应该是地图高度 - 1 
   WATERLEVEL # Corresponds to the heights from the heightmap - if too low, no oceans/lakes will appear. If too high, the entire map will be covered with water


* common/defines/graphics/00_graphics.txt
* common/defines/graphics/00_graphics.txt
    PANNING_WIDTH # However far you want the player to be able to pan left to right. Panning to the edge would mean this is equal to map width
    PANNING_WIDTH # 无论你想让玩家从左到右平移多远。平移到边缘将意味着这等于地图的宽度
    PANNING_HEIGHT # However far you want the player to be able to pan up and down. Panning to the edge would mean this is equal to map height
    PANNING_HEIGHT # 无论你想让玩家上下平移多远。平移到边缘将意味着这等于地图的高度




* /gfx/map/surround_map/surround_mask.dds   # Size should be: (width x height) * 1/2 
* /gfx/map/surround_map/surround_mask.dds   # 大小应该是:(宽度 x 高度)* 1/2 
* /gfx/map/surround_map/surround_fade.dds   # Size should be: (width x height) * 1/8 
* /gfx/map/surround_map/surround_fade.dds   # 大小应该是:(宽度 x 高度)* 1/8 
* /gfx/map/terrain/   # All files in this that have _mask (63 as of 1.3) or .tga (2 as of 1.3) in the name need to be resized TO: (width x height)
* /gfx/map/terrain/   # 所有名称中拥有_mask(截至1.3 版本有63个文件)或者.tga (截至1.3 版本有2个文件)需要调整大小到:(宽度 x 高度)
* flatmap.dds   # Size should be: (width x height)
** flatmap.dds   # 大小应该是:(宽度 x 高度)
* colormap.dds   # Size should be: (width x height) * 1/4
** colormap.dds   # 大小应该是:(宽度 x 高度)* 1/4
* detail_intensity.tga   # Size should be: (width x height)
** detail_intensity.tga   # 大小应该是:(宽度 x 高度)
* detail_index.tga   # Size should be: (width x height)
** detail_index.tga   # 大小应该是:(宽度 x 高度)
* ..._mask.png   # Size should be: (width x height)
** ..._mask.png   # 大小应该是:(宽度 x 高度)


* /gfx/map/water/flowmap.dds   # Size should be: (width x height) * 1/4 
* /gfx/map/water/flowmap.dds   # 大小应该是:(宽度 x 高度)* 1/4 
* /gfx/map/water/foam_map.dds   # Size should be: (width x height) * 1/8 
* /gfx/map/water/foam_map.dds   # 大小应该是:(宽度 x 高度)* 1/8 
* /gfx/map/water/watercolor_rgb_waterspec_a.dds   # Size should be: (width x height) * 1/2 
* /gfx/map/water/watercolor_rgb_waterspec_a.dds   # 大小应该是:(宽度 x 高度)* 1/2 


* /map_data/heightmap.png   # Size should be: (width x height) Ensure that this is in RGB format and not RGBA. If you get a white fog it might be because the heightmap was exported as RGBA. To fix this, you need to delete the alpha layer
* /map_data/heightmap.png   # 大小应该是:(宽度 高度)确保这是RGB格式而不是RGBA。如果你得到一片白雾,可能是因为高度图以RGBA格式导出。为了修复此问题,你需要删除alpha(透明)图层
* /map_data/provinces.png   # Size should be: (width x height) # Note, game will load even if the dimensions on this are wrong
* /map_data/provinces.png   # 大小应该是:(宽度 高度)# 注意,即使这个尺寸是错误的,游戏也会加载
* /map_data/rivers.png   # Size should be: (width x height)
* /map_data/rivers.png   # 大小应该是:(宽度 x 高度)
* /map_data/indirection_heightmap.png   # Size should be: (width x height) * 1/32 
* /map_data/indirection_heightmap.png   # 大小应该是:(宽度 x 高度)* 1/32 


* /map_data/heightmap.heightmap
* /map_data/heightmap.heightmap
    original_heightmap_size # Should be { width height
    original_heightmap_size # 应该是 { 宽度 高度


* /content_source/map_objects/masks   # All files in this that have _mask (21 as of 1.0) need to be resized TO: (width x height) * 1/2 
* /content_source/map_objects/masks   # 所有拥有_mask的文件(截至1.0 版本有21个文件)需要调整大小到(宽度 x 高度)* 1/2 




=== How to import the heightmap ===
=== 如何导入高度地图 ===
If you are struggling to get the custom heightmap to load or repack (this can be especially problematic with larger heightmaps) try the following procedure. This works as of 1.1.3:
如果您在加载或重新打包自定义高度地图时遇到困难(尤其是大的高度地图,这可能会有问题),请尝试以下步骤。这在1.1.3 时有效。


# Copy the vanilla indirection_heightmap.png and packed_heightmap.png over to the mod's map_data directory
# 将游戏本体的indirection_heightmap.png 和packed_heightmap.png 复制到模组的map_data目录下。
# Delete indirection_heightmap.png and packed_heightmap.png in the vanilla folder
# 删除游戏本体文件夹中的indirection_heightmap.png 和packed_heightmap.png
# Load the map editor and repack the map. The repacked map files should be in the vanilla map_data directory
# 加载地图编辑器并重新打包地图。重新打包的地图文件应该在游戏本体map_data目录下。
# Copy the new indirection_heightmap.png and packed_heightmap.png from the vanilla directory to the mod's map_data directory
# 将新的indirection_heightmap.png 和packed_heightmap.png 从游戏本体目录中复制到模组的 map_data 目录中。
# For Steam users, verify the integrity of the game cache to redownload the vanilla indirection_heightmap.png and packed_heightmap.png files
# 对于Steam用户,请验证游戏缓存的完整性,重新下载游戏本体indirection_heightmap.png 和packed_heightmap.png 文件。


== 常见问题 ==


== Frequently asked questions ==
=== 为什么我不能一直向右滚动?===
你必须打开common/defines/graphics/00_graphics.txt,并设置为
PANNING_WIDTH = 8192
或任何你的地图的等效像素宽度。


=== Why can't I scroll all the way to the right? ===
=== 为什么我不能使用自动推移(骰子)按钮来放置我的建筑和定位器?===
You have to open common/defines/graphics/00_graphics.txt and set
  由于一个错误,在你可以自动推移''之前'',你需要一些定义。幸运的是,游戏会为你生成它们。
PANNING_WIDTH = 8192
or whatever the equivalent pixel width of your map is.


=== Why can't I use the auto-nudge (dice) button to place my buildings and locators? ===
复制以下目录中的所有文件:
Due to a bug, you'll need to have those defined ''before'' you can auto nudge. Luckily the game generates them for you.
 
Copy all of the files in:
    C:\Users\[user]\Documents\Paradox Interactive\Crusader Kings III\generated
    C:\Users\[user]\Documents\Paradox Interactive\Crusader Kings III\generated
 
将它们粘贴到:
Paste them into:
    \gfx\map\map_object_data
    \gfx\map\map_object_data



2021年7月20日 (二) 19:36的最新版本

十字军之王 III中,可以修改游戏地图。这包括编辑陆地、海洋、河流和省份。关于修改头衔,请见头衔模组制作

如何开始[编辑 | 编辑源代码]

这样打开地图编辑器:

  • Navigate to the Steam Library, right-click on CK3 and open properties.
  • Under the General tab, and within the "LAUNCH OPTIONS" section type -mapeditor in the specified field.
  • Simply open CK3. Do this with a map that functions before you try to use anything you've created. You can import new assets later from within the editor.
  • 导航至STEAM库中,右击CK3打开“属性”
  • 在“通用”菜单下,“启动选项”一栏输入“-mapeditor”
  • 打开CK3。在你尝试使用你所创建的任何东西之前,先用这个方式打开一个能够正常工作的地图。之后你就可以在编辑器内导入新的资源。(英文描述先不要删除,这句话翻译可能有歧义)

高度地图[编辑 | 编辑源代码]

爱尔兰和不列颠部分地区的高度地图示例

高度地图是每张地图的基础,定义了非羊皮纸地图的整体形状。高度地图用灰度图像表示,其中黑色是可能的最低海拔,白色是可能的最高海拔。

创建高度地图[编辑 | 编辑源代码]

对于现实世界的地点,美国航天局通过“Blue Marble project”项目的地形图部分向公众提供详细的高度图。

虚构的高度地图通常是使用软件组合创建的,通常是Photoshop或GIMP等图像编辑器和World Machine或Gaea等地形生成软件。

主高度地图文件[编辑 | 编辑源代码]

高度地图在“[mod]/map_data/heightmap.png”中找到,并且必须保存为16位灰度图像。

高度地图的尺寸必须符合“[mod]/map_data/heightmap.heightmap”中定义的“original_heightmap_size”。

其他高度地图文件[编辑 | 编辑源代码]

除了“heightmap.png”之外,还有两个重要的自动生成高度地图文件,“indirection_heightmap.png”和 “packed_heightmap.png”。当高度地图被 重新打包repack并保存时,CK3地图编辑器会创建这两个文件。

Repack.png

重新打包[编辑 | 编辑源代码]

当主heightmap.png被改变时,你必须在地图编辑器中“ 重新打包repack”以使河流、边界和头衔等符合新的高度地图。如果你有任何问题,如东西似乎不“服从”高度地图,第一个解决问题的步骤应该是 重新打包repack

河流地图[编辑 | 编辑源代码]

爱尔兰和不列颠部分地区的河流地图示例

河流地图是一个定义海岸和河流的特殊文件,它既被地形引擎用来在地图上绘制河流,也用来定义军队过河的位置。它不用于通航的河流或其他水体。

错误创建的河流地图将导致游戏崩溃并跳回桌面。它们必须是索引的RGB图像,具有非常特定的调色板;在创建河流地图时,防止崩溃的最好方法是先使用游戏的原始河流地图(在“[CK3目录]/game/map_data/rivers.png”中找到)。除了原始颜色索引中的颜色外,任何其他颜色,包括反锯齿或透明,都会导致游戏崩溃并跳回桌面。

了解河流地图颜色[编辑 | 编辑源代码]

River map color table.png

河流地图应该是有颜色索引的,这意味着它们是用特殊编码保存的,只能使用某些特定的颜色。

每种颜色都有特定的含义,由游戏引擎转化为好看的河流。

  • #00ff00(纯绿色)表示河流系统的源头。
  • #ff0000(纯红色)表示一条支流进入主河。
  • #fffc00(纯黄色)表示河流向外分支。
  • #ff0080(洋红色)表示海洋、湖泊和通航河流。
  • #ffffff(白色)表示陆地。

其余颜色为浅蓝色到深蓝色的渐变,蓝色越深,河流越宽。

像素完美[编辑 | 编辑源代码]

River validity.png

每个河流像素必须与不超过2个其他河流像素正交相邻,分流和流入必须与不超过3个其他河流像素相邻。两个像素宽的河流以及仅用对角线像素连接的河流将无法渲染。

绘制程序[编辑 | 编辑源代码]

River special pixels.png

你可以认为CK3的河道绘制算法基本上是以三种特殊像素颜色(红、黄、绿)中的一种作为起点来绘制河段,其中绿色的那个是整个河系的起点。每条河段的一端应该有三种像素类型中的一种,另一端则没有。这意味着一条河流不能像现实生活中经常发生的那样,离开母体又重新加入母体。河段边上的红色和黄色像素与这个限制是分开的,因为它们会生成新的河段。三种河流类型中的每一种也决定了它生成的河段的流向。绿色和黄色像素使河流远离它们,红色像素使河流流向它们。

河源[编辑 | 编辑源代码]

每条河流系统应该只有一个源像素;这意味着如果一条河流有任何支流,这些支流不应该有绿色的源像素。

水下河道技巧[编辑 | 编辑源代码]

河流地图上的粉色和白色只是供你参考;它们都有不是河流的编码含义。因此,你可以像在陆地上一样轻松地在水中画出河流,只是不可见而已。当一条河流在湖泊或大海中结束时,建议将河流延续几个像素进入粉色区域(甚至完全穿过小湖泊,如果它在另一边再次出口的话),这样CK3可以更好地理解河流末端的方向性。

如果您有复杂的河流系统,也要穿过湖泊,这也是很有帮助的,因为它为您提供了一个额外的工具来协调现实生活中河流属性和CK3引擎功能之间的差异。

省份地图[编辑 | 编辑源代码]

爱尔兰和不列颠部分地区的省份地图示例

省份地图定义了男爵领和海区。在省份地图中,每个省份/海区都以独特的颜色来定义。就像河流地图一样,省份地图必须避免反锯齿和透明度。

省份地图不能定义伯爵领、公国、王国或帝国。要定义伯爵领、公国、王国和帝国,你需要在landed_titles文件夹中定义它们。

创建头衔[编辑 | 编辑源代码]

创建头衔的方法是将省份地图中的颜色与男爵领、伯爵领、公国、王国和帝国的定义联系起来。这个过程包括以下步骤。

  1. 创建一个省份地图来定义个别男爵领。
  2. 通过“[mod]/map_data/definition.csv”省份地图中的RGB来识别男爵领。
  3. 在“[mod]/common/landed_titles/”中的新文件中定义你的头衔层级。
  4. 在“[mod]/localization/[language]/”中新建一个文件,为你的头衔创建本地化。

定义男爵领[编辑 | 编辑源代码]

要把省份地图的颜色变成可用的男爵领地,你必须在“definition.csv”文件中定义它们。

男爵领定义的格式是

   [ID];[RED];[GREEN];[BLUE];[Barony Name];x;
   # 例如:
   2333;128;183;194;PARIS;x;

ID必须是是连续的,否则你的游戏会崩溃。

   # 这将工作。
   1;42;3;128;CAMELOT;x;
   2;84;6;1;AVALON;x;
   3;126;9;129;TINTAGEL;x;
   
   # 这将导致崩溃。
   1;42;3;128;CAMELOT;x;
   4;84;6;1;AVALON;x;
   19;126;9;129;TINTAGEL;x;

实地头衔[编辑 | 编辑源代码]

实地头衔和法律上的层级必须在“[mod]/common/landed_titles/”中定义。基本结构如下。

名称(e_empire_tier,k_kingdom_tier等)只是举例,“color”可以是任何你喜欢的RGB值,但“color2”是静态的,有效的首都是伯爵领头衔。任意等级头衔都可以包含多个下一等级头衔(比如1个帝国有5个王国)。

男爵领在游戏中出现的顺序与文件中的顺序相同。即第一个将是默认的首府。引擎将使用“[mod]\history\provinces@_title.txt”中设置的在任何设定日期的首府男爵领的文化和宗教来确定其伯爵领的文化和宗教。

 e_empire_tier = {
       color = { 0 0 0 }
       color2 = { 255 255 255 }
       capital = c_county_tier
   
       k_kingdom_tier = {
           color = { 0 0 0 }
           color2 = { 255 255 255 }
           capital = c_county_tier
   
           d_duchy_tier = {
               color = { 0 0 0 }
               color2 = { 255 255 255 }
               capital = c_county_tier
   
               c_county_tier = {
                   color = { 0 0 0 }
                   color2 = { 255 255 255 }
   
                   b_barony_tier = {
                       color = { 0 0 0 }
                       color2 = { 255 255 255 }
                       province = id(在map_data/definition.csv中定义)
                   }
               }
           }
       }
   }

省份的地形[编辑 | 编辑源代码]

You can set each province's terrain in [mod]/common/province_terrain/00_province_terrain.txt.

Each line's format is [prov_id]=[terrain] (plains/farmlands/hills/mountains/desert/desert_mountains/oasis/jungle/forest/taiga/wetlands/steppe/floodplains/drylands).

Note that the modification will take effect immediately in the game.

你可以在[mod]/common/province_terrain/00_province_terrain.txt文件中设置每个省份的地形。

每一行的格式为[prov_id]=[terrain] (plains/farmlands/hills/mountains/desert/desert_mountains/oasis/jungle/forest/taiga/wetlands/steppe/floodplains/drylands)。

注意,修改效果会在游戏内立即生效。

地图定位器[编辑 | 编辑源代码]

一旦定义了男爵领,就可以定义其四个主要定位 对象object位置position。这将告诉引擎每块海区被调集军队的放置位置(船的位置),以及地图上每个男爵的地产建筑、被调集军队、军队战斗和攻城武器对象的位置。这四个定位器的位置分别在building_locators.txt、combat_locators.txt、player_stack_locators.txt和siege_locators.txt中定义,这些文件可以在“[mod]/gfx/map/map_object_data/”中找到。

在这些文件中,每个男爵领都由一个 实例instance来表示,在这个实例中可以设置地图对象的位置、旋转和比例。例如,下面的代码定义了一个单一的男爵领的定位器,ID=1,标准尺寸,地图上的坐标为x=2000,y=1000:

   instances={
       {
           id=0
           position={ 2000.000000 0.000000 1000.000000 }
           rotation={ 0.000000 0.000000 0.000000 1.000000 }
           scale={ 1.000000 1.000000 1.000000 }
       }
   }

这些数值,特别是被调集军队在海陆省份的位置,用于定义部队移动寻路。在任何时候,都可以使用游戏中地图编辑器中的 地图对象编辑器Map Objects Editor来微调这些对象的位置、旋转和比例。

要注意的是,如果一个模组的定位器文件有任何严重的问题,error.log应该会显示在“[用户]/[文档]/Paradox Interactive/Crusader Kings III/generated”文件夹中创建了四个文件(一般是地产建筑、被调集军队、军队战斗和攻城武器定位器文本文件)。您可以将这些文件复制到您的模组的“[mod]/gfx/map/map_object_data/”文件夹中,替换旧文件并重新启动游戏中的地图编辑器。

自动推移[编辑 | 编辑源代码]

游戏中的地图编辑器包含了一个 自动推移Auto nudge工具(由 对象放置模式object placement mode上的骰子按钮表示),允许用户自动生成陆地省份的对象定位文件,并在给定省份内随机测试新的对象位置。要使用它,编辑器应该使用省份选择工具,选择它想要随机的省份,然后点击推移工具按钮。然后,地图编辑器应该尝试在所有选定的省份上生成每个默认对象。

如果有任何无效的位置(例如,由于缺乏有效的生成空间而在该省份的区域外生成的对象),受影响的省份将在地图上以红色条纹交叉显示。要解决这个问题,用户就应该选择任何被红色条纹划过的省份,然后通过再次点击自动推移按钮尝试新的随机有效位置,或者手动将任何无效的对象拖入该省份。

游戏中的地图编辑器还允许用户对自动推移工具的生成设置进行微调。为了方便使用自动推移工具进行随机放置,用户可以缩小物体的碰撞框,或者调整每个物体之间的最小和最大距离。用户应该注意的是,默认攻城引擎的设置是经过优化的,这样攻城引擎的动画就能正确地与地产建筑对象进行交互。

连接[编辑 | 编辑源代码]

男爵领可以通过两种方式连接:拥有相邻的像素,或者在“[mod]/map_data/adjacencies.csv”中定义连接。

“adjacencies.csv”中的条目采用的格式是:

   ID From;ID To;Type;ID Through;start_x;start_y;stop_x;stop_y;Comment
   #例如:
   1527;1526;river_large;629;948;2791;-1;-1;London-Southwark
   -1;-1;;-1;-1;-1;-1;-1;
  • ID From、ID To和ID Through都是在“definitions.csv”中找到的ID。
  • ID From和ID To是男爵领;ID Through是海洋或可航行的河流。
  • 类型为“sea”或“river_large”。
  • start_x和start_y 是一个军队在“ID From”男爵领中“出发”的坐标(x,y)。
  • stop_x和stop_y是一个军队在“ID To”部落中“登陆”的坐标(x,y)。
  • start_x、start_y、stop_x和stop_y都可以使用“-1”来代替实际坐标,这将默认为军队在该男爵领的正常位置。
  • 保留文件末尾的“-1;-1;;-1;-1;-1;-1;-1;”。

使用自定义分辨率创建地图[编辑 | 编辑源代码]

注意:宽度和高度是您为您的模组设置的新宽度和高度。

  • common/defines/00_defines.txt:
   WORLD_EXTENTS_X # 应该是地图宽度 - 1 
   WORLD_EXTENTS_Z # 应该是地图高度 - 1 
   WATERLEVEL # Corresponds to the heights from the heightmap - if too low, no oceans/lakes will appear. If too high, the entire map will be covered with water
  • common/defines/graphics/00_graphics.txt
   PANNING_WIDTH # 无论你想让玩家从左到右平移多远。平移到边缘将意味着这等于地图的宽度
   PANNING_HEIGHT # 无论你想让玩家上下平移多远。平移到边缘将意味着这等于地图的高度


  • /gfx/map/surround_map/surround_mask.dds # 大小应该是:(宽度 x 高度)* 1/2
  • /gfx/map/surround_map/surround_fade.dds # 大小应该是:(宽度 x 高度)* 1/8
  • /gfx/map/terrain/ # 所有名称中拥有_mask(截至1.3版本有63个文件)或者.tga(截至1.3版本有2个文件)需要调整大小到:(宽度 x 高度)
    • flatmap.dds # 大小应该是:(宽度 x 高度)
    • colormap.dds # 大小应该是:(宽度 x 高度)* 1/4
    • detail_intensity.tga # 大小应该是:(宽度 x 高度)
    • detail_index.tga # 大小应该是:(宽度 x 高度)
    • ..._mask.png # 大小应该是:(宽度 x 高度)


  • /gfx/map/water/flowmap.dds # 大小应该是:(宽度 x 高度)* 1/4
  • /gfx/map/water/foam_map.dds # 大小应该是:(宽度 x 高度)* 1/8
  • /gfx/map/water/watercolor_rgb_waterspec_a.dds # 大小应该是:(宽度 x 高度)* 1/2
  • /map_data/heightmap.png # 大小应该是:(宽度 x 高度)确保这是RGB格式而不是RGBA。如果你得到一片白雾,可能是因为高度图以RGBA格式导出。为了修复此问题,你需要删除alpha(透明)图层
  • /map_data/provinces.png # 大小应该是:(宽度 x 高度)# 注意,即使这个尺寸是错误的,游戏也会加载
  • /map_data/rivers.png # 大小应该是:(宽度 x 高度)
  • /map_data/indirection_heightmap.png # 大小应该是:(宽度 x 高度)* 1/32
  • /map_data/heightmap.heightmap
   original_heightmap_size # 应该是 { 宽度 高度 } 
  • /content_source/map_objects/masks # 所有拥有_mask的文件(截至1.0版本有21个文件)需要调整大小到(宽度 x 高度)* 1/2


如何导入高度地图[编辑 | 编辑源代码]

如果您在加载或重新打包自定义高度地图时遇到困难(尤其是大的高度地图,这可能会有问题),请尝试以下步骤。这在1.1.3时有效。

  1. 将游戏本体的indirection_heightmap.png和packed_heightmap.png复制到模组的map_data目录下。
  2. 删除游戏本体文件夹中的indirection_heightmap.png和packed_heightmap.png。
  3. 加载地图编辑器并重新打包地图。重新打包的地图文件应该在游戏本体map_data目录下。
  4. 将新的indirection_heightmap.png和packed_heightmap.png从游戏本体目录中复制到模组的 map_data 目录中。
  5. 对于Steam用户,请验证游戏缓存的完整性,重新下载游戏本体indirection_heightmap.png和packed_heightmap.png文件。

常见问题[编辑 | 编辑源代码]

为什么我不能一直向右滚动?[编辑 | 编辑源代码]

你必须打开common/defines/graphics/00_graphics.txt,并设置为 PANNING_WIDTH = 8192 或任何你的地图的等效像素宽度。

为什么我不能使用自动推移(骰子)按钮来放置我的建筑和定位器?[编辑 | 编辑源代码]

由于一个错误,在你可以自动推移之前,你需要一些定义。幸运的是,游戏会为你生成它们。

复制以下目录中的所有文件:

   C:\Users\[user]\Documents\Paradox Interactive\Crusader Kings III\generated

将它们粘贴到:

   \gfx\map\map_object_data