CityEngine 里的 handle(手柄)不是模型上的装饰,而是你在视图中直接拖拽、用来改变建筑形态或属性的交互控件。这门课把 Tutorial 18 完整拆开,讲清楚 handle 是怎么创建出来的、在什么场景下用、以及背后的 CGA 规则要怎么写。
这门课解决什么问题
很多学习者做完基础建模后,会卡在“参数化调整”这一步:规则写死了,想改个楼高、换个立面样式,就得回代码里改数字,再重新生成。handle 的意义就是把这层控制暴露到视口里——你拖动一个箭头或滑块,模型实时变化,不用碰代码。但 CityEngine 的 handle 不是默认就有的功能,它需要你在 CGA 文件里显式定义,还要配合场景对象的属性绑定,这一整套流程,恰恰是官方教程里最容易跳过的部分。
这门课用三个不同场景(对应课程里 3-1 到 3-3 的案例)展示 handle 的典型用法:有的场景是控制建筑体量的拉伸,有的是控制楼层数或立面开窗,还有的是控制屋顶形态。这些场景的差异,不是简单换了个模型,而是让你理解 handle 在不同参数类型下的表现。如果你已经会写基本的 CGA 规则,但不知道怎么让规则“可交互”,那这门课就是补上这块缺口。
适合什么基础,建议先看哪几块
你需要先会 CityEngine 的基本操作——知道怎么导入地块、怎么把 CGA 规则应用到 shape 上、怎么在视口里切换模型。另外,CGA 语法要看得懂基本的结构,比如 lot、building、mass 这些规则,以及 attr 属性声明。如果这些还不熟,建议先补基础再回来。
课程结构上,建议按这个顺序看:先看 2-1,这是 handle 创建方法的最小示例,花十二分钟把“怎么创建一个 handle”这件事看明白;接着跳回 3-1 到 3-3,把三个场景完整过一遍,重点不是看模型多好看,而是观察每个场景里 handle 拖着改变的是什么参数;最后再进 4-1 到 4-4,这是最核心的 CGA 文件编写部分,四段连起来,从零开始写一个建筑单体的 handle 规则,包括 handle(color) 这种控制颜色的写法。如果你时间紧,至少把 2-1 和 4-1、4-2 看完,就能搭起基本框架。
学完能独立做什么,资料怎么配合练习
学完这一整套,你应该能自己给一个建筑单体项目加上 handle:定义需要的属性(比如层数、面宽、屋顶类型),在 CGA 里用对应的 handle 函数把这些属性暴露出来,然后在视口里拖拽调整,实时看到建筑变化。更进一步,你能把 handle 和颜色绑定,做出通过手柄切换立面材质的效果。这些能力,在方案推敲或批量生成变体时非常实用。
练习时,不要只是跟着视频点。打开 CityEngine 后,把课程配套的项目文件载入,先不改代码,直接拖每个 handle,感受参数范围对模型的影响。然后回到 CGA 编辑器,对照视频里的写法,自己改一个属性,比如把层数从“整数”改成“范围”,看 handle 的形态会不会变。最后,试着删掉一个 handle 的定义,重新写一遍,直到不看视频也能复现。资料包里会有场景文件和 CGA 文件,但别急着打开成品——先自己建一个空白场景,从 2-1 的简单方法开始做,遇到卡壳再对照资料里的文件,这样才真正补上能力缺口。
课程目录
1-1 [案例介绍] 案例介绍 (07:14) 2-1 [创建简单的handles方法] handles的创建方法 (12:38) 3-1 [关于案例的说明] 案例的第一个场景part1 (11:15) 3-2 [关于案例的说明] 案例的第二个场景part2 (11:28) 3-3 [关于案例的说明] 案例的第三个场景part3 (09:16) 4-1 [关于handle的cga文件的详细教程] 以建筑单体为案例handle的cga文件编写1 (13:21) 4-2 [关于handle的cga文件的详细教程] 以建筑单体为案例handle的cga文件编写2 (08:10) 4-3 [关于handle的cga文件的详细教程] 以建筑单体为案例handle的cga文件编写3 (07:16) 4-4 [关于handle的cga文件的详细教程] handle(color)在建筑方案中cga规则文件编写 (09:01) 4-5 [关于handle的cga文件的详细教程] handle-type其他类型的简单介绍 (04:18)





