CityEngine使用教程
- 基本操作
操作技巧:翻滚视图和缩放配合使用。
CityEngine中四种属性类型: Shapes(物体)、Blocks(块)、Segments(街道的部分)、Nodes(节点)
- 创建项目
- 新建项目
- 将Co_Driver项目下的的assets和rules文件夹复制到,新建项目下
- 创建场景
右击scenes -- New –- CityEngine scene
- 完成
- 导入OSM
2.1 OSM文件要求
- JOSM地图绘制,道路要相互连接,才能形成Blocks(块),如下图所示
道路相交处要有节点(红方框),否则道路悬空。
- 尽量绘制较少的节点,完成道路绘制,尤其路口节点数要少。(原因:CityEngine是根据两个节点间的线段生成形状的,节点过多线段太短,贴图会被压缩,造成地面贴图不正常)
2.2 导入步骤
- 步骤
- 导入设置
- 完成
- 道路建设
- 观察导入的OSM地图是否有缺失(尤其是路口)如下图所示
若OSM地图有缺失,则进行如下操作:全选地图——单击绿框图标(CleanUP Streets)——跳出界面直接单击Finish(不用勾选)
- 道路宽度设置
选择道路——streetWidth(道路宽度) sidewalikWidth(人行道宽度正常设置5m)
道路宽度=(3.5(车道宽)+0.13(线宽))*N(车道数) 如果是双实线中间间隔0.13m,也需要加上。
- 默认道路转弯半径为3m,有些背景车辆转弯,会压路的阶沿。可适当增加道路转弯半径。半径过大,会改变道路形状,无法和航路点对齐
- 全选,地图
- 修改转弯半径
- 增加转弯半径可能会出现,道路缺失。按相应的办法即可解决。
- 道路末端会出现,圆(下图红框)
- 挨个选中
- Node——type——Crossing
- 路面贴图
先选中路面
单击一段路面——右击——选择Select Objects with Same Start Rule
添加规则,在rule 文件将Standard_Street.cga 拖到选中的路面
完成后如图
- 路口贴图
先全选中路口
单击一个路口——选择Select Objects with Same Start Rule
添加规则,在rule 文件将Complete_Street_mzc.cga 拖到选中的路口
完成后如图所示,检查路口是否全部贴图完成。
- 中国特色道路贴线、指示地标设置
目前只使用Standard_Street.cga规则进行路面贴图(只能设置车道线和地标指示,没有中间隔离带等其他复杂路面物体)
Standard_Street.cga规则属性解释
NbrOfRightLanes:用于设置反向车道数
比如四车道
Centerline:车道中心线设置,目前选项有yellow(黄实线)、none(黄虚线)
可以自己添加属性选项:打开Standard_Street.cga规则
- 添加Centerline属性选项(红框内)
- 添加中心线贴图规则
- 在assets-Street_Standard-Lanes 文件夹下,添加图片。注意名称。
单线规则,只能在Centerline属性下的none选项下修改
RoadTraffic: right-hand (靠右行驶) left-hand (靠左行驶)
Stop Markings ( 路口指示地标)
Stop Begin :有多种选项地标类型供选择。根据道路的实际需要选择。
如果选项中没有需要的地标贴图选项,可以在规则中添加。
打开Standard_Street.cga规则
- 添加StopBegin 属性选项(红框内)
- 添加路口指示地标规则
- 在assets-Street_Standard-Lanes 文件夹下,添加图片。注意名称。
名称一定要对应,否则会出错。
StopEnd :只需添加StopEnd 属性选项
指示地标贴图常见问题:车道线太短,地标不显示(原因:两个节点间距离太短)
解决办法(将两个部分合并):
- 选中两个部分
- 单击Graph——Simplify Graph,弹出界面,无需设置
- 直接点Apply
- 再将Standard_Street.cga规则,拖到合并后的道路
- 执行完上述操作后
如合并两个部分后,如图双黄线没有了,还是两个节点间距离太短,如上操作继续合并(合并和改变道路弧度,为了防止过多改变形状,航路点无法重合,所以在满足路口贴图的条件下,尽可能减少合并)。
Crosswalk Markings: 人行道
CrosswalkBegin : continental
CrosswalkEnd : continental
CrosswalkColor : white
- 路边人行道贴图
先全选中人行道
单击一段路边人行道——右击——选择Select Objects with Same Start Rule
添加规则,在rule 文件将Complete_Street_mzc.cga 拖到选中的人行道
完成如图所示
更换人行道贴图(根据贴图位置找到贴图),设置阶沿高度
全选中人行道,界面右侧弹出属性窗口,更改下面属性
人行道放置树木
人行道放置路灯
关于Complete_Street_mzc.cga,每个属性的解释,可以将鼠标放在上面,会有中文解释
- 房屋建设
- 显示Block
- 全选地图
- Block——shapeCreation——Enable
- 如图
- 添加房屋规则
- 全选Block,选中一块——右击——Select Object with Same Rule File
- 将International City.cga 规则,拖到Block上
- 结果如图
- 规则属性解释
Building:
Type:建筑物类型
HeightFactor :建筑物高低缩放
Trees
Show Trees
- 完成如图
- 进阶学习
- 标准道路规则Standard_Street.cga 学习。
使用Group,可以创建二级属性 Range定义范围
分别是如下图:1、2、3、4、5,5个部分。
- 参照航路点进行,路面指示标志贴图。
- 将OSM文件转换成.net 文件
- 用NetEdit,打卡.net 文件(文件目录位置的文件名不能有中文)
- 工作流说明
- 在JOSM中绘制OSM地图,导出OSM地图
- 将OSM地图导入CityEngine建设3维模型
先只生成道路模型,不贴图,导入UE4 ,观察能否与航路点对齐。
若能对齐,则开始贴图。
- 将OSM文件转换成.xodr文件(道路宽度变为3.5,道路转弯半径与CityEngine一样),生成航路点,看能否与CityEngine 3维模型对齐。
若能和道路模型对齐,则进行下面操作。
将OSM文件转换成.net文件(道路宽度变为3.5,道路转弯半径与CityEngine一样),将.net文件用SUMO打开,调节路口转向问题
- 将调好后的.net文件转换成.xodr 格式
- 将.xodr格式文件放入Carla的open drive文件夹下,然后在地图通过Opendrive actor 生成航路点,将航路点和完全建设好的CityEngine模型对齐。