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

本页面所适用的版本可能已经过时,最后更新于1.1
 
(未显示3个用户的18个中间版本)
第1行: 第1行:
{{version|1.1}}{{需要翻译}}
{{version|1.1}}{{需要翻译}}
In Crusader Kings III, it is possible to mod the game map. This includes editing land, seas, rivers and provinces. For modding titles, see [[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文件夹中定义它们。


== Creating titles ==
== 创建头衔 ==
Creating titles is done by linking the colors in the province map to definitions of baronies, counties, duchies, kingdoms, and empires. The process includes the following steps:
创建头衔的方法是将省份地图中的颜色与男爵领、伯爵领、公国、王国和帝国的定义联系起来。这个过程包括以下步骤。
# Create a province map to define individual baronies
# 创建一个省份地图来定义个别男爵领。
# Identify baronies by the RGB found in the province map in "[mod]/map_data/definition.csv"
# 通过“[mod]/map_data/definition.csv ”省份地图中的RGB来识别男爵领。
# Define your title heirarchy in a new file in "[mod]/common/landed_titles/"
# 在“[mod]/common/landed_titles/ ”中的新文件中定义你的头衔层级。
# Create localisations for your titles in a new file in "[mod]/localization/[language]/"
# 在“[mod]/localization/[language]/ ”中新建一个文件,为你的头衔创建本地化。


=== Defining baronies ===
=== 定义男爵领 ===
To turn the colors of the province map into usable baronies, you must define them in the "definition.csv" file.
要把省份地图的颜色变成可用的男爵领地,你必须在“definition.csv ”文件中定义它们。


The format of barony definitions is:
男爵领定义的格式是
    [ID];[RED];[GREEN];[BLUE];[Barony Name];x;
    [ID];[RED];[GREEN];[BLUE];[Barony Name];x;
    # For example:
    # 例如:
    2333;128;183;194;PARIS;x;
    2333;128;183;194;PARIS;x;


'''IDs must be sequential, or your game will crash.'''
'''ID必须是是连续的,否则你的游戏会崩溃。'''
    # This will work:
    # 这将工作。
    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;
    
    
    # This will cause a crash:
    # 这将导致崩溃。
    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;


=== Landed titles ===
=== 实地头衔 ===
Landed titles and the de jure hierarchy have to be defined in "[mod]/common/landed_titles/". The basic structure is below.
实地头衔和法律上的层级必须在“[mod]/common/landed_titles/ ”中定义。基本结构如下。


The names (e_empire_tier, k_kingdom_tier, etc.) are just examples, "color" can be any RGB value you like, but "color2" is static and valid capitals are county titles. Any tier can contain multiple of the next lower tier (e.g. 5 kingdoms in 1 empire).
名称(e_empire_tier,k_kingdom_tier等)只是举例,“color”可以是任何你喜欢的RGB值,但“color2”是静态的,有效的首都是伯爵领头衔。任意等级头衔都可以包含多个下一等级头衔(比如1个帝国有5个王国)。


Baronies appear in the game in the same order as in the file. I.e. the first one will be the default capital. The engine will use the capital baronie's culture and religion set in "[mod]\history\provinces@_title.txt" to determine its county's culture and religion at any set date.
男爵领在游戏中出现的顺序与文件中的顺序相同。即第一个将是默认的首府。引擎将使用“[mod]\history\provinces@_title.txt ”中设置的在任何设定日期的首府男爵领的文化和宗教来确定其伯爵领的文化和宗教。


   e_empire_tier = {
  e_empire_tier = {
      color = { 0 0 0 }
      color = { 0 0 0 }
      color2 = { 255 255 255 }
      color2 = { 255 255 255 }
第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 中定义)
            }
            }
          }
          }
第126行: 第136行:
    }
    }


== Map locators ==
== 省份的地形 ==
 
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)。
 
注意,修改效果会在游戏内立即生效。
 
== 地图定位器 ==


Once baronies have been defined, the locations (positions) of their four main locator objects can be defined. This will tell the engine where to place each sea tile's raised army (ship placement), as well as the holding building, raised army, army combat and siege weapon objects for each barony on the map. The positions of these four locators are defined in the building_locators.txt, combat_locators.txt, player_stack_locators.txt and siege_locators.txt files respectively, which can be found in "[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/ ”中找到。


Within these files, each barony is represented by an instance where the position, rotation and scale of the map objects can be set.  For example, the following code defines the locator for a single barony with ID = 1 at standard size and co-ordinates of x = 2,000 and y = 1,000 on the map:
在这些文件中,每个男爵领都由一个{{Ruby|实例|instance}}来表示,在这个实例中可以设置地图对象的位置、旋转和比例。例如,下面的代码定义了一个单一的男爵领的定位器,ID=1 ,标准尺寸,地图上的坐标为x=2000,y=1000:


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


These values, specially raised army's position for both sea and land provinces, are used to define troop movement pathfinding. At any time, the position, rotation and scale of these objects can be finessed using the Map Objects Editor in the in-game map editor.
这些数值,特别是被调集军队在海陆省份的位置,用于定义部队移动寻路。在任何时候,都可以使用游戏中地图编辑器中的{{Ruby|地图对象编辑器|Map Objects Editor}}来微调这些对象的位置、旋转和比例。


Be mindful that if there is any serious problem with a mod's locator files, errors.log should indicate that four files (generally holding buildings, raised army, army combat and siege weapon locator text files) have been created in the "[user]\[documents]\Paradox Interactive\Crusader Kings III\generated" folder. You can then copy those over to your mod's "[mod]/gfx/map/map_object_data/" folder, replace the old files and re-start the in-game map editor.
要注意的是,如果一个模组的定位器文件有任何严重的问题,error.log 应该会显示在“[ 用户]/[ 文档]/Paradox Interactive/Crusader Kings III/generated ”文件夹中创建了四个文件(一般是地产建筑、被调集军队、军队战斗和攻城武器定位器文本文件)。您可以将这些文件复制到您的模组的“[mod]/gfx/map/map_object_data/ ”文件夹中,替换旧文件并重新启动游戏中的地图编辑器。


=== Auto nudge ===
=== 自动推移 ===


The in-game map editor contains an auto nudge tool (represented by a dice button on the object placement mode) that allows users to automatically generate land province's object locator files and randomly test new object positions within a given province. To use it, an editor should use the province selection tool, select which province's it wants to randomize, and then click the nudge tool button. The map-editor should then try to spawn each of the default objects on all selected provinces.
游戏中的地图编辑器包含了一个{{Ruby|自动推移|Auto nudge}}工具(由{{Ruby|对象放置模式|object placement mode}}上的骰子按钮表示),允许用户自动生成陆地省份的对象定位文件,并在给定省份内随机测试新的对象位置。要使用它,编辑器应该使用省份选择工具,选择它想要随机的省份,然后点击推移工具按钮。然后,地图编辑器应该尝试在所有选定的省份上生成每个默认对象。


In case there are any invalid positions (such as objects spawned outside the province's area due to lack of valid spawning space), affected provinces will be crossed by red stripes on the map. To fix the issue, the user should then either select any red-stricked provinces and try a new random valid position by clicking the auto nudge button again or drag any invalid objects into the province manually.
如果有任何无效的位置(例如,由于缺乏有效的生成空间而在该省份的区域外生成的对象),受影响的省份将在地图上以红色条纹交叉显示。要解决这个问题,用户就应该选择任何被红色条纹划过的省份,然后通过再次点击自动推移按钮尝试新的随机有效位置,或者手动将任何无效的对象拖入该省份。


The in-game map editor also allows users to fine-tune the auto nudge tool's spawning settings. To facilitate random placement with the auto nudge tool, an user may reduce the collision box of objects or tweak the minimal and max distances between each object. Users should be aware that the default siege engine's settings are optimized so that the siege engine's animation properly interacts with the holding building object.
游戏中的地图编辑器还允许用户对自动推移工具的生成设置进行微调。为了方便使用自动推移工具进行随机放置,用户可以缩小物体的碰撞框,或者调整每个物体之间的最小和最大距离。用户应该注意的是,默认攻城引擎的设置是经过优化的,这样攻城引擎的动画就能正确地与地产建筑对象进行交互。


== Connections ==
== 连接 ==
Baronies can be connected in two ways: having adjacent pixels, or having a connection defined in "[mod]/map_data/adjacencies.csv".
男爵领可以通过两种方式连接:拥有相邻的像素,或者在“[mod]/map_data/adjacencies.csv ”中定义连接。


Entries in "adjacencies.csv" take the format:
“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, and ID Through are all ID
* ID From 、ID To 和ID Through 都是在“definitions.csv ”中找到的ID。
s found in "definitions.csv"
* ID From 和ID To 是男爵领;ID Through 是海洋或可航行的河流。
* ID From and ID To are baronies; ID Through is a sea or navigable river.
* 类型为“sea”或“river_large”。
* Type is either "sea" or "river_large"
* start_x 和start_y 是一个军队在“ID From ”男爵领中“出发”的坐标(x,y)。
* start_x start_y are the (x, y) coordinates from which an army 'embarks' in the "ID From" barony.
* stop_x 和stop_y是一个军队在“ID To ”部落中“登陆”的坐标(x,y)。
* stop_x and stop_y are the (x, y) coordinates to which an army 'lands' in the "ID To" barony.
* start_x 、start_y、stop_x和stop_y都可以使用“-1 ”来代替实际坐标,这将默认为军队在该男爵领的正常位置。
* start_x, start_y, stop_x, and stop_y can all use "-1" instead of actual coordinates, which will default to wherever the normal army placement is in that barony.
* 保留文件末尾的“-1;-1;;-1;-1;-1;-1;-1; ”。
* Preserve the "-1;-1;;-1;-1;-1;-1;-1;" at the end of the file.
 


== 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