城市街道模拟,寻路与绕行

人物角色可以轻易的放置在模拟的街道或者广场,进行城市环境真实的拥挤模拟。

挖洞,简单的几何体平面挖了几块作为行走区域的隔离部分。

将模型转为golaem的地形,Navmesh限制区域。

创建实体,创建目标位置,添加行走动作,追寻目标和躲避三项,在追寻目标里选择作为目标位置particletool,这里可以动态目标,这样目标点一直在转换实体就不会停止了。

locomotion这里选择好所需的动作,注意开启左右镜像(左右转弯的动作),此外在群集管理当中选择好要定位用的地形(这里就是创建的terrain了)

可以看到当前策略做出的方向判断,选择的哪一套动作。

如果一套设置好的动作,或者触发器,都可以保存到自己指定的位置,方便重复使用。

交通模拟

The traffic system uses 4 specific Golaem objects, and Maya curves (Bezier or Nurb Curves).
* The Maya curves will define the road system.
* Plugging them to the Traffic Locator, in addition to some curve configuration, will display the lanes.
* The Traffic Crossing Locators are automatically computed, and can be configured (position, lights status, etc).
* Finally, all cars driving on the traffic roads must use a Traffic Behavior, and may also use a Traffic Goto behavior to control the path followed by cars.

交通系统使用了四个特别的golaem物体,和maya曲线(bezier或者nurb)maya曲线用来定义道路系统将曲线与交通坐标连接,额外的曲线设置会显示出道路十字路口是自动计算的,也可以进行调节(位置,红绿灯状态等)最后车辆在道路上行驶的话必须用traffic behavior,或许还会用到交通指向来控制车辆选择的路径。

车辆绑定,轮子前后轴,传动(底盘或者理解为单纯的连接)

创建好traffic locactor。拾取作为道路示意的曲线(可以有坡度,这就意味着可以开曲面吸附来画贴合坡度地形的曲线了,但是不能是垂直地面的路线。。。),这时候会显示道路,可以设置车道数量,如果是曲线的话,添加分段让道路匹配方向,下方还有交叉路口计算(看样子是算的曲线端点处,好像大十字还是不要用曲线直接穿插计算的好)

添加交通动作,拾取路线。

创建粒子之后会就近匹配到路线上。车辆会停车造成拥堵:排除车辆过近,线路距离交错等原因。

粒子注意事项粒子注意事项

为了避免产生错误的粒子行为,这里列出几项条件来提前避免这个问题:

1. 不要让道路交错重叠。当车辆行驶在道路上时,他们会忽略掉别的车道和路线(比如对向行驶来的车辆就躲不掉了)。如果产生重叠,两条路上的车都不会躲避甚至相撞。甚至交通信号灯同时启用的时候,导致的拥堵现象就是一部分车停止不动,就算另一面没有车挡着。

2. 车辆在交叉路口的轨迹是bezier曲线,从入口处法线方向(路线曲线的一端),到出口处法线方向(匹配的交叉口的其他曲线端)。如果看见车辆转弯走补角时:双向车道可能太近了车在转向时没有合适的曲线,可以通过helper查到问题。

3. 车辆会计算回避当前车道,交叉路口以及下个车道的车辆。如果两个交叉路口离得太近,一辆车经过第一个路口之后可能没有时间计算下一个路口的情况或是准备刹车。这种情况下,最好的方式就是设计一个大的十字路口取代两个小的,在交叉口范围内的路线端口可能会被并掉,出口位置可以通过移动曲线上的点来调整。

大的路口会有这种调头的,两个的会有卡主不动的。

4. 当设计密集型的交通时,最好避免在十字路口生成车辆。换句话说,特别容易在第一帧生成的时候发生,车辆在交叉口的出口向撞到一起。车辆在交叉路口产生的时候会贴到最近的车道(不论方向),如果在外侧车道则不被路口识别,只能等跨过路口才行。(不知道是不是不能转向只能直行的意思)

排错

有的显示信息(可以帮助拍错的)只在运行模拟的时候可以查看,缓存状态下是不行的。

想更容易的选中实体,与设置的粒子半价与实体大小有关(越大越好选择吧),通常车辆半径2高度比0.5就够用了,如果实体选择是个问题的话你可以改变实体的显示方式。

在群集管理器当中,有个反馈属性可见的栏,你可以找到以下几个信息可以给实体显示出来:

另外选中实体,在观察窗口下方的显示设置是和群集管理器Manager是联动的,改哪个都行。

1. 在车的周围显示一个蓝色的矩形,这玩意儿可以帮助你查看长宽转弯的轴心偏移设置。

2. 障碍显示,这是一个检测并躲避障碍物的(其他车辆,红灯,等等),给车辆一个减速机制。

3. 行驶轨迹可以展现车辆将要行驶的路线,在这条路线上的前方车辆与障碍的检测已经完成(如果没有障碍为蓝色,有障碍是红色如果勾选显示的话也会显示障碍检测),而这些和车辆当前速度有关(也和距离有关,继续行驶还是减速)