跳转至

3.1. 附加练习与解答

在继续学习之前,请尝试回答以下问题,以检验您对上一章节内容的掌握程度。

学习建议

请先独立思考或查阅文档,尝试给出自己的答案,然后再展开查看解答进行核对。


第一部分:指令用途解析

Options.ObjectVisibility 1

该指令用于调整游戏对物体可见性的处理方式。默认情况下,为了兼容旧版 BVE,openBVE 可能不会渲染玩家视角后方的物体。添加此指令可以确保所有方向的物体都能被正常渲染。

几乎所有的现代 openBVE 线路都应包含此项设置。

Train.File CRT1000

此指令用于加载并指定当前线路使用的列车。示例中,CRT1000 指向 LegacyContent/Train/CRT1000/ 目录,游戏将从此目录加载列车文件。

Train.Run(0).Set 0 与 Train.Flange(0).Set 0

这两条指令为在默认轨道(轨道类型 0)上行驶的列车分配走行音(Run)和轮缘摩擦音(Flange)。如果缺失这些定义,列车在行驶时将会没有声音,甚至可能导致线路被判为无效。

Structure.Rail(0).Load zbx1425/tutorial/rail/gndblst0.csv

该指令为默认的轨道(轨道类型 0)加载一个具体的模型文件,从而定义其在游戏中的外观。如果没有为轨道加载模型,您将看不到任何轨道。

Track.Sta DemoStart;;;;L;;;;30

此指令在当前轨道位置定义一个名为 DemoStart 的车站,并设定其属性:左侧开门 (L),最小停车时间为 30 秒。

Track.Stop 1

该指令为其上方最近的 .Sta 指令(即 DemoStart 车站)定义停车点的位置。参数 1 表示停车标志牌将显示在轨道右侧。


第二部分:思考题

为什么 OptionsStructureRouteTrain 等命名空间的指令通常放在线路文件的开头?
  • Options: 包含影响游戏引擎处理后续指令方式的全局设置,因此需要最先加载。
  • Structure: 定义了线路中使用的所有模型。这些模型必须在被 Track 部分引用之前完成加载。
  • RouteTrain: 包含线路和列车的基础信息,也应在定义具体轨道细节之前设置好。
  • Track: 定义了线路的具体内容,是线路的主体,因此总是放在最后。
为什么说不加 Options.ObjectVisibility 会“后悔”?

如上所述,该指令修正了 openBVE 默认不渲染后方物体的行为。如果没有它,当您在游戏中向后看时,会发现身后的景物都消失了,这会极大地破坏沉浸感。

为什么 Train.Run(0).Set 0Train.Flange(0).Set 0 是必需的?

声音是模拟驾驶体验的重要组成部分。这两条指令将列车定义的声音文件与默认的轨道类型关联起来。如果没有这个关联,列车将是无声的。在 openBVE 的设计中,一个没有声音的线路被认为是无效或不完整的。


恭喜您完成了练习!如果对任何问题仍有疑问,建议您重读上一章节或查阅官方文档。当您准备好后,就可以进入下一章的学习了。