Skip to content

About

基于一系列为大家喜爱的战略游戏地图的地图编辑器,支持导出各种文件

Resources

Stars

51 stars

Watchers

0 watching

Forks

Latest commit

 

History

38 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

悖论制图(CK3 / EU4 / HOI4 / Victoria 3 / EU5)

当前版本:v1.9 正式版(2026-10-17)

作者:永夜廿九(B 站同名)· 代码以 MIT 协议发布 · 下载最新版本

这是一个在浏览器中修改游戏地图的工具,支持涂色、改色、改名、修改色块边界和导出图片。

你可以用它为游戏的省份图制作视频封面、绘制架空世界版图、给战报配地图,也可以只是查看 1066 年欧亚大陆的势力分布。过去需要打开游戏并截图,再到 Photoshop 中逐块描边;现在这些地图会直接显示在浏览器中,点击任意地块即可修改,修改后可以导出为 PNG,也可以保存成文件,下次继续修改。

不需要安装,不需要登录,不需要联网,完全免费。 下载 HTML 文件后双击即可运行。

目前收录的地图

游戏 地图 剧本层
十字军之王 3 CK3 1066
欧陆风云 4 EU4 1444 / 1618 / 1789
钢铁雄心 4 HOI4 · HOI4 修改边界 1936 / 1939
维多利亚 3 Victoria 3 1836
欧陆风云 5 EU5 · EU5 原尺寸 1337

CK2 模式正在内测,暂不公开下载。 「EU5 原尺寸」是同一张地图的高分辨率版本,地块更细,打开地图时需要多等几秒。

CK3 · 整张地图

Victoria 3 · 整张地图

EU5 · 整张地图

这些截图都来自游戏自带的地图。HOI4 修改边界是地图作者调整过省份划分的版本;创意工坊中另做一套地图的 mod(例如 KR、PB、TNO),请参阅下面的「使用自定义地图」。

开始使用

从 v1.9 开始,编辑器和地图包需要分别下载:

① 编辑器本体(电脑版):pdx-map-editor.html,不到 1 MB。双击后用 Chrome、Edge 或 Firefox 打开即可。文件里只有程序代码,没有附带任何地图。

手机 / 平板版:同一个 Release 中还提供 pdx-map-editor-mobile.html,不到 1 MB。用手机浏览器打开后即可使用,支持触屏涂色和双指缩放,界面针对手机重新排布。

② 地图包:在 Releases 附件中下载需要的 7 个 .pdxmap 文件。进入选图页后点击「+ 导入地图包…」,导入后即可使用:

地图包 大小
CK3 原版 2.4 MB
EU4 原版 0.8 MB
HOI4 原版 1.5 MB
HOI4 修改边界 1.5 MB
VIC3 原版 3.7 MB
EU5 原版 4.2 MB
EU5 原尺寸 12.5 MB

不需要的地图包可以不下载,不会影响其他地图的使用。以前所有地图都打包在同一个文件里,每个人都要下载 35 MB;现在编辑器不到 1 MB,地图可以按需下载。

需要一个包含全部地图的文件?

v1.9 的 Release 中不再提供 35 MB 的全量版。编辑器只包含程序代码,地图通过独立的包下载,这是有意的设计。

确实需要一个包含全部地图的文件时,可以在本机运行 python build_standalone.py --all-maps 自行生成(约 35 MB,所有地图都会打包进去,双击即可使用)。具体说明见 docs/构建与开发说明.md。

使用自定义地图

.pdxmap 是公开格式。地图作者可以使用 pack_map.py 将已解析的数据打包,玩家导入后即可绘制,不需要等待编辑器专门发布「适配某个 mod」的版本:

python pack_map.py data_kr --id kr-1936 --label "KR 1936" --author 你的名字 --out kr-1936.pdxmap

格式和打包说明见 packs/README.md。

三个容易遇到的问题

  • 导入的地图保存在浏览器中,不在 HTML 文件旁边。 刷新页面、关闭后重新打开都不会丢失;但换电脑或清除浏览器数据后需要重新导入。因此请自行保存 .pdxmap 原文件。每张地图卡片的右下角也有「导出」,可以重新打包成 .pdxmap 文件。
  • 浏览器无法保存时(例如隐私模式或禁用了本地数据),选图页会明确提示「刷新后会丢失」,这张地图只能在当前会话中使用。
  • 涂色内容不会自动保存,刷新页面后会清空。 这是有意设计的,避免让人误以为已经保存。关闭页面前还有未导出的修改时,浏览器会弹出确认提示。需要保留时,请点击「文件 ▾ → 导出涂色」。

三步开始使用

① 选择地图。 打开编辑器后会先进入选图页,已导入的地图都会显示在这里。点击地图卡片即可进入;地图较多时,在同一列列表中滚动即可(不再分为两列)。

② 取色。 需要使用地图上已有的颜色时,右键点击该地块即可使用吸管(左侧工具栏中也有「吸管」)。颜色会进入左侧栏的「当前颜色」和「最近使用」,点击即可再次使用。需要全新的颜色时,可以直接修改 HEX 或 RGB 数值。

③ 涂色。 按 E 使用涂抹(按住拖动可以连续涂出一片),按 F 使用填色(每次点击只处理一次,即使点击位置略有偏差,也不会连续涂到其他地块)。涂错时按 R 使用橡皮,或按 Ctrl+Z 撤销。

修改完成后需要保留时,请点击「文件 ▾ → 导出涂色」,保存为 JSON 文件,下次通过「导入」继续修改。

第一次使用时,还可以点击顶栏的「教程」,它会在界面上逐步引导你完成一遍操作。

界面说明

顶栏从左到右依次为:视图(一排层级按钮,点击即可切换到对应层级)、工具、教程和署名;右侧为设置、↶ ↷(撤销 / 重做)、主菜单和文件 ▾。

「文件 ▾」菜单中包含:导入、导出窗口、导出整图、导出高清地图、导出涂色和导出日志。其中「导入」用于读取涂色文件;地图包需要在选图页导入,也可以直接将文件拖入该页面。

左侧栏从上到下依次为:显示(各层级的颜色、边界和名称开关,另有「清除全部」;有荒地的地图还会显示「清除荒地」)、当前颜色、悬停地块、查找和最近使用。底部状态栏显示地图尺寸、鼠标位置、缩放倍率和当前修改数量。

中间区域是地图:按住鼠标拖动可以平移,滚动滚轮可以缩放,右下角还有一组缩放按钮。

常用快捷键:Ctrl+Z 撤销,Ctrl+Y(或 Ctrl+Shift+Z)重做,方向键移动视角,按住 Shift 可以加大移动幅度。图层按钮上标有编号,按对应数字键即可切换(CK3 / EU4 为 1–7,HOI4 为 1–6,VIC3 为 1–5,EU5 为 1–6)。

六种工具

工具 快捷键 用途
查看 Q 仅查看,不修改地图,防止误涂
吸管 W 取该地块当前显示的颜色。在搜索结果中点击色点、右键取色或点击调色板,取到的颜色都会进入「最近使用」
填色 F 涂上当前颜色,每次点击只处理一次
涂抹 E 涂上当前颜色,按住拖动可以连续涂出一片
橡皮 R 恢复为原来的颜色
改名 N 修改国家、省份或色块的名称

填色和涂抹使用同一套涂色范围算法,区别只在于按住拖动时是否连续涂色:涂抹会连续处理,填色不会。

取色后会自动切换到绘图工具,默认切换到涂抹(可以在设置中改为切换到填色)。当前已经在涂抹或填色工具上时,则不会切换;正在填色时取色,不应打断当前操作。

图层与粒度

每个游戏都采用相同结构:最前面是剧本(对应某一年或某个开局的状态),接着是一层「空白剧本」(全部为无主地,适合从零开始绘制新世界),再往下才是地区层。区别只在于剧本层数和层级名称:CK3 的剧本层为一层,地区分为帝国、王国、公爵领、伯爵领和男爵领五级;EU4 的剧本层有三层,地区只有区域、地区和省份三级。

CK3 的剧本层对应 1066 年 9 月 15 日的土地归属:每块土地归属于管理它的独立君主(封臣的领地被并入宗主,因此整个神圣罗马帝国显示为同一种颜色,诺曼底公爵的领地则单独算作他自己的政权,与法理视图不一致是正常现象)。当年无人占据的土地会留空:灰色底色、不显示名称,鼠标悬停时也不会列出。

EU4 切换到 1618 或 1789 年时,显示的是该年开局时的版图,与在游戏中选择开局剧本含义相同。HOI4 提供 1936 和 1939 年,Victoria 3 为 1836 年,EU5 为 1337 年。

粒度的用法如下:在剧本层上再次点击更细的层级(例如「省份」),该层级就会成为粒度。此时配色仍来自当年剧本,但边界和涂色范围按粒度层级处理,方便对照剧本修改细部。再次点击同一层级即可取消粒度,回到整块涂色。

左侧栏的几组开关

分组 控制内容
地块 行政区划(区域、地区、省份、伯爵领等)的边界、名称和颜色;下方的「父级边界」控制上一级边界是否绘制
势力 你自己绘制的内容:颜色、边界和名称。剧本视图下的国名也由这里控制
水域 「边界」控制水面与水面之间的边界是否绘制;「名称」控制海洋、湖泊、河流和不可通行海域的名称是否显示。仅负责水域之间,海岸线不在范围内。两项默认关闭
荒地 「边界」控制荒地与荒地之间的边界;「名称」控制荒地名称;「自动上色」让荒地根据周围地块自动上色。三项默认关闭

「父级边界」位于「地块」组,控制上一级边界是否绘制。例如当前查看「省份」层级,关闭后只显示省份边界。

「势力 · 边界」和「地块 · 边界」可以同时开启,两者互不影响。国名只由「势力 · 名称」这一个开关控制;当年各国名称以及你绘制的色块名称都由它负责。

水域和荒地两组相互独立:即使关闭「地块」和「势力」的边界、名称,水域和荒地对应的边界与名称仍然显示(需要关闭时,单独取消对应复选框即可)。

画面过于杂乱时,可以暂时关闭不需要的颜色、边界或名称,只保留当前关注的层级。

点击一次会影响多少地块

在剧本视图下,涂抹、填色和橡皮使用同一套范围规则:

  • 点击的地块已经有涂色:将全图中与它颜色和标记相同的地块视为同一组,一起涂色或还原,可能跨越多个国家。
  • 点击的地块尚未涂色:按剧本归属处理,查看该地块当年属于哪个国家,再选择该国中颜色和标记相同的地块(同一国家内被涂成其他颜色的「占领区」不会一并处理)。
  • 两种情况都不存在时(例如点击无主地):只修改最低单位对应的那一块。
  • 荒地:始终只修改自身所在的那一块,不会整片一起变化。

不在剧本视图时规则更简单:只修改你点击的那一层对应的地块。在省份层点击只修改该省份;在地区或州层点击会同时修改该区域内的省份,不需要逐个点击。

鼠标悬停时高亮的范围与点击后会修改的范围一致。

荒地

沙漠、不可通行的山地等地形称为「荒地」,可以像普通地块一样涂色(水域不能涂色)。

没有荒地设定的模式(VIC3 / HOI4 原版)不会显示「荒地」组,设置页中的荒地滑条和「清除荒地」按钮也会一并隐藏。

开启「荒地 · 自动上色」后,工具会根据周围陆地地块当前显示的颜色进行投票:只有当某种颜色占其周边周长的严格多数时,才会为该荒地上色,否则保持荒地的灰色。周围同样是荒地时,颜色会逐圈向内扩展。该功能默认关闭,需要时自行勾选。

「荒地 · 边界」只负责荒地与荒地之间的边界,与陆地或水域相邻的外缘不在其范围内;「荒地 · 名称」只控制荒地名称,与「地块 · 名称」互不影响。

被涂上颜色的荒地不再视为荒地,而成为你所绘制的版图,边界按普通地块处理。

名称

每个连通区域显示一个名称。 同一个名称被涂成多个互不相连的区域时(例如本土、海外省和若干小岛),每个区域都会标注名称,不需要指定哪一块才是主要区域,也不会只保留最大的那一块。小岛上的名称字号会略小;达不到显示门槛时,就不会绘制。

边界粗细与浓度的区别

同一张地图上的边界按级别叠加绘制,颜色相同(深蓝黑),通过粗细和浓度区分层级。

层级 默认浓度
本层(当前查看的层级) 省份档 50%
势力边界(年份层、国家轮廓) 势力档 100%
父级(上一级,开启「父级边界」后才绘制) 地区档 75%
填色线(你绘制的边界) 势力档 100%,最粗、实心
水域之间(独立一档) 水域档 25%
荒地之间(独立一档) 荒地档 100%

本层使用省份档,上一级使用地区档;只要属于国家或年份轮廓,就使用势力档,与它当前是「本层」还是层级链中的父级无关。「势力 · 边界」也使用势力档,因此调淡这一档时,你绘制的边界也会随之变淡。水域和荒地的两组滑条各自独立,不跟随这三档变化。

「势力 · 边界」绘制的是当前显示颜色的分界线(国家层级中,原版配色也会计入边界);在细分层级中,它只勾勒你自己绘制的范围,不会把原版省界一起加粗。

水域之间(海洋、湖泊、河流、不可通行海域彼此相邻)的边界由左侧栏「水域 · 边界」这一个开关控制。它只负责水域与水域之间,宽度和浓度在设置中有独立的一组(设置页边界栏「水域」小标题下的两行)。海岸线不在其范围内:水域与陆地相邻的边界仍由「地块 · 边界」或「势力 · 边界」控制。它也不受其他边界开关影响;即使关闭上述三类边界,它仍然显示,需要关闭时单独关闭它自己的开关即可。荒地边界同理,只负责荒地与荒地之间。

设置项

顶栏「设置」中包含四组选项。设置和「最近使用」的颜色会被保存:刷新页面或返回主菜单后再次进入都不会丢失,并且按游戏类型分别保存(CK3 和 EU4 的设置不会互相混用)。同一游戏的多张地图共用一套设置,切换地图时不需要重新调整。需要恢复默认状态时,点击「恢复默认」;「最近使用」右上角有「清空」按钮。

这些设置与涂色互不影响:涂色只针对当前地图,刷新后会清空(参见上文「三个容易遇到的问题」)。

  • 颜色:空白区域、无归属区域、不可通行区域、河流、湖泊、海洋和不可通行海域分别使用什么颜色。
  • 边界:一组滑条,分为五类(省份、地区、势力、水域、荒地;VIC3 / HOI4 没有荒地时,荒地这一档不显示),每类包含两行:宽度均为 0.5–3,步长 0.5,默认 1;不透明度均为 0%–100%,步长 25%。默认值分别为省份 50、地区 75、势力 100、水域 25、荒地 100。0% 表示该边界完全不绘制。上面那张表说明了这些浓度在哪些位置生效。
  • 名称:分为地块和势力两块,各有一个字号倍率(0.5–3,步长 0.1)、一个不透明度(25 / 50 / 75 / 100,默认均为 50)和一个上限(1–21,拉到最右为无上限;地块默认 1,势力默认 12)。上限按面积从大到小保留前 N 个:势力按「一个国家」计算,地块按「一个头衔」计算。
  • 其他:导出图例、图例标题、图例位置、取色后切换到(涂抹 / 填色)和恢复默认。

勾选导出图例中的「导出时显示」后,「导出窗口」和「导出整图」会在图角添加图例和标题。图例条目自动来自你绘制的颜色(相同颜色归为一组),名称使用地图上当前显示的名称。还没有涂过任何地块时,图例会先按当前年份的国家列出,制作「1789 年的欧洲」这类纯原版配色的地图也足够使用。

搜索结果说明

左侧栏搜索框支持四类输入:国家代码(例如 CHI、FRA)、国家名称、省份 / 地区名称和 key(以 c_、d_、k_、e_ 开头的标识)。

每条结果左侧都有一个色点,显示该地块当前的颜色;涂色后色点会随之变化:

  • 点击色点只会将颜色取到画笔上,不会移动视图。
  • 点击地区 / 省份那一行,视图会移动到该位置并高亮。
  • 点击国家那一行不会移动视图,避免正在查看的位置被强行拉走。
  • 键盘操作:按回车跳转到第一条可定位的结果,按 Esc 清空搜索框。

导出功能

项目 说明
导出窗口 只保存当前屏幕
导出整图 将整张地图导出为 PNG
导出高清地图 同一张整图,输出宽高均翻倍。边界会按新尺寸重新绘制,不是简单放大图片,因此细边界不会互相覆盖。代价是文件大小约为四倍,导出速度也会慢一些
导出涂色 将涂色内容(包括修改过的名称和图例设置)保存为 JSON
导入 读取该 JSON 文件后继续修改
导出日志 将本次运行现场保存为诊断报告(.txt):环境、浏览器、显卡、当时查看的地图和层级、出现过的错误(包含堆栈和次数)、操作时间线,最后附上一段机器可读的 JSON
清除全部 位于左侧栏「显示」区最下方,一次性恢复所有改动
清除荒地 位于左侧栏「显示」区最下方,清除荒地上的涂色,并关闭「荒地 · 自动上色」

诊断报告平时不需要使用。 遇到问题或想提出新功能建议时,可以将该文件发送到 B 站评论区,比只说「它坏了」有用得多。加载界面右下角也有「导出诊断报告」;编辑器尚未启动或无法启动时,这是唯一还能保存现场信息的地方。

常见问题

下载与打开

Q:需要付费吗?需要登录吗?
A:都不需要。完全免费,无需登录,也无需注册。

Q:在哪里下载?如何打开?
A:从 Releases 下载 pdx-map-editor.html,双击用浏览器打开;手机版为 pdx-map-editor-mobile.html。

Q:需要安装什么吗?需要联网吗?
A:不需要安装或注册,下载后可在本地离线运行;地图包保存在浏览器中。

Q:手机可以使用吗?
A:可以。下载手机版 HTML,用手机浏览器打开;支持单指涂色和双指缩放。

地图

Q:支持哪些地图?
A:目前支持基于 CK3、EU4、HOI4、VIC3、EU5 创建的游戏地图文件。

Q:地图包如何使用?
A:在选图页点击「+ 导入地图包…」选择 .pdxmap,或直接拖入文件;导入后刷新页面不会丢失。

Q:地图包保存在哪里?
A:保存在浏览器的本地存储中,不在 HTML 文件旁边。

Q:换电脑后还在吗?
A:换电脑或清除浏览器数据后需要重新导入;请保留 .pdxmap 原文件。

Q:如何删除或备份已导入的地图?
A:卡片上的「导出」可重新打包成 .pdxmap;「删除」只删除浏览器中保存的那一份。

Q:为什么编辑器和地图要分开下载?
A:以前所有人要下载 35 MB;现在编辑器不到 1 MB,地图按需下载。

Q:有 CK2 吗?
A:CK2 模式目前还在内测,暂不公开,也不提供地图包。

Q:有 EU3 / VIC2 的地图吗?
A:没有。

Q:TNO / KR / PB 的地图可以使用吗?
A:可以。但仓库不提供相关地图包,请自行使用工具打包。

涂色、改名、导出

Q:如何涂色?
A:按 E 涂抹、F 填色、R 橡皮,Ctrl+Z / Ctrl+Y 撤销重做;右键点击地块可使用吸管。

Q:如何修改名称?
A:按 N 使用改名工具,点击目标后输入新名称;只影响显示,不修改游戏文件。

Q:可以导出什么?
A:当前窗口、整图 PNG、高清整图、涂色 JSON 和诊断报告。

Q:涂色会自动保存吗?
A:不会。需要保留时点击「文件 ▾ → 导出涂色」,下次用「导入」继续。

Q:设置会保存吗?
A:会,按游戏类型保存在浏览器中;涂色内容仍会在刷新后清空。

Q:可以导出成游戏 mod 吗?
A:暂时不行,只能导出图片和涂色文件。

Q:如何绘制与宗主国同色的附属国?
A:先吸取宗主国的颜色,用改名工具修改标签,关闭地区 / 省份细层,再点击附属国版图涂色。

出问题了

Q:白屏或底部出现红字怎么办?
A:先看红字第一行:显卡上下文丢失时点击「刷新重试」;无法创建 WebGL2 时开启硬件加速或改用 Chrome、Edge;着色器失败时导出诊断报告。

Q:诊断报告在哪里导出?
A:加载页右下角、红字框内或「文件 ▾ → 导出日志」都能导出;发送时附上报告编号。

Q:第一次打开 VIC3 或 EU5 很慢?
A:VIC3 有四万多个地块,EU5 有两万八千多个,开头几秒在读数据;EU5 原尺寸分块加载,等得更久。

Q:为什么有些国家名称显示为 CHI 这样的代码?
A:游戏中文翻译里没有该译名,只能显示国家代码。

Q:搜索框上方弹出白色下拉框(「保存的信息」)?
A:浏览器自动填充,不是编辑器绘制;新版已关闭,旧记录请在浏览器设置中清除。

Q:涂色出现错误,想重新开始?
A:点击「显示」区最下方「清除全部」可恢复原样;有荒地的图还有「清除荒地」,也可按 Ctrl+Z 撤销。

其他

Q:与 MapChart 相比有什么区别?
A:MapChart 是通用网页地图工具;本工具直接读取游戏数据,地块、名称和归属与游戏一致。

Q:代码开源吗?
A:代码以 MIT 开源,仓库在 Nianjiujiang/pdx-map-editor;地图数据版权归 Paradox。

Q:导出的图片可以商用吗?
A:制作视频或战报一般没问题;商用或二次分发请自行确认素材授权,mod 地图还要看作者要求。

Q:在哪里反馈问题或提出建议?
A:B 站评论区或 GitHub issue 都行;请附上截图、诊断报告和当时的模式 / 层级。

关于这个项目

编辑器不包含任何游戏原文件,没有游戏脚本、本地化文件、美术素材或地图贴图。它只包含代码和自己解析出的地图缓存:每个头衔节点的名称、代码、颜色和坐标,以及几张二进制表(像素到省份号、省份归属、邻接关系、质心)。地图上的颜色和名称都是实时绘制的。

地图包中包含的也是同一份缓存,内容完整(名称、颜色、层级、归属关系和地图分块都在),因此编辑器本体可以不附带任何地图。地图包是数据而不是程序,编辑器不会执行包中的任何内容,名称一律作为文本显示;不过地图包可能来自他人,内容是否可用请自行判断。

技术栈:原生 JavaScript 和 WebGL2,无框架、无外部依赖;Python 仅用于生成数据和打包。

想更换地图、切换游戏版本,或自己重新生成一份数据时(需要在本机安装对应游戏),请参阅 docs/构建与开发说明.md。其中包含构建命令、目录结构、自检方法,以及修改代码前需要了解的规则。

中文名称来源:CK3 使用游戏自带的简体中文;EU4 使用汉化模组(extract_eu4_zh.py 会在 workshop 目录中查找,找不到时回退为英文名)。感谢汉化组。

许可协议

代码以 MIT 协议发布,详见 LICENSE。使用中遇到问题或有新功能建议,欢迎提交 issue,或在 B 站评论区留言。

游戏地图数据的版权归 Paradox Interactive 所有;本项目仅解析你自行安装的游戏并绘制地图,不附带任何游戏文件。

About

基于一系列为大家喜爱的战略游戏地图的地图编辑器,支持导出各种文件

Resources

Stars

51 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages