4236 字
21 分钟
让 Claude 在 MC 里,从架桥到盖楼
《许愿三秒,验收三天》系列

这个系列记录我和 Claude 一起折腾 MC 铁路服务器的两个月。这是第三篇,前两篇是《本来只想升级个模组》和《Minecraft MTR,接入真正的报站》。

在这之前,服务器里的高架桥基本都是用 MTR 自带的工具铺出来的:一条 5 格宽的桥面,底下没有桥墩,轨道就这么悬在半空。接触网也基本不架,只有几条大直道,是用 WorldEdit 一段段复制粘贴出来的,弯道我是不搭的,懒得。6 号线建好两年了,也就在下界之门到蓝田那段直道上立过几根桥墩。我对重复劳动真的很抵触,这种活让我一根根手搭,这辈子都懒得搭。

做报站器的时候,为了把报站器摆到轨道底下,Claude 学会了读写存档。于是报站做完,我顺势提了个新需求:

既然你现在有编辑存档的知识了,我想搞一些自动建造的工作,以6号线为例,我想在全线都加上类似下界之门到蓝田区间那样的桥墩,尤其是在弯道不好建,轨道下方铺一格子lime染色方块。你有什么思路么?

我挺有把握的,MTR 是开源的,照着源码,弯道的曲线总能还原出来,桥也就搭得起来。

6 号线的桥墩#

它先从存档里把下界之门那几根墩量了出来,画成截面,又统计了全线有多少是高架、多少是弯道,然后问了我四个问题,我一句话答完:

1对,只铺高架段,用黄绿色混凝土,2用3 宽的帽(A B A)加单柱,柱子到地面和海床,间距都50

第一版在本地服建好,我飞了一圈。直道上没问题,到了钓场口往东南那段弯道,轨道下面的黄绿色条带歪到了轨道旁边,一格一格错开,像锯齿,红砂港那边的弯却贴得好好的。我让它去看看 MTR 的源码里弯道是怎么算的,顺便问它,红砂港为什么就是贴的。

钓场口往东南的弯道,黄绿色条带歪到了轨道旁边
钓场口往东南的弯道,黄绿色条带歪到了轨道旁边

答案在它自己写的旧代码里。做报站器时,它写过一份算轨道路径的代码,开头的注释写得明明白白:普通的弯按 MTR 的公式精确算,S 弯和两段半径的弯用曲线近似。报站器只要车头从附近几格经过就能触发,差几格无所谓,可桥墩要每一米都贴着轨道铺,这点误差就藏不住了,偏得最多的一段差了三十来格。它还把四个 22.5° 方向的名字写错了,这几个方向的轨道整段被当成了直线。红砂港那个是普通的弯,碰巧算对了。【它出方案的时候还说“做报站器时已经实现并验证过,弯道上也准”】

这一次,它把 MTR 算轨道的那部分源码逐行照抄了一遍,拿全线 146 段路径挨个对过首尾,又顺手复核了已经上线的一百多个报站器,确认车头都还够得着,才还原存档重建。

琶洲那一段又是另一个问题。6 号线的两条轨道正好架在 0 号线的道床上方,在两线中间立单柱的话,柱子会落在 0 号线的轨道上,它只好先跳过。我让它把柱子立在 0 号线轨道之间的缝里,上面横一道大横梁,它就在全线找出这样的地方,都做成了门式墩,跨度大的,我又让它两头都立上柱子。前后改了三版,从我开口到推上线一共 1 小时 46 分钟,全线 175 个墩。

理想城的桥#

6 号线还是照着现成的样子补墩子,到了 S2 理想城这一段,就得它自己设计了。这里的桥是我从海上交通博物馆那边复用过来的,柱子做得很简陋,桥下又是城市道路,我让它把柱子做成门式,尽量贴近现实的力学结构。

它出了几道选择题,每个选项都写了力学上的理由,比如将近 30 格高的双柱墩,现实里基本都会在半高加一道横系梁,缩短柱子受压失稳的长度。其中一题问大路口那跨 62 格要不要做成变截面梁,我回了一句:

中间我做了个桥,这个桥要不要改一下适合桥墩?

它这才发现那是我自己搭的一座拱桥,之前只看了桥面以下,没认出来。最后拱一格没动,只在拱脚底下补了系杆和墩子。

接触网是这一段最考验它的地方。理想城这边有我做的几组新式接触网样板,用的是模组自带的模型方块。它把样板拆开,弄清了导线挂在模型的哪个点上。导线不是方块,是存档里一跨一个的文件,它先把现有的 253 个导线文件原样编码了一遍,逐字节对上了,才敢写新的。最麻烦的是立柱该朝哪边,它看不到画面,就从模组的渲染代码里推出朝向,先拿样板里一个还没读过的值做预测,再读存档验证,猜对了才铺。它在报告里写着:我看不到渲染出来的样子,这两处得靠你的眼睛。

S2 推上正式服的时候,出了这一段最大的事故。上线后它把线上存档拉回来核对,发现桥面上的铁砧不见了:3,873 个铁砧掉到了桥下的路面、草地和水里,还有一百多个砸在了 11 号线的高架上。原因说起来有点好笑,命令按方块名字排序,铁砧(anvil)排在石头(stone)前面,先放铁砧,后放垫在底下的石头。本地服的命令是一口气灌进去的,同一个 tick 就跑完了,铁砧来不及掉。到了线上,命令一条条进来,分散在好几个 tick 里,铁砧放下时底下还是空的。这场铁砧雨是它自己查出来、自己清干净的,当时线上没人,我也是看了报告才知道。从那以后,会往下掉的方块都排到了每批命令的最后。

彩虹桥#

11 号线往理想大学城修的时候,它问我站后的折返线要不要也做成桥,我回它:

也做,另外过河那一段,只在河里立一个柱子,做成一个大型拉索桥吧

不到半小时,河中间就立起了一座 H 形的塔,两边各十根拉索。我又让它把拉索做成彩虹色,桥塔青白混搭。模组里找不到彩色的半砖,原来用石英半砖拼出来的细索只能换成整格混凝土,粗了一倍。它画了四种桥塔配色给我挑,我选了从下往上由青渐白的那一版。后来又给桥加了两侧人行道,两头修了旋转楼梯和电梯,接到桥下的路上。

效果图
在桥头拍车
夜景

这是我第一次让它造一个“建筑”一样的东西,不过它长什么样,动工之前我就已经想好了,接下来让它建的东西,就远远不止这样了。

理想城北#

我一直想把理想城北站改成一个大型 TOD,像重庆的李子坝、沙坪坝那样。李子坝我去过很多回,“轻轨穿楼”真的很炫酷好吧。我的设想是站台上方是写字楼,站台下面是站厅,再往下几层是商场,一楼做公交总站。它问写字楼要多大,推荐的是一栋 20 层,我回它:

我觉得可以搞大点,弄4栋楼,跨过两侧道路【道路做成楼里的隧道】

我倒不担心它做不出来。我没有设计建筑的经验,不过好不好看还是分得出来的,所以接下来基本是一个套路:我说几个简单的思路,它出几个方向给我挑,挑完再改,直到我满意为止。比如外立面,它先渲染了四种风格,我选了蓝白渐变的那一版,又让它加些青色花纹,它再细化出三种。我觉得它从这里开始,已经在做设计了。

第一轮:四种立面风格
第二轮:在蓝白渐变上加青色花纹

前后两个晚上,它分五期盖完:地下三层车库,一楼临街商铺和公交总站,二楼大堂,三四楼商场,五楼站厅,六楼站台和美食街,七楼空中花园,上面是四栋塔,分别是酒店、写字楼、住宅,还有一栋写字楼,顶上 48 到 51 楼是 Yuzi 的空中别墅,带独立电梯和露台泳池。现实中享受不了这么好的,就在游戏里享受呗。

和 situ2001 在理想城北 TOD 的空中别墅品鉴

盖的过程中,有一根墩让我印象很深。S2 西线有一根柱子立在路边的人行道上,它想改成门架,可路的另一边没地方立柱,就推荐了一个倒 L 形的墩:一根柱子立在路西边,盖梁往外悬挑 24 格去托桥。渲染图发过来,我一分钟后就回了:

这个结构是不是有点离谱了?现实中这柱子真的不会折掉么?要不改成这种?

它推荐的倒 L 形墩
我在截图上画的框
改成托换框架

我在一张截图上画了个框:路两边各立一根腿,一道梁横跨马路,S2 的柱子落在梁上。它经典地回复我:“你说的对,但是……”,然后迅速地改了过来。

海傍站#

到了海傍站,我连思路都没有了,只说要建成一座大型车站,带气派的大挑高无柱雨棚。它先出了三种:大拱桁架、海浪形屋面、斜拉悬吊。我看了觉得都有点简单:

都有点简单了,整得更花里胡哨一点呢?

它又出了三种,我挑了网格海浪,它再把海浪细化成三版屋面、三种柱子,我选了海那一侧浪头高高翘起的那版,柱子三种一起用,按屋顶的高低各配各的。说实话,我心里并没有想要的样子,只能从它给的方案里挑。

白翼大拱
桁架拱加采光脊
网格海浪

不过有几处我是提了要求的:无柱的大雨棚只罩住 7、10、11 号线和 S2 的主体,S2 区间站台往外伸的那一段,用带柱子的小雨棚就行;站里要有直梯,照顾无障碍;站内的桥面也一起换掉,10 号线照着 11 号线的样式,换成自己的主题色。它还主动提醒我,岛式站台上还没有灯,大雨棚太高,灯挂在顶上照不到站台,于是又在站台上立了一排灯柱。从我开始到推上正式服,前后两个半小时。与此同时,situ 也在 GPT 里对世界之窗站进行改造,疯狂地 Vibe Building 的二人。

situ 在设计世界之窗站
我的海傍站

不过最后实际效果嘛,感觉还是 Claude 的海傍站好一点,可能是我本人更爱张扬跳脱的原因吧【喜】

傍晚的海傍站
白天的海傍站

S2 支线#

S2 支线是好几个会话接力做完的。

想修支线的念头其实很早就有,我手算的排图本来就支持区间线往外延长,最近才想把它实践一下。这一次我特意把活拆开了,模型的注意力有限,上下文压缩几次还会丢东西,像这种天然适合拆分的任务,当然该交给不同的 agent 去做。

我先在一个熟悉排图的会话里问它:把理想城线延长到城关、再分出一条支线,会不会影响别的车?它拿 S2 现在的运行图一算,延长段两个方向都有大空档,别的交路一个都不用动。但支线不能和 11 号线平交,11 号线 100 秒一班,S2 270 秒一班,两个周期不成倍数,平交迟早会撞上,所以支线得立交跨过去。

接下来就是一起定线位。我让 11 号线晚一点并线,给支线留出爬坡的距离。原本想设三个站,它读了地形给车站挑位置,站距实在太近,我就只留了一站。站台改成横平竖直的侧式,站后折返,再修一条存车线,把理想城北的车厂搬过去;线位往南挪了 16 格,让一座废弃的传送门不用拆。它算出每个轨道节点该摆在哪、每一段按现实该限速多少,先在本地服把轨道铺出来给我看,轨道就这么悬在半空。我飞过去一看,爬坡开始得太早,过道岔的车会直接穿模进上坡的轨道里,它又把起坡点往后挪到两车完全分开的地方。

线位定了,我一句“转给自动建造会话”,它就把线位、节点表、草图,连同哪些东西不能动(废弃传送门、掠夺者前哨站、村子)、怎么操作本地服,一起写进了自动建造会话的收件箱。自动建造那边接着修桥、路堤、隧道和接触网,我让它在新站修一个木质为主、好看的乡间小站,取名樱缘阁,它出了和风和中式两版,我选了和风。建完,它说存车线、车厂和交路延长还没做,我又一句“通知自动排图会话”。排图那边把车厂迁到樱缘阁,用真车多车模拟,把理想城线的发车时刻从 0 扫到 260 秒,挑了一个谁都不耽误的 160 秒。两天后,排图会话把整条支线推上了正式服,报站的会话再接着给它做了日普粤英四语的报站。

樱缘阁站
樱缘阁站

从定线位到上线,我做的就是提需求和验收。AI 不会无缘无故在世界里造东西,总得有人告诉它要什么,再进游戏看看对不对。

后来修仙贝往北的跨海段,我只说了一句要修一座宏伟的大桥,它出了斜拉、悬索和钢桁拱三种,我挑了红色的钢桁拱。从开口到上线一个半小时,放了 37 万多格方块。

跨海大桥南头的两跨钢桁拱(AI 从存档画的渲染图)
跨海大桥南头的两跨钢桁拱(AI 从存档画的渲染图)

后记#

第一篇里,我说自己好像成了一个产品加测试,这两个星期的自动建造下来,我更加确认了这一点。

它干的活,从一开始架桥墩这种又累又重复的,慢慢变成了设计大型车站、TOD 这种需要创意的,我没思路的时候,它还能出好几版方案给我挑。它也会犯低级错,沙发放反、电梯井里摆桌子、悬挑 24 格的墩,可它从不顶嘴,让改就改,还会主动提醒我哪里要进游戏看一看。真是一个才华横溢又任劳任怨的乙方啊。

在理想城北的空中花园南望理想城
在理想城北的空中花园南望理想城

其实这两个星期里,另一个会话也没闲着,我已经开始让它排图了:

接下来我们来看看全图最复杂的大环系统【以10号线为主,包含4、4A、10A、11、11A、13、14、17号线的系统】,由于其共线段及其复杂,所以之前直接放弃排图,让它们靠信号运行。这一次我们来给它来个以时刻表为指引的精确排图吧!

让 Claude 在 MC 里,从架桥到盖楼
作者
Yuzi
发布于
2026-10-27
许可协议
CC BY-NC-SA 4.0