[fusion_builder_container type=”flex” hundred_percent=”no” equal_height_columns=”no” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” background_position=”center center” background_repeat=”no-repeat” fade=”no” background_parallax=”none” parallax_speed=”0.3″ video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” border_style=”solid”][fusion_builder_row][fusion_builder_column type=”1_1″ type=”1_1″ background_position=”left top” background_color=”” border_color=”” border_style=”solid” border_position=”all” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” center_content=”no” last=”no” min_height=”” hover_type=”none” link=”” border_sizes_top=”” border_sizes_bottom=”” border_sizes_left=”” border_sizes_right=””][fusion_text]
要访问教程CityEngine中,单击 帮助>下载教程和例子…。选择教程或示例后,项目会自动下载并添加到您的工作区。
设置一个新项目
创建新项目和场景
首先,您将创建一个新的 CityEngine 项目。
- 单击文件> 新建> CityEngine > CityEngine 项目。
在选择向导对话框。
- 单击Next,将您的项目命名为 MyFirstCity,然后单击Finish。
一个新项目被创建并出现在导航器中(默认情况下,位于 CityEngine 窗口的左上角)。存储项目数据(例如资产、规则和场景)的默认文件夹已经存在,但为空。
接下来,您将创建一个新场景。
- 单击文件>新建> CityEngine > CityEngine 场景。
在CityEngine中场景出现对话框。将您的场景命名为 myFirstCity_01.cej。
复制规则和资产
在本教程的后面,您将需要规则文件和资产来生成建筑模型。您可以从主教程 1:基本技能项目中复制这些文件,您应该已经将这些文件链接到您的工作区。
现在,您将从下载的教程 1 项目中将所有必需的文件复制到您的新项目中。
- 使用复制/粘贴(按键盘上的 Ctrl-C和Ctrl-V)或从鼠标右键上下文菜单中。
- 复制资产和规则文件夹的内容。
您的导航器应类似于以下屏幕截图:
第一条街道布局
随机街增长
设置新项目后,您就可以开始在新创建的场景中创建第一个街道布局。
首先,您将创建一个街道网络。
-
- 单击视口使其成为活动窗口。
- 单击图形>发展街道。
出现“发展街道”对话框。
- 暂时保留默认设置。
- 单击 应用,然后关闭对话框。
大约创建了 500 条街道,但在您构图视图之前,您无法在视口中看到所有街道。
- 按 A 键将视口中的所有对象框起来。您的视口应类似于以下屏幕截图:
导航和选择
导航
在视口中导航是 CityEngine 用户必须学习的最基本技能之一。本节着眼于可用的不同导航方案。
-
- 单击“编辑” > “首选项” >“常规” >“导航设备” >“鼠标”。
您将专注于默认导航方案。选项如下表所示:
导航指令 | 键盘快捷键 |
---|---|
翻转视图 |
Alt+鼠标左键 |
平移视图 |
Alt+鼠标中键 |
飞涨 |
Alt+鼠标右键(或使用鼠标滚轮) |
提示:
- 为了有效导航持续使用框架键F,请使用视口工具栏中的框架按钮。
- 尽早使用基于翻滚/平移/缩放的导航。几分钟后,它会变得很自然。
选择
要交互和编辑场景中的对象,您需要选择它们。使用鼠标按钮或按 Q启动选择工具。通过在视口中单击来选择对象。
笔记:
该F9 – F12键切换四个主要对象类型的可见性:地图图层,图形段,形状和型号。禁用其他对象类型的可见性通常可以简化正确选择。
选择类型
下表描述了选择类型:
选择类型 | 结果 |
---|---|
单击 |
选择单个对象 |
从右到左的矩形选择 |
选择内部或触摸选择矩形的所有对象 |
从左到右的矩形选择 |
完全选择选择矩形内的所有对象 |
从左到右的矩形选择通常用于在有许多对象占据同一空间时选择微小的对象,例如单个街图节点。
修饰键
虽然选择工具是活动的,按Ctrl键和 Shift键,从您的选择无论是加还是减。这些模式也列在工具栏的“选择工具”子菜单中。
选择上下文菜单
进行选择后,鼠标右键上下文菜单包含您可以选择其他元素的条目。
选择项如下表所述:
选择模式 | 选择元素 |
---|---|
选择相同类型的对象 |
类型:形状、图形节点 |
选择同组对象: |
在同一个街区/街道 |
选择具有相同规则文件的对象 |
分配了相同的规则文件(在所有可见层上) |
选择具有相同起始规则的对象: |
相同的开始规则(在所有可见层上) |
使用规则生成模型
3D模型生成
CityEngine 是一个过程建模应用程序。这意味着 CityEngine 使用规则来生成 3D 模型。
分配规则
在本教程中,规则已经提供。你现在会使用它们。
- 选中一个block,在Inspector中将其细分参数从Recursive Subdivision改为Offset Subdivision,如下图:
有关街区细分和动态城市布局的更多信息,请参阅教程 2:地形和动态城市布局。
- 在块中选择一个形状,然后使用上下文菜单选择相同组的对象。
- 将building.cga规则文件拖放到选定的形状(突出显示的橙色)上。
将规则放到形状上后,模型生成会自动开始。您的第一个建筑物出现。确保通过切换F12来激活模型的可见性。
生成的模型也可以在鼠标右键上下文菜单中删除。
- 再次选择封装形状,然后单击Ctrl+G或使用工具栏上的“生成”按钮在所选形状上生成模型。
可以通过更改种子值来创建建筑物的新变化。
- 使用工具栏上的“更新种子”按钮或单击Ctrl+Shift+G。
下图显示了高度的不同种子值的示例:
- 在 Inspector 中手动编辑规则的建筑高度参数:
一旦您在 Inspector 中手动更改属性,它将变为粗体并覆盖规则的定义。
- 通过右键单击检查器中属性旁边的箭头并选择重置用户属性,将属性重置为building.cga规则定义。
规则编辑
探索规则文件
CityEngine 的规则系统使用 CGA 代码,这是 CityEngine 独有的专用脚本语言。因为 CGA 是一种脚本语言,它为您提供了一个通用且灵活的工具来为所有类型的城市创建 3D 模型。从现代到现代,从古代到未来,一切皆有可能。
探索迄今为止您一直在使用的提供的规则。
- 通过双击导航器中的 CGA 规则文件或使用检查器中的规则文件链接,在规则编辑器中打开building.cga规则。
- 开始在Rule Editor 中编辑building.cga规则。
编辑规则文件
- 检查building.cga规则。高度定义为 15 到 25 之间的随机值。
attr height = rand(15,25)
该建筑物的随机高度值为 22.82。
- 在规则编辑器中更改随机高度值。
attr height = rand(15,80)
高度现在定义为 15 到 80 之间的随机值。
- 保存规则。
- 通过单击更新种子或按键盘上的 Cntrl + Shift + G重新生成建筑物。
建筑物现在的随机高度值为 51.27。
笔记:
使用Update Seed的原因是因为高度是一个随机值,在重新生成建筑物时需要更新随机种子值。
- 通过将名为Roof的新规则添加到building.cga规则来添加屋顶几何图形。为此,请执行以下操作:
- 编辑Lot规则,使其看起来像这样:
Lot --> case shapeType == "LotInner" : Lot. else : extrude(height) comp(f) { side : Facade | top: Roof }
- 添加屋顶规则并将形状定义为 22.5 度角的屋顶臀部。
Roof --> roofHip(22.5) Shape
- 保存规则。
- 编辑Lot规则,使其看起来像这样:
- 重新生成建筑物,但这一次,单击“生成模型”按钮 或按键盘上的 Cntrl + G。通过这样做,您将保持建筑物高度为 51.27 并看到新的屋顶几何图形。
[/fusion_text][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container][fusion_builder_container type=”flex” hundred_percent=”no” hundred_percent_height=”no” hundred_percent_height_scroll=”no” align_content=”stretch” flex_align_items=”flex-start” flex_justify_content=”flex-start” hundred_percent_height_center_content=”yes” equal_height_columns=”no” container_tag=”div” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” status=”published” spacing_medium=”” spacing_small=”” padding_dimensions_medium=”” padding_dimensions_small=”” border_sizes=”” border_style=”solid” box_shadow=”no” box_shadow_blur=”0″ box_shadow_spread=”0″ gradient_start_color=”” gradient_end_color=”” gradient_start_position=”0″ gradient_end_position=”100″ gradient_type=”linear” radial_direction=”center center” linear_angle=”180″ background_position=”center center” background_repeat=”no-repeat” fade=”no” background_parallax=”none” enable_mobile=”no” parallax_speed=”0.3″ background_blend_mode=”none” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” render_logics=”” absolute=”off” absolute_devices=”small,medium,large” sticky=”off” sticky_devices=”small-visibility,medium-visibility,large-visibility” sticky_transition_offset=”0″ scroll_offset=”0″ animation_direction=”left” animation_speed=”0.3″ filter_hue=”0″ filter_saturation=”100″ filter_brightness=”100″ filter_contrast=”100″ filter_invert=”0″ filter_sepia=”0″ filter_opacity=”100″ filter_blur=”0″ filter_hue_hover=”0″ filter_saturation_hover=”100″ filter_brightness_hover=”100″ filter_contrast_hover=”100″ filter_invert_hover=”0″ filter_sepia_hover=”0″ filter_opacity_hover=”100″ filter_blur_hover=”0″][fusion_builder_row][fusion_builder_column type=”1_1″ align_self=”auto” content_layout=”column” align_content=”flex-start” valign_content=”flex-start” content_wrap=”wrap” spacing=”” center_content=”no” link=”” target=”_self” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” sticky_display=”normal,sticky” class=”” id=”” type_medium=”” type_small=”” type=”1_1″ order_medium=”0″ order_small=”0″ dimension_spacing_medium=”” dimension_spacing_small=”” dimension_spacing=”” dimension_margin_medium=”” dimension_margin_small=”” dimension_margin=”” padding_medium=”” padding_small=”” padding=”” hover_type=”none” border_sizes=”” border_color=”” border_style=”solid” border_radius=”” box_shadow=”no” dimension_box_shadow=”” box_shadow_blur=”0″ box_shadow_spread=”0″ box_shadow_color=”” box_shadow_style=”” background_type=”single” gradient_start_color=”” gradient_end_color=”” gradient_start_position=”0″ gradient_end_position=”100″ gradient_type=”linear” radial_direction=”center center” linear_angle=”180″ background_color=”” background_image=”” background_image_id=”” background_position=”left top” background_repeat=”no-repeat” background_blend_mode=”none” render_logics=”” filter_type=”regular” filter_hue=”0″ filter_saturation=”100″ filter_brightness=”100″ filter_contrast=”100″ filter_invert=”0″ filter_sepia=”0″ filter_opacity=”100″ filter_blur=”0″ filter_hue_hover=”0″ filter_saturation_hover=”100″ filter_brightness_hover=”100″ filter_contrast_hover=”100″ filter_invert_hover=”0″ filter_sepia_hover=”0″ filter_opacity_hover=”100″ filter_blur_hover=”0″ animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”no” border_position=”all”][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]