传送带物理学
异星工厂中的传送带运输系统是游戏中最为精密的模拟系统之一。箱子等容器中的物品仅以物品组的形式存储,而位于连续的传送带上的物品则作为一个整体进行移动,这是一种针对性能的优化措施。但最终,传送带上的每个物品都作为一个独立对象单独模拟,尤其是在机械臂抓取或放置物品时。这导致了一些复杂的行为,尤其是在涉及到机械臂运输量的时候。
传送带属性
- 密度:特定长度的传送带上可以放置的物品数量,以每格中每条线路上的物品数衡量。在直线传送带上,最大密度是4个/格,这与传送带或物品的类型无关。传送带密度可能与地面物品(使用Z键丢弃)的密度不一致。可以通过使用堆叠机械臂
增加密度,但每格中每条线路上的物品组数量最多为4组。
- 速度:出于实际考虑,物品在传送带上的速度单位通常是格/秒。注意,在游戏内部,实际使用的单位是位置(1/256格)/刻(1/60秒),这会在下文详细说明。基础传送带的速度是1.875格/游戏秒,高速传送带的速度是基础传送带的2倍,极速传送带的速度是基础传送带的3倍,而超速传送带
的速度是基础传送带的4倍。
- 吞吐量:每秒从一格传送带移动到下一格传送带的物品数量,计算方法是密度(个/格)乘以速度(格/秒)。例如,对于基础传送带,单条线路的吞吐量是 4 * 1.875 = 7.5个/秒,而对整条传送带(两条线路)而言,吞吐量翻倍,即15个/秒。
- 压缩: 传送带上的物品之间如果紧密排列没有空隙,则被称为完全压缩,否则就只是部分被压缩,且无法达到最大吞吐量。将物品输入传送带的实体——机械臂、分流器、从侧面接入的另一条传送带,采矿机等等——可以将物品间的小空隙扩大为足够整个物品放入的空间。这意味着传送带在物品开始积压时会自动达到完全压缩状态。
- 线路: 传送带有两条平行的线路(即两侧,或称为“半带”),无论传送带如何弯曲,每条线路的密度和速度都是恒定的,且其值相互独立。转角传送带的两条线路速度相同,但内侧线路的长度比外侧线路短,所以内侧线路的物品会先于外侧线路的物品离开转角。
传送带速度
根据上述数据,可以计算出四种传送带的速度和吞吐量。以下数据已经过游戏中实际测量证实无误。
传送带类型 | 速度 | 吞吐量 | ||||
---|---|---|---|---|---|---|
系数 | 格/秒 | 单线路 个/秒 |
单线路 个/分钟 |
双线路 个/秒 |
双线路 个/分钟 | |
基础传送带 | 1 | 1.875 | 7.5 | 450 | 15 | 900 |
高速传送带 | 2 | 3.75 | 15 | 900 | 30 | 1800 |
极速传送带 | 3 | 5.625 | 22.5 | 1350 | 45 | 2700 |
超速传送带 | 4 | 7.5 | 30 | 1800 | 60 | 3600 |
传送带上的物品
如前所述,物品在传送带上以压缩状态和一定密度占据空间。事实上,传送带上的每个物品在任意时刻都精确地位于某一格传送带上。
例如,尽管在下图中,一个物品可能看起来有一半位于一格传送带上,而另一半位于下一格传送带上,但它实际上会被计入两格传送带的某一格上:
- 如果物品所在的那格传送带停止运行,物品也将停止移动;否则物品将继续传送——没有其它中间状态。
- 如果将传送带接入信号网络,并设置为读取运载物,可以发现物品会精确地被某一格传送带读取。
- 机械臂只能抓取逻辑上位于其正前方那一格传送带上的物品,而无法抓取相邻一格传送带挤入的物品。
从这个意义上来说,可以将传送带上的物品看做具有一定最小间距的点,而非具有一定面积的相邻物体。对于涉及传送带的计算和包含传送带的信号网络而言,这些“中心点”在物品图标上的位置并不重要,尽管看上去它们确实位于物品的中心:

在图中,相邻传送带之间有1刻的延迟。在同一刻停止上面一排传送带的运行,导致最下端的物品以不同长度突出。最左侧传送带上的物品几乎向下一格传送带格突出了半格的长度,这意味着物品的中心点距离停止的传送带格的边缘最近。
下面的示意图表展示了某些物品在两条直线高速传送带上移动时,每一刻的输出信号情况。物品的中心点标识为*
。(传送格1与传送格2之间的空格只是为了看得更清楚——在游戏中,两格传送带间并没有空隙。)
刻 传送格 1 传送格 2 传送格1输出信号 传送格2输出信号 |------------------------------| |------------------------------| 脉冲 持续 脉冲 持续 0 <---*--> <---*--> <---*-- ><---*--> <---*--> 0 3 0 2 1 <---*--> <---*--> <---* --><---*--> <---*--> 0 3 0 2 2 <---*--> <---*--> <-- -*--><---*--> <---*-- 0 2 1 3 3 <---*--> <---*--> < ---*--><---*--> <---* 0 2 0 3 4 -> <---*--> <---*--> <---*--><---*--> <-- 0 2 0 2 5 *--> <---*--> <---*- -> <---*--><---*--> < 1 3 0 2 6 --*--> <---*--> <--- *--> <---*--><---*--> 0 2 1 3 7 <---*--> <---*--> <- --*--> <---*--><---*--> 0 2 0 3 8 <---*--> <---*--> <---*--> <---*--><---*--> 0 2 0 3
传送带位置和长度
精确测量显示,转角传送带的外侧线路比直线传送带长1.15234375倍,或以分数表示为295/256。 这意味着每格直线传送带有256个位置供物品放置,尽管这种精度的位置测量只能通过间接手段完成。
以下是不同种类传送带的速度和长度,以位置为单位衡量:
类型 | 位置数 | |
---|---|---|
基础传送带速度,每刻 | 8 | |
高速传送带速度,每刻 | 16 | |
极速传送带速度,每刻 | 24 | |
超速传送带![]() |
32 | |
传送带上单个物品的长度(任意速度下) | 64 | |
直线传送带和地下传送带的线路长度 | 256 | |
分流器输入端口线路长度 | 179 (128+51)1 | |
分流器输出端口线路长度 | 128 | |
转角传送带内侧线路长度 | 106 | |
转角传送带外侧线路长度 | 295 | |
一条直线传送带近端汇入另一条传送带或地下传送带出口的长度 | ![]() |
68 |
一条直线传送带远端汇入另一条传送带或地下传送带入口的长度 | ![]() |
188 |
(1)包含51个位置的缓存区域[1]
举例说明,利用这些数据,我们可以计算出基础传送带的速度:
- 8 (位置/刻) / 256 (位置/格) * 60 (刻/秒) = 1.875 格/秒
相应的单条通道吞吐量为:
- 8 (位置/刻) / 64 (位置/个) * 60 (刻/秒) = 7.5个/秒
参见
- 传送带运输系统
- 周五工厂报 #276:传送带物品间距与脚本渲染
- 周五工厂报 #176:0.15版本中的传送带优化
- 传送带精确测量 (基于0.17版本)
- 关于传送带编号 (来自开发人员boskid)