依依 发表于 2026-10-13 19:51:09

ShipCoordTool 舰船坐标工具 ·

本帖最后由 依依 于 2026-10-13 21:16 编辑

ShipCoordTool 舰船坐标工具 · 使用手册一个给远行星号(Starsector)模组作者用的免费小工具:读取舰船贴图,鼠标悬停即显船坐标,一键生成碰撞框、武器位、引擎位,甚至直接导出 .ship 文件。
适用场景:画了新船贴图,但被 .ship 文件里的坐标和碰撞框折磨的各位同好。
一、环境要求
[*]Windows 系统(7/10/11 均可)
[*]无需安装 Java——程序自带运行时,解压即用
[*]无任何依赖、不联网、不写注册表
二、启动方式整个 ShipCoordTool 文件夹就是程序本体(含 exe、配置和自带运行时,不可只拷贝 exe 单个文件)。

[*]双击 ShipCoordTool.exe 直接运行
[*]或使用 启动坐标工具.bat
首次启动建议直接双击 exe。
三、界面速览
区域说明
右侧工具栏全部功能按钮 + 模式下拉框
中间画布贴图显示区,绿色十字 = 船坐标原点(贴图正中心)
底部状态栏实时显示「像素坐标」和「船坐标」
底部输出区操作记录、包围盒结果、导出信息
四、坐标系统(重要)工具里同时存在两套坐标,务必分清:

[*]像素坐标:以图片左上角为原点,(x, y)
[*]船坐标:以图片正中心为原点,+x 向右,+y 向上——.ship 文件里用的就是这套
状态栏同时显示两者;工具栏「复制坐标块」和「导出SHIP」输出的都是船坐标。
五、快速上手(三步做完一艘船的骨架)
[*]打开贴图:点「打开贴图」,或直接把 PNG 拖进窗口。首次会默认定位到你的 mod 的 graphics\ships 目录,之后记住上次位置。
[*]分析包围盒:自动扫描透明区域,算出船体的实际范围,输出:

[*]bounds 矩形:(4 值矩形格式,游戏完全支持)
[*]collisionRadius 两种推荐值:

[*]紧贴 = 半对角线(碰撞判定最贴合船体)
[*]宽松 = 半对角线 × 1.5(经对比原版狼/猎犬等船实测,与原版数值习惯一致,推荐)
[*]导出 .ship:填写舰船 ID、船名,选择碰撞半径模式,一键生成文件——武器位、引擎位、碰撞框、贴图路径全部自动写入。
六、功能详解1. 三种点(模式下拉框)
模式颜色用途
武器点红导出为 weaponSlots(默认炮塔 TURRET / 小型 SMALL)
引擎点蓝导出为 engineSlots(默认 HIGH_TECH 风格)
碰撞点黄参与碰撞框计算
加点:选好模式 → 左键点击贴图。每加一个点,输出区会记录像素坐标和船坐标。
镜像加点(默认开启):船是左右对称的,所以记点时工具会自动在另一侧生成对称镜像点。后续微调、双击改坐标、右键删除、Delete 删除也都会联动镜像点。不需要时点工具栏「镜像加点」关闭。
2. 点的编辑
[*]双击某个点:弹出对话框,精确输入坐标
[*]右键点:删除最近的点
[*]方向键:微调最后加的点,每次 1 像素(按住 Shift = 10 像素)
[*]Delete / Backspace:删除最后加的点
[*]「清空点」:一键全部删除
画武器点时不必一枪命中——先点在大概位置,再用方向键微调或双击输入精确值,比反复点鼠标快得多。
3. 缩放与平移
[*]滚轮:以鼠标位置为中心缩放(0.05× ~ 16×)
[*]「1x / 2x / 4x」:常用倍数快捷键
[*]「适配窗口」:整图缩放至窗口大小,等比缩放,不变形
[*]左键按住拖动:平移贴图(拖出 5 像素以上判定为平移,不会误加点)
4. 对称镜像对比开关「镜像对比」后,画布会叠加一层红色半透明的水平镜像副本。若贴图左右完全对称,红色与本体完全重合;哪里露出红边,就是哪里画歪了。检查贴图对称性的利器。
5. 背景色点「背景」弹出菜单:透明棋盘(默认,原版同款格子底)/ 黑 / 白 / 灰 / 自定义任意颜色。
6. 复制坐标块把当前模式下所有点复制为 JSON 坐标块到剪贴板:
"locations": [    [-12, 30],    ],可直接粘贴进 .ship 文件的 weaponSlots / engineSlots 里微调。
7. 点集保存 / 加载点集可存为 CSV 文件(含图片名校验),下次打开同一张贴图后「加载点集」即可继续未完成的工作。换机器、隔天做都不怕丢。
8. 导出 .ship 详解点「导出SHIP」后弹出对话框:

[*]舰船 ID(hullId):默认按文件名智能推断(xxx_itera.png → itera_xxx),务必改成你 ship_data.csv 里的实际 ID
[*]船名(hullName):显示名
[*]碰撞半径:宽松(默认)/ 紧贴
[*]碰撞框格式:碰撞点 ≥ 3 个 → 自动导出多边形顶点表(原版格式);不足 3 个 → 用分析包围盒的矩形
生成内容包含:

[*]bounds(多边形或矩形)
[*]collisionRadius(按所选模式)
[*]weaponSlots:angle 0、arc 5、TURRET、SMALL,编号 WS 0001 起
[*]engineSlots:angle 180、contrailSize 3、length 12、width 6、HIGH_TECH,编号顺延
[*]spriteName:graphics/ships/<文件名>
[*]UTF-8 带 BOM 编码(游戏官方文件同款,中文船名不乱码)
默认保存到贴图同目录,可直接改名放进 data\hulls\。
提示:导出的 .ship 是骨架,具体炮塔角度、槽位大小、引擎样式请按需在文件里微调。
9. 超大贴图处理
[*]图片超过 12000 像素时弹窗询问:完整加载 / 降采样加载(推荐)。降采样模式省内存,坐标自动按原图换算(有少量舍入误差)
[*]完整加载内存不足时,自动再次询问是否降采样
[*]加载、缩放、包围盒分析全部在后台线程执行,大图也不会卡死界面;换图会自动取消上一次未完成的分析
10. 报错日志所有异常自动记录到 %APPDATA%\ShipCoordTool\ShipCoordTool.log(超过 1MB 自动轮转为 .old.log)。遇到崩溃点工具栏「报错日志」直接打开文件,把内容反馈给作者即可快速定位。
七、常见问题(FAQ)Q:为什么我点一下会出两个点?A:镜像加点默认开启,会自动补另一侧的对称点(做船神器)。只想要单边点就点工具栏「镜像加点」关掉。
Q:为什么我导出的 .ship 进游戏没反应/报错?A:检查三件事——① hullId 是否与 ship_data.csv 的 id 完全一致;② 贴图是否放到了 graphics\ships\ 下;③ 文件编码是否为 UTF-8(本工具导出的没问题,手工改过的注意另存编码)。
Q:点不准,总是差 1-2 像素?A:先点个大概,再用方向键微调或双击输入精确坐标。
Q:双击怎么把点删了/加错了?A:单击=加点(220ms 内若双击则改为编辑,不会重复加点);右键才是删点。
Q:碰撞框用矩形还是多边形?A:简单船体用矩形完全够;复杂轮廓点 3 个以上碰撞点即导出原版同款多边形。
Q:中文界面乱码?A:用 exe 或 bat 启动;若从命令行启动 java 需要 -Dfile.encoding=UTF-8。
Q:collisionRadius 该填多少?A:直接选「宽松」(= 半对角线 × 1.5),经与原版狼级(贴图 52×96 → 半径 80)等实测对比,最接近原版数值习惯。
八、声明
[*]免费工具,做船自用,顺手分享,无任何收费与广告
[*]使用产生的任何 .ship 文件归你所有
[*]如有 bug 或功能建议,欢迎反馈(报错日志发我即可)
祝各位做船顺利,早日出货!
下面是效果图




对了
解压后运行 不要直接运行!!!!!

解压后运行 不要直接运行!!!!!

解压后运行 不要直接运行!!!!!

重要的事情说三遍!!!!!

宝石视觉 发表于 2026-10-13 20:03:11

好,新的车轮!

MMMMocizuki 发表于 2026-10-13 20:05:59

好东西!

墨语流年恰似水 发表于 2026-10-13 20:20:59

好强,支持大佬!就是介绍里有个错别字

依依 发表于 2026-10-13 20:28:02

墨语流年恰似水 发表于 2026-10-13 20:20
好强,支持大佬!就是介绍里有个错别字

啊啊啊啊 我是笨蛋
猫猫真的变成笨蛋猫猫了

依依 发表于 2026-10-13 20:31:17

宝石视觉 发表于 2026-10-13 20:03
好,新的车轮!

回来更新一下 我加了个功能

依依 发表于 2026-10-13 20:31:41

MMMMocizuki 发表于 2026-10-13 20:05
好东西!

回来更新一下 我加了个功能

依依 发表于 2026-10-13 20:32:38

墨语流年恰似水 发表于 2026-10-13 20:20
好强,支持大佬!就是介绍里有个错别字

不对 没错字 是保存一个点集 不是点击保存)

AIYHBVDCX 发表于 2026-10-13 23:00:11

我他妈超级无敌我爱你呀!!!
页: [1]
查看完整版本: ShipCoordTool 舰船坐标工具 ·