Traffic Tool Essentials [CN] Traffic Tool Essentials(TTE)是一款专为 Cities: Skylines II(城市:天际线2)设计的交通优化模组 介绍 Neue Seite 基本信息 **前言** Traffic Tool Essentials 最初源于实际需求,其核心基于 slyh 所构建的框架: " Traffic Lights Enhancement " —— 这款模组最初由 "slyh"(在论坛和 Paradox 上以账户名 "C2VMTLE" 发布)开发,后来被弃置,连同众多依赖它的用户,包括我自己。没有可配置的路口,我的交通网络几乎毫无意义——在游戏版本 1.3.3 发布后的几个月里,没有任何更新或动态,于是我创建了 TLE 模组的分支版本,从一开始就比预期的更加全面,因此我也直接进行了重命名。 如今,在原始模组的基础框架之上,围绕纯相位和相位周期编辑,已经发展出一个更加复杂的系统,希望能够随着时间的推移,越来越好地满足每一位像我一样的交通爱好者。 这个项目已经投入了许多不眠之夜,未来肯定还会有更多。与大家一起走过这段旅程非常有趣,我会尽我所能不让大家失望! 很高兴您能来到这里,也很高兴您可能想要选择 TTE,或者已经选择了它 :) 这就是 TTE Traffic Tool Essentials 旨在为游戏本身未能提供解决方案的问题提供有意义的扩展。凭借目前超过 1800 小时的游戏时间,我相信我对什么是有用和有帮助的有很好的感觉——因为我自己也需要它。 **以下功能已经可用:** 相位编辑器 自定义信号相位: 为任意路口创建定制的信号配时方案。 顺序/传统模式: 信号灯按固定顺序或根据等待车辆数量加权切换相位。 复制粘贴: 轻松在不同路口之间传输相位设置。 删除确认: 防止意外删除相位。 绿波 组控制: 将多个路口组合进行同步配时。 独立偏移: 设置路口之间精确的时间偏移。 实时状态: 在仪表板中直接查看同步状态。 自动重新同步: 立即自动纠正时间偏差。 交通仪表板 24小时历史记录: 以迷你图形式可视化交通流量。 实时车辆计数: 精确数据而非估算值! 高峰时段分析: 显示主要交通时段和每小时最大车辆数。 排队计数器: 跟踪等待车辆数量。 数据持久化: 所有统计数据在保存和加载后仍然保留。 统计 计时器显示: 当前相位持续时间概览。 优先级信息: 优先切换详情。 交通流量监控: 实时分析通行量。 车道利用率: 跟踪各车道的占用情况。 ***即将推出的功能(开发中)*** 交通枢纽(Mobility Hubs) 多式联运节点: 释放交通网络的全部潜力。 停车换乘整合: 让通勤者能够无缝地从汽车换乘公共交通,缓解市中心压力。 集中换乘点: 优化公交、轨道和个人交通之间的路线。 交通管理中心(TMC) 全局概览: 监控个人交通和公共交通。 实时网络分析: 一目了然地识别整个城市交通网络的信息和问题。 车队管理: 实时跟踪公共交通的准点率。 快速周期模板 相位模板: 使用常见路口类型的预定义标准周期。 一键设置: 只需一次点击即可将复杂的信号相位应用到任何路口。 模板库系统: 创建您自己的最佳实践模板并在全城推广。 路口配置 入门 如何开始 / 打开菜单 在游戏 工具栏 的 左上角 点击 信号灯图标 后,TTE 的 主菜单 就会打开。它看起来像这样。 要对路口进行 配置 ,请点击 相应的按钮 。 **主菜单** - 不要对 " Mobility Hub " 感到困惑,您在当前的模组版本中还找不到这个功能 —— 它还处于*开发初期。 选择路口 在打开的 TTE 菜单中选择" 编辑路口相位 "。 选择工具现已激活 ,您现在只能点击路口。 按 ESC 退出 选择工具。 **选择工具** 使用选择工具将鼠标悬停在所需路口上,然后单击鼠标左键。这将带您进入相应路口的编辑器。 编辑路口 一旦您 点击了一个路口 ,您就会直接进入该路口的 编辑器 。 有预定义的 快速选择相位模板 ,如"分离相位"或"扩展分离相位"。 **路口编辑器** - 在编辑器中,您可以立即大致了解所选路口的数据 - 您还有**额外的选项**,例如**"红灯右转"**或"**专用行人相位**",以更好地使您的路口适应当地情况 预定义设置 预定义模式 该模组附带了几种预定义模式,在某些情况下足以显著提高路口性能。包括以下内容及其功能: 原版(Vanilla): 直行/转弯受保护,一侧转弯方向享有优先权(左侧通行:右转车辆 / 右侧通行:左转车辆) 分离相位: 同一时间只有一条进入路口的道路显示绿灯 扩展分离相位: 类似分离相位,但额外为横向街道提供受保护的转弯车道 受保护左转/右转: 首先转弯车道切换(左侧通行:左转 / 右侧通行:右转),然后是直行/对向的常规交通流 对于高级**详细信息**和**真实车辆计数、占用车道、等待车辆等**,需要**自定义相位周期** 对于 复杂的路口 ,始终建议设计 自定义相位周期 ,以获得 最佳性能 并充分享受模组功能的乐趣 预定义选项 该模组附带了几个预定义选项,您可以用它们来扩展预定义模式,这可以再次显著提高路口性能。包括以下内容及其功能: 允许红灯转弯: 允许在红灯时转弯(左侧通行:左转 / 右侧通行:右转) 让行于对向车辆(仅限原版模式): 车辆转弯时必须注意对向交通 (高交通量可能会降低有效性,因为驾驶员可能会激进地"抢行") 专用行人相位: 所有车辆停止;专门为行人启动一个独立相位 行人相位持续时间: 设置行人绿灯时长。 注意:仅在"专用行人相位"时生效。信号灯不是"智能的",不会自动延长 **参数说明** - 最短持续时间: 相位必须至少运行这么长时间,完全不受当前交通流量大小的影响 - 最长持续时间: 相位最多可持续这么长时间(例如,在交通量较小的路段主动减少相位持续时间,以优先考虑主要交通方向) - 目标持续时间: 影响(作为两个因素之一)绿灯相位的持续时间。2倍 = 两倍长,等等。 - 车道占用率: 影响(作为两个因素中的第二个)绿灯相位的持续时间,但是目标控制的,不像目标持续时间那样是原则性的,而是仅当车道实际被车辆占用时 - 间隔指数: 需要等待很长时间的车辆和相位在优先模式下会被优先考虑,以防止它们"饿死"。不过,使用更现代的变体(顺序模式)可以更优雅地处理这个问题 自定义相位周期 打开相位编辑器基础菜单(PBM) 在 下拉菜单 中,将 相位模式 设置为" 自定义相位 " 然后点击" 编程自定义相位 " 相位编辑器的 基础菜单 将 打开 您还可以在这里 更改 相位 切换方式 优先级( 默认 ) ,根据当前交通流量切换 顺序( TTE 模式 ) ,按顺序切换相位 **相位编辑器(基础菜单)** 在这里您可以管理您的相位: **创建**相位、**移动**相位、**编辑**相位、**删除**相位、**复制**相位和**粘贴**相位 添加相位 点击" 添加相位 ",相位菜单会立即打开 根据您的偏好和当地需求设置 相应相位的参数 还要在这里设置哪些 道路使用者 应在某个相位中 被优先考虑 。 例如,如果某个相位中电车道和个人交通车道交叉,而您设置了优先考虑公共交通,则交通会等待电车通过路口 **参数说明** - 最短持续时间: 相位必须至少运行这么长时间,完全不受当前交通流量大小的影响 - 最长持续时间: 相位最多可持续这么长时间(例如,在交通量较小的路段主动减少相位持续时间,以优先考虑主要交通方向) - 目标持续时间: 影响(作为两个因素之一)绿灯相位的持续时间。2倍 = 两倍长,等等。 - 车道占用率: 影响(作为两个因素中的第二个)绿灯相位的持续时间,但是目标控制的,不像目标持续时间那样是原则性的,而是仅当车道实际被车辆占用时 - 间隔指数: 需要等待很长时间的车辆和相位在优先模式下会被优先考虑,以防止它们"饿死"。不过,使用更现代的变体(顺序模式)可以更优雅地处理这个问题 设置相位车道放行 按照这种方式创建多个相位,为每个重要路口打造独特的"心跳"。 逐步创建 您在相应路口 覆盖所有进口道和转弯车道所需的 所有 相位 点击所需 道路使用者 (汽车/自行车、公共交通、行人)的 红色图标 ,将相应的信号灯从 红色切换为绿色 再次点击 同一符号,颜色 变为蓝色 ,这意味着 第三次点击 ,将符号恢复到 初始状态(红色) **提示** 1.: 在主要交通干道的路口创建单独的行人相位,这些路口也有很多行人出现(很可能在市中心,或后期规划的大型绕城道路等) 2.: 对于"绿波"很重要 : 整体周期中的最后一个相位 应该( 仅在使用"绿波"功能时相关 )是一个额外的" 有用相位 "——即在 重要路线 上传输交通的相位,因为当组内路口的整体周期长度差异显著或各路口的相位数量差异过大时,同步系统会将最后一个相位用作 同步缓冲 。 复制和粘贴相位 在 PBM 中 点击 " 全选 " 复选框 , 位于左上角 3 个按钮附近 根据需要 调整 您的 选择 点击 " 复制 "按钮 切换 到您要 添加相位 的 另一个路口的 PBM 点击 " 粘贴 "按钮, 3 个按钮中间的那个 **复制/粘贴工具** - 工具不能创造奇迹 。对于 非相同的路口 ,系统在复制时会尝试转移 尽可能多的信号切换 ,但您应该 再次检查 并在必要时 进行调整 。 - 在同步路口时, 使用"绿波"功能时 ,如果使用该工具将分组路口在时序设置(即最短持续时间、最长持续时间等)方面完美对齐,则可以最好地优化系统 高级功能和工具 "绿波"工具 介绍 "绿波"工具现在为您提供了在游戏中将不同路口的信号相位同步为协调走廊的能力。 例如,在 市中心区域 ,经常会出现多条 横向街道 一个接一个地穿过 主要交通轴线 的情况。 为了仍然能够尽可能优化地 沿着主要交通轴线 引导 交通 通过各个路口,您可以使用此工具将 各个路口组合成组 。 在这些 走廊组 中,可以定义一个 参考路口 ,组中的 其他路口 将以此为基准进行 对齐 。 通过为组中的其他 路口 设置"偏移量",即相对于 参考路口 的 时间延迟 ,您可以定义各路口在 参考路口之后 以多大的 时间偏移 切换到第1相位。 经过一些调整和/或良好的规划,您沿走廊的信号灯将在车辆到达之前切换为绿灯(这样错过早期相位周期的车辆可以在新交通到达之前被清空) 准备绿波 要使用绿波工具,必须在相应路口使用自定义相位周期,而不是任何预定义选项。 为了节省工作量,您可以例如复制参考路口的相位周期,并将其粘贴到受绿波影响的路口。 如果尚未完成:在下拉菜单中将 相位模式 设置为**"自定义相位" ,并在路口中 创建 所需的 相位**,或从其他路口 复制相位 之后,您就可以点击出现的" 绿波 "按钮了 **用例演示(示例)** *包括标记的参考路口* **算法设计** *(绿波系统架构)* 要实现正常运行的" 绿波 ",每个 相位周期 的 第一相位 (P1) 必须 优先考虑绿波应被引导的交通方向。 请注意以下事项: 整体周期的第一相位 必须是决定绿波方向的相位。系统同步所有路口,使它们在轮到时准备好在正确的时间切换到第1相位。 整体周期的第二相位 应该是一个" 有用相位 "。这意味着:当各路口的 整体周期持续时间偏差过大 (因为没有很好地对齐)或路口的 相位数量 偏差过大(至少一个路口与其他路口相差≥2个相位)时, 系统 必须使用 最后一个相位 来补偿任何 不平衡 。 因此,路口的最后一个相位将不时被延长以保持系统同步。为了避免横向街道"饿死",即压缩其相位长度以便路口能够赶上,我决定在紧急情况下宁可延长最后一个相位并等待路口完成其周期。还有一个快速模式,系统在强制释放时会激活它。 强制释放在版本 2.2.2 中偶尔会因有时粗暴的干预而被注意到。在即将发布的版本更新中,这些系统也将再次进行调整。然而,在大多数用例中,这应该不会成为问题,并且可以通过您自己的操作来规避。这需要一些调整。 创建走廊组 现在点击" 新建组 ",随后将创建该组 在下拉菜单中选择刚刚创建的组(仍名为"新建组"),和/或重命名它(最好在指定的"组"选项卡中) 第一个添加的路口在大多数情况下也被视为参考路口。参考路口以偏移量 0s 确定。或者偏移量最低的路口自动成为参考路口。 现在添加另一个路口,理想情况下直接添加参考路口之后的路口,然后是下一个——依此类推 可以随时通过偏移量设置轻松调整路口的优先顺序 偏移量计算器可能会给您初步指导,帮助您大致估算需要设置的值。随着城市规模的增大和模拟速度的降低,设置的 12 秒当然不再是精确的 12 秒。在后端,帧被转换为人类可理解的值,然后传输到前端。 **系统架构和参考逻辑**(总结) *为了确保不同路口类型之间的同步性,系统建立了**动态参考控制**。以下逻辑规则适用于稳定运行:* - P1 优先: 周期的第一相位( P1 )定义"绿波"的方向。系统根据各路口的个别偏移量进行计时,使它们在计算时刻准时初始化第1相位 - 顺序相位切换: 对于绿波运行,相位必须按照 TTE 建立的新"顺序模式"切换模式进行切换,因为 TLE 传统模式中的相位切换无法预测,因此无法同步。世界上没有任何地方会以这种方式编程绿波,这里也是如此。要再次使用传统模式,您必须将受影响的路口从相应的走廊组中移除 - 动态漂移补偿: 当各路口的整体周期长度不同或相位数量差异显著(差异≥2)时,系统会保护横向交通免于"饿死"。系统不会压缩相位,而是在需要时延长路口周期的 最后一个相位 ,以平衡不平衡并等待参考路口的全局节拍 - 参考锚点(偏移量 0s): 偏移量最低(理想情况下为 0s)的路口充当节拍器。所有其他偏移量必须 相对于参考路口 计算——而不是相对于前一个路口 组面板 在**"组"**选项卡中,您可以管理走廊的逻辑单元。在这里,您可以在对各个路口进行微调之前定义基本结构。 集中管理: 一键创建新组,重命名以获得更好的概览(例如,按主要交通轴线命名,如"B1 / 波茨坦大街")或删除不再需要的关联 ECS 逻辑: 系统资源高效运行。由于*实体组件系统(ECS)*架构,没有存储数据的空组不会被自动永久保存。您不必担心"清理"孤立的空组——系统会在后端为您处理 状态反馈: 在面板中,您可以一目了然地看到有多少路口已分配给一个组,以及该组是否已初始化(通过绿点/状态识别)。 只有在"路口"选项卡中分配了所需路口 之后 才重命名您的组。这可以简单地防止在对组结构进行复杂更改时出现数据同步的边缘情况 仪表板 仪表板是您的控制中心。在这里,您可以实时查看您的规划是否在游戏世界中生效。 当您对走廊组进行重大更改时,有时可能会注意到混乱的行为——这取决于各路口之间的差异 SYNC 状态: 如果 SYNC 图标 显示为绿色,则表示路口已成功锚定在组的全局节拍中。 如果路口失去同步(例如,由于手动干预或极端的模拟延迟),您会在这里看到 强制释放逻辑 或 快速模式 如何尝试恢复同步。 相位进度条: "相位 X / Y"下方的绿色条准确显示路口处于周期的哪个位置。 重要: 由于系统有时会在不平衡时 延长最后一个相位 ,您会观察到这里的进度条有时会在周期结束时"等待"。这不是错误,而是 动态漂移补偿 在起作用 周期差异: 在这里您还可以看到一次循环的总持续时间(以秒为单位)。确保组内所有路口的这些值尽可能接近(无害:例如屏幕截图中的 476s 与 472s)。差异越大,系统需要的干预就越大 **找到"完美"的偏移量** - 使用仪表板观察实际交通流量。如果您看到车辆到达2号路口,但进度条只在第1相位的10%处,说明您的偏移量太高。目标是当参考路口的车队到达停车线时第1相位开始(进度条开始运行),或者可能更早一点,以考虑之前可能被电车阻挡的绿波。您拥有完全的自由! 已知问题 - 在创建和设置组时,可能会发生仪表板中所有路口都卡在P1且什么都不做的情况。这确实不好,但您可以绕过它。从受影响的组中移除所有路口,在组不再包含路口时删除该组,创建一个新组,并仅在所需路口已在其中运行时才重命名。之后,无论您进行什么更改,都不应再出现问题。当所有路口的相位周期长度相同时,系统有时可能会遇到边缘情况,在这种情况下应该触发的强制释放逻辑根本不会被调用。