
本文是一系列翻译文章的一部分。查看该系列目录
ROWaterfall 是现实主义大修所使用的 ModuleManager 补丁集合,用于将 Waterfall 尾焰模组与音效统一地在引擎上启用。它与 RealPlume 兼容:如果在 RealPlume 模组之外还安装了 Waterfall Core 模组,那么没有 Waterfall 配置文件的引擎将继续使用 RealPlume,而具有 Waterfall 配置文件的引擎将使用 Waterfall。
概述
本文涉及巨多专有词汇。在阅读前,请了解以下翻译对照表:
- node - 节点
- key - 键(或键值)
- template(s) - 模板
- variant(s) - 变种(或变量,按上下文取词)
- subtype - 亚种
- pass - 传递
预先查询相应词义将有助于理解本文。
ROWaterfall 提供了 ROWaterfall 节点 (node) 来指定效果。下面是配置文件的例子:
@PART[ROE-RD107]:BEFORE[ROWaterfall]:NEEDS[Waterfall]
{
ROWaterfall
{
template = waterfall-kerolox-lower-1
audio = pump-fed-heavy-1
transform = RD-107A-MainFXTransform
position = 0,0,0.48
rotation = 0,0,0
scale = 1.3,1.3,1.3
glow = _yellow
ExtraTemplate
{
template = waterfall-kerolox-vernier-2
transform = RD-107A-VernierFXTransform
position = 0,0,0.29
rotation = 0,0,0
scale = 2.5,2.5,2
}
}
}ROWaterfall 会从这个补丁中生成 Module[ModuleWaterfallFX] 节点和一个 EFFECTS 节点。
请注意,默认情况下,ROWaterfall 将移除现有的所有效果(包括默认配置、RealPlume 配置和自定义 Waterfall 配置)。但是,在安装了其他尾焰模组的情况下使用 ROWaterfall 是有可能的。
配置选项
每个部件只能有一个 ROWaterfall 节点。如果你需要更复杂的尾焰,可以手动添加额外的 ModuleWaterfallFX 节点。
一个 ROWaterfall 节点可以包含以下键值和节点:
| 键值/节点名 | 必须 | 默认值 | 描述 |
|---|---|---|---|
autoConfig | 否 | 无 | 1 |
template | 是 | 不适用 | 2 |
controllerSet | 否 | 基于 Template 自动选择 | 3 |
audio | 否 | 无 | 4 |
moduleID | 否 | 部件的 name | 5 |
engineID | 否 | basicEngine | 6 |
transform | 否 | thrustTransform | 7 |
position | 否 | 0,0,0 | 8 |
rotation | 否 | 0,0,0 | 9 |
scale | 否 | 1,1,1 | 10 |
glow | 否 | 无 | 11 |
glowStretch | 否 | 1 | 12 |
ExtraTemplate {} | 否 | 无 | 13 |
MainPlumeVariant {} | 否 | 无 | 14 |
defaultMainPlumeVariantName | 否 | 从 template 自动生成 | 15 |
useRelativeScaling | 否 | false | 16 |
- 应用一组预定义的可切换尾焰。这个键值会 一体化地自动配置
audio,template,MainPlumeVariant {},与ModuleEngineConfigs。position,rotation和scale值应根据“默认值”进行配置,它可以在GameData/RealismOverhaul/Waterfall_Configs/_Processor/15_auto-config.cfg中被找到。目前该键值有两种可能的值:rcs(默认值为rowaterfall-rcs-cold-gas-1)和genericThruster(默认值为waterfall-hypergolic-white-upper-1)。 - 所需要的 Waterfall 模板名称。默认 Waterfall 尾焰模板可以在
GameData/Waterfall/Templates中被找到,并且现实主义大修在Waterfall_Configs/_Templates提供了补充模板。 - 指定一个或多个需要被插入的
CONTROLLER设置。ROWaterfall 将根据主要模板(参见Waterfall_Configs/_Processor/90_controllers.cfg)或回退到默认设置来确定合适的控制器设置(默认设置适用于大多数情况)。若要指定不插入控制器设置,请将这个键值设置为custom。 - 需要使用的音效模板。请在
Waterfall_Configs/_Audio中参考哪些音效模板是可用的。虽然这个值并非严格要求,但省略这个值会导致引擎没有声音。 - 覆盖自动生成的
ModuleWaterfallFX的moduleID - 设置用于节流阀控制器的
engineID,如果它有一个节流阀的话。 - 在主要模板上设置
overrideParentTransform的值。如果这个模板是一个 RCS 模板,那么 RCS 控制器的thrusterTransformName也将被设置为该值。 - 设置主模板的位置。
- 设置主模板的旋转方向。
- 设置主模板的缩放尺寸。
- 添加一个与主模板基底位置和大小相同的喷管光晕。关于它的用法,请参阅喷管光晕。
- 生成的光晕长度将乘以此键值作为倍数。它适用于很短的喷管,默认长度可能会导致产生难看的穿模。
- 这个节点可用于在生成的
ModuleWaterfallFX中添加额外的模板(例如用于 verniers 的模板)。template键是必须的,而transform,position,rotation,scale几个键值是可选的,如果它们未指定,则将会从上级配置中继承这几个键的值。添加的模板应使用和主模板相同的控制器。如果没有,你可以手动添加其他控制器。你也许会用到多个MainPlumeVariant节点。 - 用于定义根据燃料类型自动选择的尾焰变种。这需要使用 B9PartSwitch 模组,因此该节点需要使用
:NEEDS[B9PartSwitch]声明。请查看 基于燃料种类的尾焰切换 来了解它的用法。可以存在多个MainPlumeVariant节点。 - 覆盖默认尾焰变种的名称,如果该键值为空,则默认尾焰变种的名称将是模板名称的缩写。
- 除非你知道自己在做什么,否则不要修改这个键值。它使尾焰尺寸相对于父部件(也即该尾焰依附的引擎)的尺寸变化而变化,主要用途是解决由于部件缩放不均匀导致的尾焰尺寸误差。
喷管光晕
添加一个 glow 键值会将一个“光晕”模板插入尾焰中。这样做的目的是在尾焰和引擎喷管内部间提供平滑过渡,特别是对于那些使用动态着色器 (dynamic shaders) 的尾焰。建议为所有引擎部件都添加光晕,无论引擎是否有自发光贴图 (emissive)。
glow 键的值有两种形式:
_<color>,指代waterfall-nozzle-glow-<color>-1模板ro-<name>,指代rowaterfall-glow-<name>模板
把这个键设定为其他任何值都将导致无法预料的结果。
你可以参考 尾焰模板 部分来设置这些光晕的外观。
默认设置下,生成的光晕长度是喷口直径的两倍(喷口直径以 scale 键中 x 和 y 值的平均值计算)。
如果你需要配置更复杂的光晕(如自定义光晕朝向),则应使用 ExtraTemplate 节点手动添加(添加方法参见上文相关节点描述)。
基于燃料的尾焰切换
如果安装了 B9PartSwitch 模组,ROWaterfall 将支持基于引擎的 RFMEC 配置来切换尾焰。各个尾焰变种/亚种可以使用 MainPlumeVariant 节点进行声明(参见上文),以及,在上级 ROWaterfall 节点中声明的模板将被确定为默认尾焰变种。
在 B9PartSwitch 模组缺失的情况下,默认变种将被应用于所有类型燃料的引擎。
这个节点将读取以下键值:
name:该键为必要键,且键值需唯一。template:该键为必要键。position,rotation和sacle:可选,如果它们未被设定,则键值将从默认变种中继承。glowRecolor:可选,与glow键读取的值相同。该键被用于替换默认尾焰变种的光晕颜色。它只会在默认变种有一个glow键被声明时有效。
如果你已安装 B9PartSwitch 模组且目前已有 MainPlumeVariant,ROWaterfall 将创建一个 ModuleB9PartSwitch 键,伴随 moduleID 和 rowaterfallMainPlumeSwitch。对于每个 MainPlumeVariant,ROWaterfall 将生成一个具有相同 name 的 SUBTYPE,该 SUBTYPE 会适时切换 Waterfall 模组中多个 TEMPLATE。它同样会创建一个 name 衍生自它的 template 的默认亚种(除非你已经使用 defaultMainPlumeVariantName 键在上级 ROWaterfall 节点中覆盖本键值)。
除此以外,通过设置 b9psModuleID 键并指定每个 CONFIG 使用默认变量,ROWaterfall 将设置 ModuleEngineConfigs 键的 B9PartSwitch 整合版本。
请注意,ExtraTemplate 键 并不 能够直接使用 MainPlumeVariant 切换,它必须通过手动修改自动生成的切换器来完成。
每个不使用默认变量的 ModuleEngineConfigs 和 CONFIG 键必须指定变量的 name 来与 rowaterfallVariant 键一同使用。(如果该配置没有指定变量,则它将使用先前已配置的默认变量。)这个键应在 :BEFORE[ROWaterfall] 传递中设置。
下面的配置为 LR-87 引擎提供了一个液氧煤油尾焰变种,它会在 LR87-AJ-3 和 LR87-AJ-9-Kero 配置被选择时启用:
♾️ cfg 代码:@PART[ROE-LR87]:BEFORE[ROWaterfall]:NEEDS[Waterfall]
{
ROWaterfall
{
template = waterfall-hypergolic-aerozine50-lower-1
audio = pump-fed-lr87
position = 0,0,0.69
rotation = 0, 0, 0
scale = 0.85, 0.85, 0.85
glow = _white
ExtraTemplate
{
template = waterfall-hypergolic-vernier-upper-2
transform = newThrustTransform
position = 0,0,0.011
rotation = 0, 0, 0
scale = 0.9, 0.9, 0.8
}
MainPlumeVariant:NEEDS[B9PartSwitch]
{
name = kerolox
template = waterfall-kerolox-lower-4
position = 0,0,0.69
rotation = 0, 0, 0
scale = 2.05, 2.05, 2.05
glowRecolor = _yellow
}
}
@MODULE[ModuleEngineConfigs]:NEEDS[B9PartSwitch]
{
@CONFIG[LR87-AJ-3]
{
%rowaterfallVariant = kerolox
}
@CONFIG[LR87-AJ-9-Kero]
{
%rowaterfallVariant = kerolox
}
// ROWaterfall will set all other configs to use the default aerozine50 plume.
}
}尾焰模板
除了 Waterfall 提供的模板,ROWaterfall 还提供了许多补充模板。
rowaterfall-cold-gas-1
这个(非现实外观的)模板从 waterfall-rcs-jet-1 修改而来,用于冷气通用推进器1
图像:还未完成2
rowaterfall-glow-模板系列
这些效果是 Waterfall 中光晕的多色版本。
目前提供的颜色有:
cold-gas:朦胧的白色光晕hydrolox-blue:用于上面级氢氧引擎,不那么亮的青蓝色hydrolox-red-blue:用于海平面氢氧尾焰,处于海平面时发红光,在上升到真空的过程中将逐渐变为蓝色。hypergolic-az50:橘黄色,用于混肼-50(四氧化二氮)尾焰。methalox-bluemethalox-purplentr3pentaborane:剧毒。srm:明亮的白黄色。

从左到右依次是:hydrolox-blue,海平面hydrolox-red-blue,真空hydrolox-red-blue,hypergolic-az50,hypergolic-white,methalox-blue,methalox-purple,ntr。
rowaterfall-hydrolox-ssme
另一种真实的 SSME 尾焰。图片由来自 Discord 的 Aviation366 提供。
在这里查看 SSME 尾焰图例。
rowaterfall-hypergolic-superdraco
橙色的超燃燃料尾焰,带有突出的菱形马赫环。灵感来自 SpaceX 的 SuperDraco 推进器。

rowaterfall-hypergolic-udmh-pentaborane-lower-1
由 Spaceman Spiff 提供。
rowaterfall-monopropellant-hydrazine-1
修改自 waterfall-hydrazine-monopropellant-upper-1,使它看起来稍微不那么像 RCS 的外观,且让它朝向了正确的方向。
rowaterfall-ntr-1
修改自 BDB_nuclear_PBR_vac,让它稍微散开并更容易放置 (easier to place) 。
rowaterfall-rcs-模板系列
一组重新上色的 RCS 尾焰,适用于不同类型燃料。

从左到右分别为:hypergolic-2(灵感来源于太空梭),hypergolic-1,hydrazine-1,cold-gas-1。
rowaterfall-srm-vac-1
一个固推模板,灵感来自 Castor 30 引擎的真空室测试影像。
来自 蓝狗设计局(Bluedog Design Bureau)的模板
BDB_HTP_vernierBDB_HTP_vernierVacBDB_nuclear_PBR_sustainer_LOXaug
音效模板
ROWaterfall 将使用以下默认节点名生成音效:running,engage,disengage, 以及 flameout。
可以使用下列通用模板:
pressure-fed-1pump-fed-very-light-1pump-fed-light-1pump-fed-medium-1pump-fed-heavy-1pump-fed-very-heavy-1rcs-jet-1
pimp-fed 系列音效会越来越嘶哑,它基于来自 Rocket Sound Enhancement 模组的音效(作为 Waterfall 的一部分发布)。
它同样有一些特殊音效可以使用:
pump-fed-f1,嘶哑且充满力量。pump-fed-gammapump-fed-lr87,基于真实的“呜呜”点火声。pump-fed-raptor,该音效基于真实的 SpaceX 测试记录。pump-fed-stentor
使用非默认运行音效名称的引擎将没有声音。如果出现这种情况,要么设置运行音效名为 running,要么手动重命名先前生成的 running 效果节点。
结合 ROWaterfall 使用其他尾焰模组
RealPlume 效果(PLUME,PLUME_TEMPLATE)以及手写 Waterfall 配置文件(ModuleWaterfallFX)能够被添加到 :AFTER[ROWaterfall] 传递中,如果你需要它们和 ROWaterfall 共存。如果它们在这个传递前被添加,则它们会被 ROWaterfall 在 :FOR[ROWaterfall] 中删除。
替代方案是,如需强制保留一个已有的 Waterfall 或 RealPlume 配置,请将 rowaterfallKeep 键加入它(键值随便怎样都行)。
自带效果(包括音频)可被添加到 :AFTER[ROWaterfall],只要它们的名称与已经被 ROWaterfall 使用过的不同。否则,请参见修改 ROWaterfall 生成的效果。
配置已被 Waterfall 配置文件定义的部件
你可以选择将已有的手写配置修正,或者用 ROWaterfall 完全重新配置整个部件。
修改 ROWaterfall 生成的效果
对于 ROWaterfall 所生成效果的修改(ModuleWaterfallFX 和 EFFECTS)可以通过 :AFTER[zROWaterfall_Post] 传递完成。(这个操作以前需要通过 :AFTER[zROWaterfall_99_Finalize] 传递完成。后者仍然有效,但不建议这样做。)
以下例子修改了 kerelox 尾焰变种的一个 ExtraTemplate:
@PART[ROE-LR87]:AFTER[zROWaterfall_Post]:NEEDS[Waterfall,B9PartSwitch]
{
@MODULE[ModuleB9PartSwitch]:HAS[#moduleID[rowaterfallMainPlumeSwitch]]
{
@SUBTYPE[kerolox]
{
@MODULE
{
@DATA
{
@TEMPLATE:HAS[#templateName[waterfall-hypergolic-vernier-upper-2]]
{
@templateName = waterfall-kerolox-vernier-2
@position = 0,0,0
@rotation = 0, 0, 0
@scale = 1.85, 1.85, 1.5
}
}
}
}
}
}以下例子将运行效果名修改为 rcs:
@PART[ROC-CSTSM]:AFTER[zROWaterfall_Post]:NEEDS[Waterfall]
{
@EFFECTS
{
@running
{
|_ = rcs
}
}
}向 ROWaterfall 添加模板
按照惯例,ROWaterfall 提供的模板名应以 rowaterfall 开头。
模板应从 1 开始编号,“特殊”模板除外。每个“特殊”模板(例如 SSME 尾焰)只能有一个标准版本。应以向后兼容的方式对现有版本进行艺术修改(例如,不要改变尾焰的“基本尺寸”),从而使使用该模板的所有部件表现一致。
为了方便部署与配置,新模板的 z 位置值一般应为 0,并避免使用较大的 FadeIn 值。这是为了确保有一个与喷口匹配的、明确定义的边界,并且在尾焰缩放时,尾焰底部不会发生位移。
所有喷口光晕的默认位置和大小(即位置、旋转和缩放变量均为默认值时的视觉大小和位置),应和 Waterfall 中提供的自带光晕相同。这是使光晕缩放功能正常工作的必要条件。
Waterfall Wiki 提供了关于创建模板的更多信息。
定义控制器
默认情况下,ROWaterfall 负责将控制器插入 Waterfall 模组,除非它接收到不这么做的指令(通过 controllerSet = custom),否则 ROWaterfall 会插入它所知的,适合特定主模板的特定控制器,或者插入以下一组后备控制器:
CONTROLLER
{
name = atmosphereDepth
linkedTo = atmosphere_density
}
CONTROLLER
{
name = throttle
linkedTo = throttle
engineID = #$/ROWaterfall/engineID$
}
CONTROLLER
{
name = random
linkedTo = random
range = 0,1
}如果你的模板需要一个特定设置的控制器,请在 _Processor/90_controllers.cfg 中定义它,通过添加一个新的默认 controllerSet(例如,@ROWaterfall:HAS[#template[your-template]] { &controllerSet = your-set-name })到文件头部,并修正 CONTROLLER 为如下形式:
@PART:HAS[@ROWaterfall:HAS[#controllerSet[your-set-name]]]:FOR[zROWaterfall_90_Controllers]:NEEDS[Waterfall]
{
@MODULE[ModuleWaterfallFX]:HAS[#__rowaterfall]
{
// Your controllers
}
}一般来说,controllerSet 应根据其包含的控制器命名(例如,atmo-thrust-basicRand),除非它们指定用于一个特定模板。
在 90_controllers.cfg 中的代码块应按字母顺序排列。
配置光晕缩放
如果该模板预计应用于引擎,则你应该在 _Processor/39_glow-resize.cfg 配置其光晕缩放。不同尾焰的数学处理方法会有所不同(可以参考现有的计算方法),但结果应该是光晕的直径与尾焰的底部相同,并且其顶面与尾焰的底部重合。换句话说,如果使尾焰与喷口边缘相吻合,则光晕应充满喷口内部而不发生穿模。
本文是一系列翻译文章的一部分。查看该系列目录




博主
HelixCopex翻吐了,赶紧睡个午觉补补。
👍
💖
💯
💦
😄
🪙
👍
💖
💯
💦
😄
🪙
博主
HelixCopex @klcdm原文才是精品,我这蹩脚翻译过誉了 😹
👍
💖
💯
💦
😄
🪙