mirror of
https://github.com/Shu-Ying/main_plugin_farm.git
synced 2026-10-27 20:50:06 +08:00
fixed # 修复作物资源位置不对的历史遗留BUG
add # 新增作物会生虫的逻辑
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# 作物阶段位置校准
|
||||
|
||||
> 历史试验:本页人工锚点方案已被
|
||||
> `15-crop-position-formula.md` 的统一定位规则取代。
|
||||
> 后续绘制使用统一公式;以下保留为试验记录,不再扩展。
|
||||
|
||||
## 本轮范围
|
||||
|
||||
只校准现有本地草莓素材的种子、发芽、小叶、大叶、开花、成熟阶段。
|
||||
其他作物和通用枯萎图保持原定位;没有自动套用草莓的数据。
|
||||
不改旧版参考素材,不裁透明留白,不保存网页作物 ID。
|
||||
|
||||
## 参考点与证据边界
|
||||
|
||||
采用本地美术基准:茎与地面相接处;种子使用种子簇的落地点。
|
||||
这是一组人工观察后的本地标注,并非 QQ 网页原始 pivot 的复原结果。
|
||||
低分辨率边缘存在约 1~2 个原始像素的人工标注误差,
|
||||
后续可以在同一配置中微调,不能宣称已核验所有作物。
|
||||
|
||||
坐标原点是完整参考画布的左上角,x 向右,y 向下。
|
||||
`reference_size` 是标注时的画布宽高,`anchor` 是其内部落地坐标。
|
||||
数字均为本地参考画布像素,不是屏幕坐标。
|
||||
|
||||
| 本地阶段 | 参考画布 | 落地锚点 |
|
||||
| --- | --- | --- |
|
||||
| 0 种子 | 35 × 58 | 17, 20 |
|
||||
| 1 发芽 | 32 × 81 | 19, 27 |
|
||||
| 2 小叶 | 61 × 99 | 33, 44 |
|
||||
| 3 大叶 | 102 × 121 | 58, 72 |
|
||||
| 4 开花 | 107 × 129 | 62, 75 |
|
||||
| 5 成熟 | 112 × 139 | 64, 78 |
|
||||
|
||||
种子图原始文件较大,参考画布采用当前运行时的 35 × 58 显示尺寸。
|
||||
其他阶段采用原始 PNG 尺寸;全部保留透明区域。
|
||||
|
||||
## 拼接公式
|
||||
|
||||
```text
|
||||
地面目标点 = 地块中心 + 原有作物级 offsetX/offsetY
|
||||
目标锚点 = anchor × 实际绘制图片尺寸 / reference_size
|
||||
图片左上角 = 地面目标点 − 目标锚点
|
||||
```
|
||||
|
||||
先缩放图片,再按实际宽高换算锚点,避免不同分辨率取整累计漂移。
|
||||
普通和高清图采用同一参考坐标,不再分别维护偏移。
|
||||
|
||||
## 配置与发布
|
||||
|
||||
源配置:`src/farm_render/data/crop_positions.json`。
|
||||
每个阶段保存 `sprite`、`reference_size`、`anchor`、图片 `sha256`。
|
||||
`basis` 说明人工标注依据。
|
||||
导出脚本将标注写入渲染 metadata,并检查图片哈希、阶段和画布尺寸。
|
||||
更换素材或改变种子尺寸后必须重新标注,不能静默套用旧锚点。
|
||||
这些是绘图数据,保存在包内配置;不需要修改玩家 SQLite 结构。
|
||||
|
||||
复现对照图:
|
||||
|
||||
```text
|
||||
python scripts/preview_crop_positions.py --output <输出目录>
|
||||
```
|
||||
|
||||
图中红十字为地块目标点;阶段 0~5 在相同地块和相同缩放比例下比较。
|
||||
预览同时给出旧居中算法与新落地锚点算法,观察茎根而非叶片或果实边缘。
|
||||
自动测试校验跨阶段、跨分辨率的坐标变换;美术位置还需结合预览检查。
|
||||
Reference in New Issue
Block a user