跳转至内容

Trainz/种类/kind track

来自维基教科书,开放世界中的开放书籍
logo
Trainz 注释参考
TOC | 开始乐趣 | AM&C | 创作 | 书中参考 ORP 参考:  • 索引 • 容器 • 种类 • 标签 | 附录  • 版本

传统轨道

[编辑 | 编辑源代码]

Trainz 1.3TANE(在联锁信号楼中增加了与交叉路口和脚本相关的复杂问题),Trainz 数据模型在轨道和样条线对象软件处理方面可能发生了最显著的变化。这种演变从所谓的块状轨道到最初的 TANE kind 程序化轨道,有三个或四个不同的级别。在 Trainz UTC 和 TRS2004 块状轨道之间,桥梁和隧道被一系列的kind 轨道所取代 - 种类系统的新正式定义,其中包含这些类型(此处显示了它们到 CCG 参考页面的链接):TRS/TC 时代的 CCG 的一个无偏表可以在[此 URL 处找到][1]

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

对这些进行了逐步改进,但TS2009转向缝合轨道技术

KIND 轨道

[编辑 | 编辑源代码]

KIND 轨道为从Trainz-build 版本 2.9 及更高版本(在轨道缝合处理成为默认渲染软件之后)的所有基于样条线的资产提供了唯一的资产种类。与名称相反,正如道路类型被定义为轨道资产一样,这种种类的资产现在包括简单轨道、多轨、桥梁、隧道、树篱、道路、墙壁、路堤、局部电力线、高压电力线、接触网(以及其他轨道旁的“附加轨道容器容器”样条线),等等。

这种种类的资产使用了一种以前称为“缝合轨道”的渲染技术。现在所有其他样条线渲染都已过时,所有过去时代的样条线类别现在都被简单地称为“轨道”,并使用kind 轨道的变体,并设置了适当的标签来实现数字模型。在TANE 版本(v4.0 及更高版本)中添加了一种可选的轨道类型,kind_procedural-track,它包含了看到动画交叉路口部分的新功能。此页面不会直接讨论 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
  • 附加轨道 是嵌入在行业资产中的资产,它从连接到其末端的轨道的轨道继承轨道特性。

支持的标签

[编辑 | 编辑源代码]

样条线对象config.txt 文件中定义的KIND 轨道,在由KIND TrainzBaseSpec定义时支持以下标签。每个标签在此处显示其默认值。

      mesh-table    
      {    
      }    
      轨道容器    (子容器)
      {    
      }    
      端点-前    
      {    
      }    
      端点-后    
      {    
      }    
      附加样条线    
      {    
      }    
      季节选择器    
      {    
      }    
      车辆密度     0
      是道路     0
      是高速公路     0
      是静音     0
      车道数量     0
      是轨道     0
      是隧道     0
      仅限测量员     0
      在小地图上可见(与仅限测量员相反)    
      轨道声音    
      {    
      }    
      交通速度     10.0
      隧道顶部高度     0.0

网格表

[编辑 | 编辑源代码]

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


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


附加样条线

[编辑 | 编辑源代码]

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


端点-前 和 端点-后

[编辑 | 编辑源代码]

“端点-前”和“端点-后”标签以相同的方式指定,但不是强制性的。如果存在,这些端点将在每个方向上样条线的末端之后插入,除非样条线流到另一条相同类型的样条线上。这允许内容创建者“密封”样条线几何体,而无需在每个细分处引入低效的密封多边形。端点遵循正常的适应样条线行为,除了它们在样条线末端的瞬时方向上继续保持直线。端点继承其默认设置来自资产的“轨道”标签,但任何单个值都可以根据需要覆盖。


季节选择器

[编辑 | 编辑源代码]

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

是道路

[编辑 | 编辑源代码]
类型:布尔值(1 或 0)

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

如果没有另外指定,则设置了“isroad”标签的资产是“道路样条线组”的成员(<kuid:30501:100045>)(参见:KIND_Asset-group 中的已知资产组)。


车辆密度

[编辑 | 编辑源代码]

(仅适用于设置了“isroad”的样条线。)

游戏在在这条路上生成Carz之间等待 1x 到 3x 的这个小数值,因此数字越低,道路上生成的交通量就越多。


是高速公路

[编辑 | 编辑源代码]

(仅适用于设置了“isroad”的样条线。)

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


是静音

[编辑 | 编辑源代码]

(仅适用于设置了“istrack”的样条线。)

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


车道数量

[编辑 | 编辑源代码]

(仅适用于设置了“isroad”的样条线。)

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


是轨道

[编辑 | 编辑源代码]

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

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

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

如果没有另外指定,则设置了“istrack”标签的资产是“轨道样条线组”的成员 <kuid:30501:100043>


是隧道

[编辑 | 编辑源代码]

如果设置(1),则此布尔标签会导致样条线被视为“像隧道一样”。尽管有这个名字,但这与真正的隧道样条线功能无关(有关详细信息,请参见“tunnel-roof-height”标签。)

某些类型的脱轨在隧道中被禁用,因为由于火车车辆和玩家的相机对隧道和地形的相互穿透,导致的用户体验会很差。

脚本函数 Vehicle.IsInTunnel() 在车辆的原点位于隧道样条线上时返回“true”。

如果用户处于“外部”或“自动跟踪”相机模式,而相机目标在隧道中,则相机改为“隧道外部”模式。

当相机目标在隧道中时,环境声音的音量减小到 50%。

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


仅限测量员

[编辑 | 编辑源代码]

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


在小地图上可见

[编辑 | 编辑源代码]

如果清除(0),则从 minimap 中隐藏此样条线。具有非仅渲染子级的样条线永远不会显示在 minimap 上。请注意,此标签没有固定的默认值,而是默认为“仅限测量员”标签的反面。


轨道声音

[编辑 | 编辑源代码]

(仅适用于设置了“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 的 MAX 源代码 TS2009 示例轨道。仅出于教育目的从 TrainzDev 网站分发。未授予对包含的模型或纹理进行复制或再分发的许可。
  • Media:TS2012-tunnel.rar - 资产的 MAX 源代码:隧道双轨 <KUID:523:19721248>。仅出于教育目的从 TrainzDev 网站分发。未授予对包含的模型或纹理进行复制或再分发的许可。
  • Media:TS2012-bridge.rar - 资产的 MAX 源代码:桥板梁 <KUID:523:19721136>。仅出于教育目的从 TrainzDev 网站分发。未授予对包含的模型或纹理进行复制或再分发的许可。


[编辑 | 编辑源代码]

 

注释、脚注和参考资料

[编辑 | 编辑源代码]

Config.txt 文件在 Trainz 资产中是普遍存在的,因为没有资产可以在没有这种类型的 计算机科学容器 的情况下定义。在编辑或创建 Trainz 内容时,必须始终牢记关键字-键值对。 TrainzBaseSpec 包含在定义资产的 config.txt 文件中最常见的容器和值。 

注释

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

 

脚注

 

参考资料

华夏公益教科书