CityEngine 教程:从入门到精通
CityEngine 是 Esri 公司开发的一款专业三维建模软件,它最核心的优势在于程序化建模,这意味着你可以通过编写规则来生成和编辑城市,而不是像传统建模软件那样一个一个地去创建建筑,这使得它尤其适合快速生成大规模、风格统一且可修改的城市景观。

第一部分:入门准备与核心概念
在开始建模之前,理解 CityEngine 的核心思想至关重要。
核心概念:规则驱动
- 规则: 这是 CityEngine 的灵魂,一个规则本质上是脚本的集合(通常使用 CGA Shape Grammar 语言编写),它定义了如何将一个简单的二维图形(如地块、线)转换成一个复杂的三维模型。
- 工作流:
- 输入数据: 通常为二维数据,如 Esri Shapefile (.shp)、OpenStreetMap (OSM) 数据、CAD 文件等,这些数据定义了城市的基本骨架,如地块、道路、建筑轮廓等。
- 应用规则: 将你编写的规则或 Esri 提供的预设规则应用到输入数据上。
- 生成模型: CityEngine 会自动解析规则,并批量生成三维模型。
- 迭代优化: 修改规则参数,重新生成模型,快速迭代设计。
界面概览
熟悉主界面是第一步,CityEngine 的主要窗口包括:
- 3D 视图: 显示和交互三维模型。
- 2D 视图: 用于编辑和查看二维数据(如地块)。
- 规则编辑器: 编写和调试 CGA 代码的核心区域。
- 图层管理器: 管理场景中的所有图层(数据、规则、模型等)。
- 属性检查器: 查看和修改选中对象(如一个地块、一个建筑)的属性。
第二部分:官方学习资源(首选)
Esri 提供了世界一流的学习资源,这是学习 CityEngine 最权威、最系统的途径。
Esri 官方教程
这是必须走一遍的路径,尤其是新手,它以项目为导向,手把手教你完成一个完整的城市生成项目。

- 路径: 打开 CityEngine ->
Help->Tutorials。 - 核心教程列表:
- Getting Started with Esri CityEngine (入门教程): 介绍基本界面和简单的工作流。
- Creating a City (创建城市): 这是最重要的教程! 你将学习如何:
- 导入地块数据。
- 应用预设的建筑规则。
- 调整规则参数来改变建筑风格。
- 生成街道和道路。
- 导出模型。
- Creating a Street Scene (创建街道场景): 更深入地学习街道、人行道、路灯等元素的生成。
- Introduction to CGA (CGA 入门): 学习编写自己的简单规则,理解 CGA 的基本语法。
- Creating a Custom Rule (创建自定义规则): 从零开始创建一个建筑规则。
Esri Learn (在线课程)
官方的在线学习平台,提供更灵活、模块化的课程。
- 推荐课程:
- Introduction to CityEngine: 系统性的入门课程。
- CityEngine for 3D Visualization: 专注于如何使用 CityEngine 创建高质量的 3D 可视化效果。
- CityEngine for Urban Design: 面向城市规划师和设计师。
官方文档与范例
- CityEngine Help:
Help->CityEngine Help,这是最全面的参考手册,包含了所有功能的详细说明和 CGA 语法参考。 - CityEngine Examples: 安装目录下的
samples文件夹,包含了大量高质量的范例场景和规则文件。强烈建议仔细研究这些范例! 你可以直接打开它们,查看规则代码,理解作者是如何实现复杂效果的。
第三部分:学习路径建议
基础入门 (1-2 周)
- 完成官方入门教程: 严格按照
Help -> Tutorials中的Creating a City教程,完整地做一遍,不要跳步,确保每个操作都理解。 - 熟悉界面: 知道如何在不同视图间切换,如何使用导航工具(平移、缩放、旋转),如何选择和编辑对象。
- 理解基本工作流: 明确“数据 -> 规则 -> 生成”这个核心流程。
规则初探 (2-4 周)
- 学习 CGA 基础语法: 阅读
CityEngine Help中的 CGA 部分,或者完成Introduction to CGA教程,重点理解:Attr: 定义属性(如高度、层数)。Lot: 处理地块,分割和操作形状。Shape: 处理几何体,拉伸、挤压、开窗等。Scope: 获取当前生成对象的上下文信息。
- 修改预设规则: 找到官方范例中的建筑规则,尝试修改其中的参数(如
BuildingHeight、RoofHeight),然后重新生成,观察变化,这是理解规则如何工作的最快方式。 - 编写简单规则: 尝试写一个最简单的规则,比如一个长方体,然后给它加上一个屋顶。
项目实践 (1-2 个月)
- 获取自己的数据: 找到你所在城市或感兴趣区域的 OpenStreetMap 数据,或者使用 Esri 提供的示例数据。
- 搭建完整项目: 尝试从头到尾创建一个项目:导入数据 -> 清理数据 -> 应用规则 -> 生成场景 -> 调整细节 -> 导出模型。
- 深入学习范例: 打开
samples文件夹下的复杂范例(如Berlin、Paris),逐行分析它们的规则代码,学习如何实现复杂的建筑细节、街道纹理和城市布局。
高级技巧与精通
- 编写复杂规则: 学习如何使用函数、条件判断、随机性等高级 CGA 特性来创建更逼真、更多样化的模型。
- 纹理与贴图: 学习如何使用纹理贴图、法线贴图来增加模型的细节和真实感。
- Python 脚本: 学习使用 Python 与 CityEngine 交互,实现自动化任务,如批量处理数据、自定义工具等。
- 与其他软件集成: 学习如何将 CityEngine 生成的模型导入到 ArcGIS Pro、Unreal Engine、Unity 或 3ds Max 中进行后期渲染和集成。
第四部分:实用技巧与资源
- 快捷键: 熟练使用快捷键能极大提升效率。
F: 聚焦选中对象Shift + F: 框选聚焦L: 切换到线框模式O: 切换到正交/透视视图
- 调试规则:
- 在规则编辑器中设置断点,可以一步步查看代码的执行过程。
- 使用
print()函数在 Console 窗口输出变量值,是调试最常用的方法。
- 社区与论坛:
- Esri CityEngine Resources: 官方资源中心,有更多教程和范例。
- Esri Community - CityEngine: 官方论坛,可以提问和交流。
- YouTube 搜索 "CityEngine Tutorial": 有很多优秀的第三方教程,可以补充官方资源。
学习 CityEngine 的关键在于“实践”和“思考规则”。
- 从官方教程开始,打好基础。
- 不要害怕看代码,多分析范例。
- 动手做自己的项目,哪怕很小。
- 把规则看作是“设计说明书”,而不是“建模命令”。
祝你学习顺利,早日用 CityEngine 创造出属于自己的虚拟城市!

