CityGen 是 Unreal Engine 5 的一个运行时 C++ 插件,将无限程序化地形变成一个城市建造沙盒——玩家可以在运行时绘制道路、放置建筑和涂装区域,在围绕他们生成的开放世界中进行。把WorldStreamingManager放进你的关卡,设置好RTS摄像机,你就能在午饭前完成城市建设、RTS或4X游戏的核心运行。

可玩演示 | 文档 | Discord社区

V1.3 昼夜 | V1.2 人行道、桥梁、道具 | V1.1 精妙发布 | V0.6 分区 | V0.5 建筑 | V0.4 存档/加载 | V0.3 桥梁 | V0.2 道路 | V0.1 摄像机

──────────────────────────────

运行时间,不是编辑时间

──────────────────────────────

CityGen 并不是编辑时间的城市生成器。像iPCC、CityBLD和UE5内置的Landscape Splines这样的工具,可以在编辑时生成城市,并嵌入到你的关卡中。CityGen 在游戏开始时运行——玩家绘制道路、涂色区域,观看建筑物的出现。不同类别,不同问题解决。

基于 WorldGen 地形核心构建。所有 WorldGen 功能都包含在内——使用 CityGen 不需要单独 WorldGen。

──────────────────────────────

城市建设功能

──────────────────────────────

■ 玩家绘制道路工具
■ 昼夜系统(V1.3)——可插入的“CityGenTimeOfDay”演员驱动太阳+月亮、后期曝光、SkyLight重摄,以及平滑斜坡的“Illuminate”MPC标量。可配置的亮窗,30分钟平滑渐淡。PreviewInEditor 用于实时清理。

¹ 人行道(V1.2)——每块地面道路格块上都有平行的样条网格条。

∀ 线性Z路面坡度——控制点之间道路保持平整于起伏地形;网格和块状平整床完全匹配

■ 交汇处

∭ 固定角度弯曲——单中点弧锚点,带有平分切线,干净的90°角,无面伪影

∾ 样条-网格道路渲染——局部平均切线覆盖消除非对称间距下的Catmull-Rom超冲

♬ 桥梁 — 河谷跨度自动检测,按段桥梁网格+带滞后原理的柱子

∭ 路边道具 — 每个道路资产,每个网格一个ISM数据资产。每种类型的间距/侧面/比例/旋转,桥梁滤波器,’bExtendToGround’ 电线杆模式,碰撞切换,枢轴无关的位置。

▸ 路边道具区过滤器(V1.2)——每个螺旋桨的去区/住宅/商业/工业切换开关。人行道条继承了最近单元区;桥式旁路滤波器。

■ 路边道具雕刻感知放置(V1.2)——道具根据实际雕刻的路面坡度读取Z;绝不在交叉路口的甲板上生成;重建推迟,直到部分块稳定。

■ 建筑布局工具

¹ 足迹感知建筑Z(V1.2)——旋转布局内最大3×3网格的Z = 位置。深底隐藏下坡缺口;从未被埋在山坡上。应用于幽灵、提交、自动区域填充和保存/加载。

∀ 缩放安全光标 + 点击(V1.2)——RTS 最大缩放解决光标 + 道路/拆除/区域点击(通过投影 + 长线追踪退回)。

∀ 城市-天际线网格捕捉 + OBB-vs-OBB SAT碰撞——建筑物与最近道路的切线对齐,OBB占地与所有其他建筑进行OBB测试

∀ 坡度感知拒绝 — 每个资产的MaxSlopeDegrees阻挡在过陡地形上的放置

∈ 多单元足迹 + 网格变体 + 每个位置高度掷骰——所有这些都保留在存档中

♬ 分区系统 — 城市-天际线区域绘制,每段2D单元格,每次点击4×4刷,每个区域资产加权建筑池

■ 区域自动填充——绘制单元格,获得建筑;抹去牢房,建筑物就会消失。起源细胞追踪。手工建筑能够通过分区规定存活下来。注意路口。拆除时的去区。

■ 拆除模式 — X 键,移除建筑物和道路段

∭ RTS摄像棋子 — 增强输入、可放大的平移速度、自动俯仰、中键平移、右键轨道带阻尼功能

♬ HUD API

† 保存 / 加载(F5/F9)

──────────────────────────────

继承自WORLDGEN CORE版本

──────────────────────────────

∀ 无限块流 — 演员池,运行时无生成/摧毁

∀ 异步网格+碰撞——线池几何体;bUseAsyncCooking 默认

♬ 无缝块法线 — 1顶点边界重叠消除接缝

∀ 分层噪声 — 第0层是所有后续层的大陆遮罩

∭ CLMNoise — Perlin / Simplex / Cellular / Ridged Multifractal / 域扭曲。没有第三方的DEPS。

▸ 生物群系混合 — 顶点颜色权重:草地 / 岩石 / 雪地 / 海滩 / 水下

♬ 空间生物群落——温度 + 湿度场 →苔原 / 北方针叶 / 沙漠 / 热带

♬ 海滩层——海拔高度带,嵌入UV1.x

▸ ISM植被+密集草坪——数据资产驱动,无BVH峰值,坡汇聚

♬ 水力侵蚀 — 粒子液滴模拟,完全异步

► LOD + 远地形 — 每个环的分辨率加上外部低分辨率地平线环

♬ 地形变形 — 运行时球形刷子,在重建过程中持续存在

∭ 排除体——在方框区域内平整 + 植被抑制

▸ 演员生成器系统 — 生物群系/坡度/高度过滤,消耗位置追踪

▸ 地形查询API — SampleTerrainAt / GetHeightAtWorldPos,同步,BP可调用

♫ 多人支持——所有连接玩家的直播

▸ 水平面 — 跟随玩家,覆盖全视距

■ 编辑器预览 — 预览/清理地形按钮

──────────────────────────────

技术亮点

──────────────────────────────

∭ 纯C++运行时 — 蓝图友好的公开参数

▸ ProceduralMesh基于组件的几何体

∭ 虚拟阴影贴图 + 默认距离场阴影

♬ 增强输入全过程 — 输入映射上下文驱动摄像头和模式

■ 样条网格道路 + 带有线性Z级的人行道渲染

∭ 每个道具网格一个ISM——共享碰撞体,无每次实例的烹饪卡顿

∭ CLMNoise — 原始噪声库,无外部依赖

∀ 每个区块的种子随机数——确定性植被、草地、变体、区域填充

♬ MPSC 上传队列 — 工作线程网格上传,帧时间限制

∀ 光标射线投射位置Z — 匹配渲染的网格,而非解析噪声

♬ 倾听 / 客户端 / 专用服务器——无需额外设置

♬ 纳米机器人兼容 — ISM植被、草地和道具

──────────────────────────────

包含

──────────────────────────────

■ 完整C++源代码

♫ 即时战略摄像机兵 + 玩家控制器蓝图

▸ 游戏内界面

■ 预建景观材质,带有生物群系混合功能

■ 道路、建筑和分区数据资产示例

∀ 15个预先合成的建筑场景网格——5个住宅场景(房屋+院子+道具),5个商业场景(塔楼/商店/广场),5个工业场景(仓库+地块+道具)

■ 桥梁螺旋桨网格套装——铁塔、配重分配器、路灯柱,配对材料(M_Concrete、M_Pole、M_Light)

♬ 人行道网格 + 混凝土材料(V1.2)

♬ DA_Road预设了RoadProps项目:电塔(延伸至地面,仅桥梁)、重量分布板和路灯柱(两侧+镜面);人行道田野

■ 样本植被和草地数据资产

■ 采样树木、松树和草地网格与材质

♬ 样本生成器数据资产和演示演员

■ 演示地图

──────────────────────────────

非常适合

──────────────────────────────

城市建设游戏、即时战略游戏、4X原型、大亨与管理游戏、生存殖民地、基地建设游戏,以及任何需要玩家塑造开放世界——道路、建筑和区域——的项目,建立在程序化地形流媒体之上,而无需从零编写道路几何体、建筑布局、分区或区块管理代码。

声明:本站所有资源都是由站长从网络上收集而来,如若本站内容侵犯了原著者的合法权益,可联系站长删除。