教程 1:必备技能

要访问 CityEngine 中的教程,请单击帮助 > 下载教程和示例...。 在选择教程或示例后,系统会自动下载工程并将其添加到工作空间。

设置新工程

创建新工程和场景

首先,您将创建新的 CityEngine 工程。

  1. 单击文件 > 新建 > CityEngine > CityEngine 工程

    将显示选择向导对话框。

    选择向导对话框

  2. 单击下一步,将您的工程命名为 MyFirstCity,然后单击完成

    创建一个新工程,该工程显示在导航器中(默认情况下,位于 CityEngine 窗口的左上角)。 存储工程数据(例如资产、规则和场景)的默认文件夹已经存在,只是为空。

    接下来,您将创建一个新场景。

  3. 单击文件 > 新建 > CityEngine > CityEngine 场景

    随即显示 CityEngine 场景对话框。 将场景命名为 myFirstCity_01.cej

    CityEngine 场景对话框

复制规则和资产

在本教程的后面,您将需要规则文件和资产来生成建筑模型。 您可以从主要“教程 1:基本技能”工程复制这些文件,您应该已经将该工程链接到工作空间。

现在,您需要将所有必要的文件从已下载的“教程 1”工程中复制到新工程中。

  1. 在键盘上或从鼠标右键快捷菜单中使用复制/粘贴(在键盘上按 Ctrl-CCtrl-V)。
    已复制到 MyFirstCity 工程文件夹的资产和规则文件夹内的内容导航器显示
  2. 复制资产和规则文件夹的内容。

    您的导航器应类似于以下屏幕截图:

    导航器中显示的 MyFirstCity 文件夹内容

第一个街道布局

随机街道生成

设置了新工程后,您就可以开始在新创建的场景中创建第一个街道布局了。

首先,您将创建街道网络。

  1. 单击视口以使其成为活动窗口。
  2. 单击图形 > 生成街道

    将显示生成街道对话框。

    生成街道基本设置
    对话框

  3. 现在保留默认设置。
  4. 单击应用,然后关闭对话框。

    大约创建了 500 条街道,但是直到您构建该视图时,您才能看到其所有内容。

  5. 按 A 键构建视口中的所有对象。 您的视口应类似于以下屏幕截图:
    已生成街道的视口透视图显示
  6. 现在,布局中导航器下的场景编辑器将包含一个新的 Streetnetwork 图层,其中包含地块、图表段和形状的网络。 它的外观应类似于以下屏幕截图:
    已扩展新的 Streetnetwork 图层以显示对象的场景编辑器

导航和选择

导航

在视口中导航是 CityEngine 用户必须学习的最基本的技能之一。 本部分介绍了可用的不同导航方案。

  1. 单击编辑 > 首选项 > 常规 > 导航设备 > 鼠标
  2. 当前鼠标方案下拉菜单列出了其他 3D 应用程序的可用方案。
    鼠标首选项对话框
注:

对于拥有 3D Connexion 3D 鼠标 (https://www.3dconnexion.com/) 的用户,有一些特定首选项。

3D 鼠标对话框的首选项

您将关注默认的导航方案。 下表中显示了这些选项:

导航命令键盘快捷键

翻转视图

Alt + 鼠标左键

平移视图

Alt + 鼠标中键

缩放

Alt + 鼠标右键(或使用鼠标滚轮)

提示:
  • 为了在经常使用框架键 F 时进行有效导航,请使用视口工具条中的框架按钮。
  • 尽早使用基于滚动/平移/缩放的导航。 几分钟后,这对您来说将会变得很自然。

选择

要与场景中的对象交互并进行编辑,您需要选择它们。 使用鼠标键启动选择工具按 Q。 通过在视口中单击来选择对象。

注:

F9F12 键可切换四种主要对象类型的可见性:地图图层图表段形状模型。 停用其他对象类型的可见性通常会简化进行正确选择的过程。

选择类型

下表描述了选择类型:

选择类型结果

单击

选择单个对象

从右到左的矩形选择

选择内部的所有对象或触摸选择矩形

从左到右的矩形选择

选择完全位于选择矩形内的所有对象

当有许多对象占据相同的空间时,从左到右的矩形选择通常用于选择微小的对象,例如单个街道图形节点。

修饰键

选择工具处于活动状态时,按 CtrlShift 可以从选择中进行添加或减少。 这些模式也列在工具条的选择工具子菜单中。

选择快捷菜单

选择后,鼠标右键快捷菜单包含条目,您可以使用这些条目选择其他元素。

选择快捷菜单

下表描述了选择项目:

选择模式选择元素

选择同一类型的对象

类型:形状、图形节点

选择同一组对象

在相同的块/街道中

选择具有相同规则文件的对象

相同的规则文件已分配(在所有可见图层上)

选择具有相同初始规则的对象

相同初始规则(在所有可见图层上)

使用规则的模型生成

3D 模型生成

CityEngine 是一种程序化建模应用程序。 这意味着 CityEngine 使用规则来生成 3D 模型。

模型生成逻辑示意图

分配规则

在本教程中,已经提供了规则。 您现在即可使用它们。

  1. 选择一个块,然后在检查器中将其细分参数从递归细分更改为偏移细分,如下所示:
    检查器块参数对话框

    有块细分和动态城市布局的详细信息,请参阅教程 2:地形和动态城市布局

  2. 在块中选择一种形状,然后使用快捷菜单选择同一组对象
  3. building.cga 规则文件拖放到选定的形状上(突出显示的橙色)。
    导航器显示来自将被拖放至选定形状的规则文件夹的

    将规则放到形状上后,将自动开始模型生成。 您的第一个建筑物将出现。 确保通过切换 F12 激活模型的可见性。

    应用形状规则后生成的建筑物的视口透视图

    也可以在鼠标右键快捷菜单中删除生成的模型。

    快捷菜单中的“删除模型”命令
  4. 再次选择覆盖区形状,然后单击 Ctrl+G 或使用工具条上的生成按钮 生成 以在所选形状上生成模型。

    可以通过更改种子值来创建建筑物的新变体。

  5. 使用工具条上的更新种子按钮 更新种子,或单击 Ctrl+Shift+G

    下图显示了高度的不同种子值的示例:

    高度的不同种子值的示例

  6. 在检查器中手动编辑规则的建筑物高度参数:
    检查器规则高度参数设置为 42

    在检查器中手动更改属性后,它将变为粗体并覆盖规则的定义。

  7. 通过在检查器中右键单击属性旁边的箭头,然后选择重置用户属性building.cga,将属性重置为 规则定义。
    重置用户属性

规则编辑

探索规则文件

CityEngine 的规则系统使用 CGA 代码,这是 CityEngine 独特的专用脚本语言。 由于 CGA 是一种脚本语言,因此它为您提供了一种通用且灵活的工具来为所有类型的城市创建 3D 模型。 从现代到当代,从古代到未来,一切皆有可能。

探索到目前为止您一直在使用的已提供的规则。

  1. 通过在导航器中双击 CGA 规则文件或使用检查器中的规则文件链接,在规则编辑器中打开 building.cga 规则。
    检查器调整规则文件 building.cga
  2. 开始在规则编辑器中编辑 building.cga 规则。

    规则编辑器中的 Building.cga 规则

编辑规则文件

  1. 检查 building.cga 规则。高度定义为介于 15 到 25 之间的随机值。
    attr height = rand(15,25)
    随机高度值为 22.82 的建筑物

    建筑物的随机高度值为 22.82。

  2. 规则编辑器中更改随机高度值。
    attr height = rand(15,80)

    高度现在定义为介于 15 到 80 之间的随机值。

  3. 保存规则。
  4. 通过单击更新种子或按键盘上的 Ctrl + Shift + G 来重新生成建筑物。
    随机高度值为 51.27 的建筑物

    建筑物的随机高度值为 51.27。

    注:

    使用更新种子的原因是因为高度是一个随机值,并且在重新生成建筑物时需要更新随机种子值。

  5. 通过将名为屋顶的新规则添加到 building.cga 规则中来添加屋顶几何。 为此,需要执行以下操作:
    1. 编辑地块规则,使其如下所示:
      Lot -->
       	case shapeType == "LotInner" : 
       		 Lot.
       	else :
       	  extrude(height) comp(f) { side :  Facade | top:  Roof }
    2. 添加屋顶规则,并将形状定义为 roofHip,其角度为 22.5 度。
      Roof --> roofHip(22.5) Shape
    3. 保存规则。
  6. 重新生成建筑物,但这一次,单击生成模型按钮 生成 或按键盘上的 Cntrl +G。 这样,您会将建筑物高度保持在 51.27,并看到新的屋顶几何。
    带 roofHip 屋顶的随机高度值为 51.27 的建筑物