Files
main_plugin_farm/docs/22-crop-scene-mapping.md
T

44 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 真寻农场可见落地机制
用户验收指出:完整纹理底边对齐网页父矩形,即使计算过程正确,仍不能
保证本地作物根部落在土地中心。本地成熟胡萝卜画布高 168,可见内容仅到
102;直接对齐整张纹理底边会让根部偏向地块后上方。
当前机制以真寻农场自身的落地效果为准,配置为 schema=4、
mode=visible_contact_center,不再对作物执行网页底边锚点或倾斜变换。
## 通用落地规则
1. 每块土地的中心 C 取本地绘制矩形中心。
2. 作物等比缩放并保持直立,不旋转、不剪切;保留完整纹理文件。
3. 在最终尺寸图片中,忽略 alpha 小于 32 的边缘像素,取得可见范围。
4. 生长图、成熟图、枯萎图取可见高度最下方 20% 的区域,计算该区域
有效像素的 alpha 加权中心 P,作为自动落地参考点。
5. 种子图取可见包围盒中心作为 P,避免种子簇偏离土地中心。
6. 左上角绘制位置为 `round(C × 输出比例 - P)`。
这样上下左右增加透明留白不会改变可见落点。没有逐作物、逐阶段的手调
偏移;同一规则应用于所有素材。底部区域是图像推导的落地参考,并非声称
能够识别所有美术素材的植物根系,后续新增素材仍应做视觉抽查。
## 缩放与虫子
已有 30 块地的场景映射仍用于取得整体尺寸尺度及虫子的局部坐标。
作物只取其面积对应的统一尺度 `sqrt(abs(det(A)))≈1.471`,不将倾斜、
剪切施加到作物图片。生长图尺寸系数为 0.75,种子和枯萎为 0.5;
最后乘输出宽度/3072。这里的系数仅决定大小,不再决定落地锚点。
虫子不使用植物底部算法,保持原来的局部位置和显示尺寸规则。
土地映射原始参考及匹配顺序保留于 crop_positions.json;旧土地图不规则,
中心拟合 RMS≈4.18、最大残差≈9.08 像素,但作物逐块使用本地实际中心,
不使用拟合平移作为落点。这不是网页的逐像素复刻。
## 验证
包含增加透明留白不改变落地参考、上方叶片不拉偏底部参考、透明图片回退、
种子/枯萎分支、1024/1536/3072 三种尺寸,以及成熟胡萝卜和固定随机种子的
五种作物各阶段预览。随机抽样为杨梅、椰子、冬瓜、白萝卜、花生。
`scripts/preview_crop_mapping.py --output <目录>` 可复现预览,包含带虫和
隐藏虫子便于检查的成熟胡萝卜图。此过程不读玩家数据库、不部署或重启。