我非常喜欢《星露谷物语》这款游戏,在 Nintendo Switch 上有 400+ 小时的游戏时长,现在有两个存档:一个是单人农场,另一个是跟女朋友一起玩的双人农场。
单人农场
玩单人农场的前期,我主要忙着升级工具、提升技能和赚钱,农场布局也就随心所欲。到了后期准备结档时,想给农场安排一个舒服的布局,尝试自己划分好功能区之后,装修的细节却很难处理,也不怎么擅长设计,只好在哔哩哔哩找了别人分享的布局图,再一点一点数格子布置。
这个过程实在是有些痛苦,因为要反复去查图里的物体具体是什么、如何获取,简单的物体还比较容易查找,但遇到平常不接触的家具、地板、灯具和装饰品就麻烦得多。地板、栏杆的用量也让我头疼,我估算不出具体需要多少,虽然后期不缺钱,但也不想买太多。布置的时候也要经常停下手里的活去购买或者收集一些物品,花了好几天,手动布置出来的效果如下:
双人农场
后面玩双人农场的时候,我们通过钓鱼、种地、下矿逐渐积累了资金,技能也提升得差不多了,虽然酿酒流还没完全成型,但我觉得可以开始考虑农场规划了。我在小红书、哔哩哔哩刷到了很多优秀、美观的设计,但一想到单人农场的经历,头已经大了,迟迟没有开始动手。
Agent Skill
GPT 6 Astra 发布后,社交媒体上有很多博主分享它在 PCB 设计、3D 建模、游戏等场景中的使用经验,这也让我产生了一个新的想法:能否利用 Astra 来辅助我布局规划,减少手动查阅 Wiki 和计算物料数量的工作?
说干就干,Astra 对这个 skill 做了以下设计:
- 收集整理物品素材,主要采用
stardew.info、stardewplan.com以及官方 Wiki 上的图片素材,生成所有物品的图片并整理尺寸、占位、分类等信息,在data/planner目录下保存物品目录、中英文名称、精灵图、图集、作用范围数据。 - 整理地图素材,整理所有官方原版地图的信息,在
data/maps目录下保存地图尺寸、季节背景、默认建筑、固定地标、摆放限制及 TMX 地图源文件。 - 记录原文件的来源等信息,确保素材的可追溯性,在
data/recognition目录下保存识别分类、卡片位置、补充参考、素材来源与覆盖审计信息。 - 准备图鉴合集,由于 AI 对输入图片有限制,我们将同一类别的物品图片和信息进行拼接,展示一些物品的变体形态以及易混淆物品的区别,尽量让一个大类的物品信息能够在一张图中完整展示。图鉴保存在
assets/recognition目录下,AI agent 只需读取一张图就能获得一个大类的物品信息。 - 编写操作脚本,这里选择用 JSON 格式存储布局信息,但如果直接让 AI 编写 JSON 容易出现上下文过长、格式错误等问题,因此设计了一个统一的操作脚本
scripts/layout.py。AI agent 可以调用脚本完成布局生成、更新、检查、渲染等操作,同时也提供了物品搜索、打包等其他辅助脚本。 - 编写
SKILL.md,指导 AI agent 如何使用上述素材和脚本完成农场布局设计、复刻和优化。
最终确定的方案流程如下:
写完后我在小红书找了一位博主分享的农场布局,让 GPT 6 Astra 尝试复刻,在这个过程中发现了太多的问题:
- AI 比较容易混淆一些物体,比如把蘑菇树桩误认为是圆木段,还会反复尝试查找玩家角色到底是什么物品。在图鉴里增加了可忽略的对象,包括玩家角色、玩家小孩、马匹、宠物等,减少了这些干扰因素。
- 最初的设计规定一个物品占据地面后就不允许其他物品覆盖,但实际上住宅的走廊上可以放置家具、小桶等,温室前面自带的砖块也可以被地板覆盖,为此调整了判断规则,增加了对一些特殊情况的处理。
- 参考图片中的物品可能处于不同状态,比如篝火可能处于开启状态,鱼塘的池水颜色会因鱼类而变化,不同作物、超大作物也可能处于不同的生长阶段,而我们的素材是默认状态。如果把所有这些可能变化的物品(尤其是作物)都放进图鉴,图鉴的数量会急剧增加,AI 也难以处理,因此我们制定了一些详细的简化规则,比如将作物统一为成熟的草莓,将超大作物统一为超大南瓜,其他物品使用默认状态,降低了图鉴的复杂度。
- 地板上可以放置其他物品,有些道路和地板会被树木、物品遮挡,skill 中规定让 AI 根据周围环境判断这些区域是否铺设地板。
- 针对洒水器、蜂巢、稻草人、祝尼魔小屋的作用范围,我们设计了专门的规则,让 AI 在布局时能够正确计算这些物品的影响区域,避免覆盖或遗漏。但如果参考图本身就存在未能完全覆盖作物的部分,AI 会在交付时说明此类情况,方便调整。
- 布局完成后需要进行一次完整的检查,但如果都交给主会话就会非常慢,而且容易读取太多图片,因此我们设计了地图切分和 sub-agent 检查任务,让每个 sub-agent 负责检查地图的一部分,最后汇总检查结果,提高了检查效率和准确性。
复刻效果
反复调整和优化花了大量时间和 token,最终复刻的对比效果如下:
同时也生成了布局简图和物料清单,方便大家在游戏里布置:
为什么不使用 Computer Use
无论用什么方式复刻农场,都需要先识别参考图里的物品。如果 AI agent 没有读取完整的图鉴,就很难一次性准确识别图里大量的物品,再加上很多细小的物品会被其他物品遮挡,要辨认出它们是什么并确定具体坐标就更加困难。
另外 AI 也需要先了解对应网站的物品 ID、操作逻辑, 才能使用 Computer Use 在布局网站上选对物品,并放到合适的位置,这同样会消耗很多 token。
这个 skill 提供整理优化后的图鉴,让 AI 能够更快、更准确地识别物品,再通过脚本生成布局配置文件,AI 不用知道代码的具体内容,也不需要读取整个 JSON 配置,配置文件也方便后续复用和修改。目前生成的渲染图和布局网站的渲染效果已经没有什么区别,在某些方面还表现得更好。
最后就是有些布局网站的导出等功能需要付费。我认为在自行设计布局的场景下,使用 Computer Use 确实可行,但在复刻一些包含大量物品的参考图时,使用这个 skill 会更加高效和方便。
使用方法
使用 npx 安装到某个项目中或全局都可以,提前安装好 Python 3.12+、uv、Node.js 和 Git:
npx skills add sigming/stardew-planner-skill --skill stardew-planner-skill -a codex -a claude-code
然后把需求或者参考图片发给 AI agent 开始布局规划,交付后也可以继续让 AI 帮你调整和优化。
有什么问题欢迎提交 issue 或者创建 pull request。
推荐实施步骤
拿到 AI agent 生成的布局简图和物料清单后,推荐按照下面的流程装修:
- 推荐在冬季装修,这时候没有太多作物,动物也不出门。先根据给出的清单准备物料,地板、栏杆这类高消耗物品可以多买十几个到二十个,避免短缺。
- 确定建筑物位置后找罗宾移动或建造,在建造过程中开始铺地板和道路,多对照实施简图和渲染图找准参考点,铺错了可以用十字镐敲掉,路铺好之后农场就有了大致的分区。
- 开始逐个分区装修,种植果树时一定要清空周围八格,否则果树永远长不大,等果树成熟后再补齐周围八格的物品。普通树木也要在这时候种下,有条件的话可以给普通树木施加树肥提高生长效率,后期还可以将醋倒在树上阻止苔藓生长。
- 逐个分区检查细节并放置家具等装饰品。种植草可以让农场看起来更丰富、自然。
- 最后可以根据自己的喜好微调。
- 开始养老。
希望这个 skill 能够帮助老乡们更轻松地规划和实施自己的农场布局。很惭愧,就做了一点微小的工作,谢谢大家。


