跳转到内容

Trainz/种类/轨道种类

来自维基教科书,开放的书籍,为开放的世界

传统轨道

[编辑 | 编辑源代码]

Trainz 1.3TANE(在 联锁塔 中增加了连接和脚本方面的复杂性),Trainz 数据模型 在其轨道和样条线对象软件处理方面 arguably 发生了最显著的变化。这种演变从被称为 块状轨道 到初始的 TANE 过程轨道种类,经历了三个到四个不同的阶段。在 Trainz UTC 和 TRS2004 块状轨道之间,桥梁和隧道被一组轨道种类所取代,这些种类是 KIND 系统的新正式定义,其中包含这些类型(此处显示了链接到其 CCG 参考页面):TRS/TC 时代的 CCG 的无偏表将被[found at this url]:[1]

样条线对象
  • 种类: 轨道 - 从农作物到道路的样条线场景资产使用各种标签来定义,以控制对象如何与世界交互。

这些方面有逐步改进,但 TS2009 向拼接轨道技术的转变

KIND 轨道

[编辑 | 编辑源代码]

KIND 轨道提供从 Trainz-build 版本 2.9 及更高版本(在轨道拼接处理成为默认渲染软件之后)开始,用于所有基于样条线的资产的唯一资产种类。与名称相反,就像道路类型被定义为轨道资产一样,现在此类资产包含简单轨道、多轨道、桥梁、隧道、树篱、道路、墙壁、路堤、本地电力线、高压电力线、接触网(以及其他轨道旁的 '附着轨道容器容器' 样条线),等等。

此类资产使用以前称为“拼接轨道”的渲染技术。现在所有其他样条线渲染都已过时,所有过去年的样条线类别现在简称为“轨道”,并使用 轨道种类 的变体,并设置了适当的标签以实现数字模型。另一种轨道类型,过程轨道种类 现在已添加到 TANE 版本(v4.0 及更高版本)中,其中包含查看动画连接部件的新功能。此页面并未直接讨论 TANE 中的这种更新的技术。 

此页面描述了 trainz-builds v2.9–v3.7;TANE 轨道是一个完全不同的情况,是一个主要的数据模型变更,目前为止,最好的源数据是在 Auran 论坛和 N3V Games Wiki 的链接中



KIND 层级

[编辑 | 编辑源代码]

{S ... 样条线T ... 轨道 },也就是说,类别-类别样条线类型的列表

SF     Fences
SR     Roads
SP     Platforms
SS     Structure
SV     Vegetation
TB     Bridge
TF     Fixed Track
TR     Rails
TT     Tunnel
  • 附着轨道 是嵌入在工业资产中的资产,它继承了与末端顶点相连轨道的轨道特征。

支持的标签

[编辑 | 编辑源代码]

在定义 KIND TrainzBaseSpec 时,样条对象 中的 KIND Track 在定义 config.txt 文件 时,支持以下标签。每个标签都显示了其默认值。

      mesh-table    
      {    
      }    
      轨道容器    (子容器)
      {    
      }    
      endcap-prev    
      {    
      }    
      endcap-next    
      {    
      }    
      附着样条    
      {    
      }    
      season-selector    
      {    
      }    
      carrate     0
      isroad     0
      isfreeway     0
      is_silent     0
      numlanes     0
      istrack     0
      istunnel     0
      surveyor-only     0
      visible-on-minimap (surveyor-only 的反面)    
      track-sound    
      {    
      }    
      traffic-speed     10.0
      tunnel-roof-height     0.0

mesh-table

[edit | edit source]

"mesh-table"_Container "mesh-table"_Container 提供了有关构成此资产的轨道和端盖网格的详细信息。目前,大多数高级 mesh-table 选项不可用。重要的是要指定网格。具体来说,'mesh' 标签应用于指定 IM 文件,'mesh-asset' 标签可用于指定网格的替代源资产。


track

[edit | edit source]

"track" 标签是强制性的,它决定了如何从网格形成样条几何图形。它被指定为 轨道部件容器


attached-splines

[edit | edit source]

附着样条容器[2] 提供了一种机制,用于附加子样条,这些子样条以略微偏移的方式跟随此父样条的形状。附着样条用于需要将具有一个渲染或功能行为集的样条与具有不同渲染或功能行为集的样条耦合的情况。例如,一座桥(风景)带有附着的轨道(功能),或者是一组塔架(没有拉伸或剪切)在它们之间连接了一些电线(剪切和拉伸以适应)。附着样条可能是仅渲染样条,这些样条实际上除了它们的渲染行为之外不存在,也可能是完全功能性的样条,其唯一的特殊之处在于它们随其父级一起移动和删除。


endcap-prev & endcap-next

[edit | edit source]

"endcap-prev" 和 "endcap-next" 标签以相同的方式指定,但不是强制性的。如果存在,这些端盖将插入样条两端的每个方向的末端,除非样条流向另一个相同类型的样条。这允许内容创建者“密封”样条几何图形,而无需在每个细分处引入效率低下的密封多边形。端盖遵循正常的贴合样条行为,只是它们在样条末端的瞬时方向上继续直线延伸。端盖从资产的 "track" 标签继承它们的默认设置,但任何单个值都可以根据需要被覆盖。


Season-selector

[edit | edit source]

"Season-selector"_container "Season-selector" container 允许选择一个季节索引,该索引可能会被 "track-lod-tree"_container "track-lod-tree" container 使用。  

isroad

[edit | edit source]
类型:布尔值 (1 或 0)

如果设置 (1),则此类型的样条被认为是道路。道路支持生成 Carz。道路被 KIND MOCrossing 标记为阻塞,而过路道口门关闭。道路样条通常可以连接,即使它们是不同的资产。

如果没有其他说明,设置了 'isroad' 标签的资产是 "Road Spline Group" 的成员 (<kuid:30501:100045>) (参见:KIND_Asset-group 中的已知资产组).


carrate

[edit | edit source]

(仅适用于设置了 'isroad' 的样条)

游戏在这个道路上生成 Carz 之间等待 1x 到 3x 的这个十进制值,所以数字越低,道路将生成的交通流量就越多。


isfreeway

[edit | edit source]

(仅适用于设置了 'isroad' 的样条)

如果设置 (1),这个布尔标签会导致多车道道路充当高速公路。这允许 Carz 随意换道,并导致所有交通仅沿样条的前进方向流动。在非高速公路上仍然允许超车。


is_silent

[edit | edit source]

(仅适用于设置了 'istrack' 的样条)

如果设置 (1),这个布尔标签将禁用在样条上车辆的每个轴声音的播放。


numlanes

[edit | edit source]

(仅适用于设置了 'isroad' 的样条)

定义道路上 Carz 车道的数量。每条车道被认为是 1.7 米宽。如果道路是高速公路,所有交通都沿相同的方向流动。待定:对于非高速公路,这意味着什么?


istrack

[edit | edit source]

如果设置 (1),这个布尔标签会导致样条被视为 "轨道",这意味着火车可以预期在样条上运行。

这会影响样条在小地图上的可见性,样条资产会在测量员拾取器中显示出来,测量员工具可以对资产进行操作,以及是否启用自动交叉口放置。

轨道样条通常可以连接,即使它们是不同的资产。

如果没有其他说明,设置了 'istrack' 标签的资产是 "Track Spline Group" 的成员 <kuid:30501:100043>.


istunnel

[edit | edit source]

如果设置 (1),这个布尔标签会导致样条被视为 "像隧道一样"。尽管有这个名称,但这与真正的隧道样条功能没有直接关系(有关详细信息,请参阅 'tunnel-roof-height' 标签)。

在隧道中,某些类型的脱轨被禁用,因为由此产生的用户体验会很差,因为火车车辆和玩家的摄像机会穿透隧道和地形。

当车辆的原点位于隧道样条上时,脚本函数 Vehicle.IsInTunnel() 返回 'true'。

如果用户处于 '外部' 或 '自动跟踪' 摄像机模式,而摄像机目标在隧道中,则摄像机将改为切换到 "隧道外部" 模式。

当摄像机目标在隧道中时,环境声音的音量将降低至 50%。

当车辆在隧道中时,某些类型的车辆粒子发射器将被禁用。


surveyor-only

[edit | edit source]

如果设置 (1),这个布尔值会导致资产在驾驶员中不可见且不可用。这通常用于提供编辑辅助的样条,例如模板、标记或标尺。


visible-on-minimap

[edit | edit source]

如果清除 (0),则隐藏小地图上的此样条。具有非仅渲染子级的样条永远不会显示在小地图上。请注意,此标签没有固定的默认值,而是默认为 'surveyor-only' 标签的反面。


track-sound

[编辑 | 编辑源代码]

(仅适用于设置了 'istrack' 的样条)

一个可选的 "track-sound" 容器 "track-sound" 容器,它有助于计算火车车辆在该轨道上时播放哪个声音。


traffic-speed

[编辑 | 编辑源代码]

(仅适用于设置了 'isroad' 的样条)

定义道路的汽车速度限制,单位为米每秒。汽车目前行驶速度为限速的 80%-110%(取决于汽车),超车时除外。此标签与火车无关。


tunnel-roof-height

[编辑 | 编辑源代码]

由隧道用于确定地形洞允许的屋顶高度,单位为米。如果小于或等于零,则不生成地形洞。如果大于零,则此样条线被视为真正的隧道 - 它将在地形网格中生成洞,它与地形网格的接近角度将被锁定为 45° 增量,并且端点将捕捉到 10 米网格大小。

隧道旨在将样条线运行在地形网格下方。

隧道样条线尝试弯曲,使得样条线以 45° 角增量终止。这有助于确保可以通过地形网格成功创建入口洞。

隧道样条线在 Surveyor 中具有略微修改的编辑语义。顶点标记在不同的条件下可见。不允许对隧道周围的地面进行平滑处理。隧道样条线始终遵循样条线梯度,而不是对地面高度做出反应。

如果没有其他说明,带有“istunnel”标签设置的资产是“隧道样条线组”的成员 <kuid:30501:100044>


轨道资产通常包含几个网格。每个网格表示样条线的一部分,该部分以各种变换首尾相连重复,以创建整个样条线。多个网格允许 LOD、细节随机化等等 - 通过 "track-lod-tree" 容器 "track-lod-tree" 容器 定义了在样条线的不同位置使用哪个网格的选择。

网格应使用法线贴图和单个高分辨率漫射纹理。出于性能原因,应将单个材质(即单个纹理;参见关于网格之间材质共享的说明)用于所有网格,而不是为每个网格使用单独的材质。材质可以使用 alpha 遮罩(1 位 alpha)或 alpha 混合,但是任何 alpha 混合都不会进行排序(不针对轨道本身的​​其他多边形,也不针对场景中的​​其他 alpha 混合多边形)。因此,alpha 混合仅应在靠近地面使用,这样从相机到网格的​​线在到达地面之前不会穿过任何其他 alpha 混合对象。普通 z 缓冲区行为将适用于 alpha 混合和 alpha 遮罩网格。

构成轨道的各种网格部分的建模方式是,任何类型都可以与任何其他类型无缝匹配。碎片不一定必须是对称的,因为它们永远不会相对于前一个碎片旋转,但是需要注意的是,支持多路连接的样条线会导致一个结构,其中样条线循环回自身并连接到自己以相反的方向而来。

下面是一些近似的多边形指南。创建者应避免使用超过他们需要准确描述所讨论对象的​​多边形。

  • 极端细节网格 - 用于特写镜头。每 2 米段 1000 个多边形。
  • 高细节网格 - 用于近距离。每 2 米段 200 个多边形。
  • 中等细节网格 - 用于中等距离。每 10 米段 100 个多边形。
  • 低细节网格 - 用于远距离。每 10 米段 6 个多边形。轨道纹理映射到压载物上,而不是多边形建模。
  • 初始端盖 - 用于样条线开头。100 个多边形。
  • 最终端盖 - 用于样条线末尾。100 个多边形。

端盖提供了任何必要的“关闭”样条线的多边形,这样它在从正面看时不会显得空洞。其他网格不包括任何此类多边形。游戏会自动在从一种轨道类型过渡到另一种轨道类型时,或者在轨道突然开始或结束时,自动应用端盖。

每个网格的长度是独立指定的。建议每个网格尽可能地长,只要在分配的多边形预算内即可。

在对轨道样条线建模时,应注意确保钢轨顶部正好位于原点的 0.3 米以上。这确保了它与火车车辆的车轮相遇,没有重叠,也没有间隙。

样条线放置

[编辑 | 编辑源代码]

网格可以指定为尽可能地紧跟它们的放置样条线(以前:弯曲)或保持笔直但剪切以防止接缝。在 "track-lod-tree" 容器 "track-lod-tree" 容器 中详细讨论了这一点。

网格上的顶点可能属于以下两种高度类别之一

  • 地面 - 顶点定位基于地面高度。
  • 样条线 - 顶点定位基于放置样条线。

顶点的高度类别由其在网格内的相对高度确定 - 如果它小于或等于每个网格指定的接地高度,则认为它是接地的。

实际性能将根据以下因素而有所不同

  • 高细节 LOD 消失的距离。通常这应该非常接近。
  • 较低 LOD 中的多边形数量。通常这应该非常低。
  • 使用的材质数量。理想情况下,所有网格都使用单个材质,而不是每个网格使用一个或多个材质。
  • 每个网格的长度(越长越好)。
  • "track-lod-tree" 容器 "track-lod-tree" 容器 的效率。
  • 用户可定制的细节设置。
  • 等等。


  • Media:TS2009-track.zip - Auran TS2009 示例轨道的 MAX 源代码。仅出于教育目的从 TrainzDev 网站分发。不授予对包含的模型或纹理进行复制或再分发的许可。
  • Media:TS2012-tunnel.rar - 资产的 MAX 源代码:Tunnel Double Track <KUID:523:19721248>。仅出于教育目的从 TrainzDev 网站分发。不授予对包含的模型或纹理进行复制或再分发的许可。
  • Media:TS2012-bridge.rar - 资产的 MAX 源代码:Bridge Plate Girder <KUID:523:19721136>。仅出于教育目的从 TrainzDev 网站分发。不授予对包含的模型或纹理进行复制或再分发的许可。


[编辑 | 编辑源代码]

 

注释、脚注和参考文献

[编辑 | 编辑源代码]

Config.txt 文件在 Trainz 资源中是普遍存在的,因为任何资源都需要此类计算机科学容器才能被定义。在编辑或创建 Trainz 内容时,必须始终牢记关键字-值对的配对关系。 TrainzBaseSpec 包含在定义资源的 config.txt 文件中最常见的属性和容器。 

注释

  1. 此链接,带有连字符的名称,更准确,但截至此注释日期,页面 KIND_Procedural-track 不存在。

 

脚注

 

参考资料

华夏公益教科书