|
楼主 |
发表于 2008-12-2 22:10
|
显示全部楼层
1.0x0001-0x0018
0x01-0x18描述拖曳道路(不包含两种道路类型的交汇)
一、各rul控制的道路类型
0x01-0x02→Elevated Highway
0x05-0x06→Rail
0x07-0x08→Road
0x09- →Street
0x0D-0x0E→Avenue
0x0F-0x10→LightRail
0x11-0x12→OneWayRoad
0x13-0x14→DirtRoad
0x15-0x16→Monorail
0x17-0x18→Ground Highway
0x03-0x04、0x0A-0x0C基本无意义
二、各段语法语义
各段语法:
1,?,?,?,?
2,d,?,?,?,?
3,d,instance,rotate,transpose
通常包含一条1打头的语句,不包含或包含一条至若干条2打头的语句,包含一条或若干条3打头的语句。
各段语义:
1,2打头的语句是条件语句,3打头的语句指定instance,当每段各条件语句均满足时执行3打头的语句。
1打头的语句描述本格条件
四个问号代表该格四个方向的通勤属性,依次为W、N、E、S。
2打头的语句描述邻格条件
d代表方向,通常为1-8,本格W方向的相邻格为1,再顺时针旋转,WS方向的相邻格为8。大于8时,9代表1号格W方向的相邻格,再顺时针旋转,以此类推。
四个问好代表该格四个方向的通勤属性,依次为W、N、E、S。
3打头的语句指定instance。
d代表方向,0表示本格,其余同上。
instance代表引用的FSH (或exemplar)的instance。
rotate通常为0-3,分别表示不旋转、顺时针旋转90度、180度、270度。
transpose通常为0和1,0表示不翻转,1表示翻转,遵循先(水平)翻转后旋转。
三、instance的指定
对于使用2D模型的道路,指定的是地表材质FSH,Group值为0x1ABE787D。
对于使用3D模型的道路,指定的是Preview的FSH、Exemplar、地面阴影的FSH。
两组FSH均使用五个文件,即视距最远时使用指定instance的FSH,由远至近instance依次偏移1。前者的Group值为0x1ABE787D,后者的Group值为0x2BC2759A。
Exemplar类型通常为highway类型,Group值确定但各rul使用的各不相同。Exemplar使用resourcekeytype指定S3D。
四、通勤属性的意义
通勤属性有五种基本形式:?、0、1、2、3
?表示不限定该方向通勤属性
0表示该方向不存在通勤、2表示该方向通勤为直行
1表示该方向通勤为左前方,3表示该方向通勤为右前方(均为格内面向格外)
宽度为2的道路(大道、高速公路)有一种附加形式:4
4用于直向道路反方向并排的两格之间,当拐弯处可2可4时用4,斜向可用1或3时用1或3。
宽度为1的道路(道路、单行道)有两种附加形式:11、13
11、13分别为1、3的扩展,增加由直向向斜向(或相反)的变化过程。
11表示该方向通勤是由直向变化为左前方(或相反)
13表示该方向通勤是由直向变化为右前方(或相反)
宽度为1的轨道(铁路、轻轨、单轨)有十种附加形式:11、13、21、23、22、32、42、52、62、72
11、13的意义同上。
21、23表示斜向分岔,即由斜向轨道分岔出一组直向轨道,并与继续前行的斜向轨道从同一方向出格
或一组直向轨道和一组斜向轨道合并为一组轨道,该轨道与原斜向轨道同方向。
21表示斜向轨道为左前方,23表示斜向轨道为右前方。
22、42分别近似于13、11。
32、52、62表示直行轨道分岔为两组轨道。
32表示分岔为直行和右前方,52表示分岔为直行和左前方,62表示分岔为左前方和右前方。
72表示直行轨道分岔为三组轨道。
如果把12、22、32、42、52、62、72的高位写成二进制形式
001b、010b、011b、100b、101b、110b、111b
低位表示直行、中间一位表示右前方、高位表示左前方,由于直行使用的是2(即02),因此不存在12。
五、各段之间的优先次序。
对于特定的某格,如果既存在3,0,...语句指定该格instance,又存在3,d,...(d>0)语句指定该格instance,前者优先。
结论:尽量不要使用3,d,...(d>0)语句,如果可能的宁可多用几个段落。
对于特定的某格,如果存在若干个3,0,...语句指定该格instance,在rul中位于较前面的段落优先。
结论:应将条件较强的段落前置。
[ 本帖最后由 rszxh 于 2008-12-5 22:50 编辑 ] |
|