静线数据库 为了无法保存的记忆
歌曲封面 未知作品
  • 歌曲封面FightSeventhDeusExMachina_Zoe();削除
  • 歌曲封面Lullaby For an Android (feat. AKA)Sad Keyboard Guy
  • 歌曲封面Grown-up's ParadiseMili
  • 歌曲封面Abst:Re:ActAcuticNotes

滇ICP备2024045441

版权声明与隐私政策

网站已运行 235 天 1 小时 56 分

Powered by Typecho & Sunny

2 online · 31 ms

Title

现实主义大修 Wiki 翻译版 | 配置 Waterfall 尾焰模组

HelixCopex

·

·

323次阅读
技术 坎巴拉 RO 模组 Wiki 的翻译版本 - 如何将 Waterfall 尾焰应用于现实主义大修的教程。该部分由 Alvin Meng 贡献,描述了为现有引擎在 RO 中配置 Waterfall 尾焰的方法,较为详细,包含大量专有名词。
Article
⚠️ 本文最后更新于2024年04月21日,已经过了213天没有更新,若内容或图片失效,请留言反馈
头图
本文是一系列翻译文章的一部分。查看该系列目录

ROWaterfall 是现实主义大修所使用的 ModuleManager 补丁集合,用于将 Waterfall 尾焰模组与音效统一地在引擎上启用。它与 RealPlume 兼容:如果在 RealPlume 模组之外还安装了 Waterfall Core 模组,那么没有 Waterfall 配置文件的引擎将继续使用 RealPlume,而具有 Waterfall 配置文件的引擎将使用 Waterfall。

概述


本文涉及巨多专有词汇。在阅读前,请了解以下翻译对照表:

  • node - 节点
  • key - 键(或键值)
  • template(s) - 模板
  • variant(s) - 变种(或变量,按上下文取词)
  • subtype - 亚种
  • pass - 传递

预先查询相应词义将有助于理解本文。

ROWaterfall 提供了 ROWaterfall 节点 (node) 来指定效果。下面是配置文件的例子:

♾️ cfg 代码:
@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 节点可以包含以下键值和节点:

键值/节点名必须默认值描述
autoConfig1
template不适用2
controllerSet基于 Template 自动选择3
audio4
moduleID部件的 name5
engineIDbasicEngine6
transformthrustTransform7
position0,0,08
rotation0,0,09
scale1,1,110
glow11
glowStretch112
ExtraTemplate {}13
MainPlumeVariant {}14
defaultMainPlumeVariantNametemplate 自动生成15
useRelativeScalingfalse16
  1. 应用一组预定义的可切换尾焰。这个键值会 一体化地自动配置 audio,template,MainPlumeVariant {},与 ModuleEngineConfigsposition,rotationscale 值应根据“默认值”进行配置,它可以在 GameData/RealismOverhaul/Waterfall_Configs/_Processor/15_auto-config.cfg 中被找到。目前该键值有两种可能的值:rcs(默认值为 rowaterfall-rcs-cold-gas-1)和 genericThruster(默认值为 waterfall-hypergolic-white-upper-1)。
  2. 所需要的 Waterfall 模板名称。默认 Waterfall 尾焰模板可以在 GameData/Waterfall/Templates 中被找到,并且现实主义大修在 Waterfall_Configs/_Templates 提供了补充模板。
  3. 指定一个或多个需要被插入的 CONTROLLER 设置。ROWaterfall 将根据主要模板(参见 Waterfall_Configs/_Processor/90_controllers.cfg)或回退到默认设置来确定合适的控制器设置(默认设置适用于大多数情况)。若要指定不插入控制器设置,请将这个键值设置为 custom
  4. 需要使用的音效模板。请在 Waterfall_Configs/_Audio 中参考哪些音效模板是可用的。虽然这个值并非严格要求,但省略这个值会导致引擎没有声音。
  5. 覆盖自动生成的 ModuleWaterfallFXmoduleID
  6. 设置用于节流阀控制器的 engineID,如果它有一个节流阀的话。
  7. 在主要模板上设置 overrideParentTransform 的值。如果这个模板是一个 RCS 模板,那么 RCS 控制器的 thrusterTransformName 也将被设置为该值。
  8. 设置主模板的位置。
  9. 设置主模板的旋转方向。
  10. 设置主模板的缩放尺寸。
  11. 添加一个与主模板基底位置和大小相同的喷管光晕。关于它的用法,请参阅喷管光晕
  12. 生成的光晕长度将乘以此键值作为倍数。它适用于很短的喷管,默认长度可能会导致产生难看的穿模。
  13. 这个节点可用于在生成的 ModuleWaterfallFX 中添加额外的模板(例如用于 verniers 的模板)。template 键是必须的,而 transform,position,rotation,scale 几个键值是可选的,如果它们未指定,则将会从上级配置中继承这几个键的值。添加的模板应使用和主模板相同的控制器。如果没有,你可以手动添加其他控制器。你也许会用到多个 MainPlumeVariant 节点。
  14. 用于定义根据燃料类型自动选择的尾焰变种。这需要使用 B9PartSwitch 模组,因此该节点需要使用 :NEEDS[B9PartSwitch] 声明。请查看 基于燃料种类的尾焰切换 来了解它的用法。可以存在多个 MainPlumeVariant 节点。
  15. 覆盖默认尾焰变种的名称,如果该键值为空,则默认尾焰变种的名称将是模板名称的缩写。
  16. 除非你知道自己在做什么,否则不要修改这个键值。它使尾焰尺寸相对于父部件(也即该尾焰依附的引擎)的尺寸变化而变化,主要用途是解决由于部件缩放不均匀导致的尾焰尺寸误差。

喷管光晕

添加一个 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,rotationsacle:可选,如果它们未被设定,则键值将从默认变种中继承。
  • glowRecolor:可选,与 glow 键读取的值相同。该键被用于替换默认尾焰变种的光晕颜色。它只会在默认变种有一个 glow 键被声明时有效。

如果你已安装 B9PartSwitch 模组且目前已有 MainPlumeVariant,ROWaterfall 将创建一个 ModuleB9PartSwitch 键,伴随 moduleIDrowaterfallMainPlumeSwitch。对于每个 MainPlumeVariant,ROWaterfall 将生成一个具有相同 nameSUBTYPE,该 SUBTYPE 会适时切换 Waterfall 模组中多个 TEMPLATE。它同样会创建一个 name 衍生自它的 template 的默认亚种(除非你已经使用 defaultMainPlumeVariantName 键在上级 ROWaterfall 节点中覆盖本键值)。

除此以外,通过设置 b9psModuleID 键并指定每个 CONFIG 使用默认变量,ROWaterfall 将设置 ModuleEngineConfigs 键的 B9PartSwitch 整合版本。

请注意,ExtraTemplate并不 能够直接使用 MainPlumeVariant 切换,它必须通过手动修改自动生成的切换器来完成。

每个不使用默认变量的 ModuleEngineConfigsCONFIG 键必须指定变量的 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-blue
  • methalox-purple
  • ntr3
  • pentaborane:剧毒。
  • 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 推进器。

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 尾焰,适用于不同类型燃料。

rowaterfall-rcs-模板系列图示

从左到右分别为:hypergolic-2(灵感来源于太空梭),hypergolic-1,hydrazine-1,cold-gas-1

rowaterfall-srm-vac-1

一个固推模板,灵感来自 Castor 30 引擎的真空室测试影像。

来自 蓝狗设计局(Bluedog Design Bureau)的模板

  • BDB_HTP_vernier
  • BDB_HTP_vernierVac
  • BDB_nuclear_PBR_sustainer_LOXaug

音效模板

ROWaterfall 将使用以下默认节点名生成音效:running,engage,disengage, 以及 flameout

可以使用下列通用模板:

  • pressure-fed-1
  • pump-fed-very-light-1
  • pump-fed-light-1
  • pump-fed-medium-1
  • pump-fed-heavy-1
  • pump-fed-very-heavy-1
  • rcs-jet-1

pimp-fed 系列音效会越来越嘶哑,它基于来自 Rocket Sound Enhancement 模组的音效(作为 Waterfall 的一部分发布)。

它同样有一些特殊音效可以使用:

  • pump-fed-f1,嘶哑且充满力量。
  • pump-fed-gamma
  • pump-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 所生成效果的修改(ModuleWaterfallFXEFFECTS)可以通过 :AFTER[zROWaterfall_Post] 传递完成。(这个操作以前需要通过 :AFTER[zROWaterfall_99_Finalize] 传递完成。后者仍然有效,但不建议这样做。)

以下例子修改了 kerelox 尾焰变种的一个 ExtraTemplate

♾️ cfg 代码:
@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

♾️ cfg 代码:
@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 会插入它所知的,适合特定主模板的特定控制器,或者插入以下一组后备控制器:

♾️ cfg 代码:
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 为如下形式:

♾️ cfg 代码:
@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 配置其光晕缩放。不同尾焰的数学处理方法会有所不同(可以参考现有的计算方法),但结果应该是光晕的直径与尾焰的底部相同,并且其顶面与尾焰的底部重合。换句话说,如果使尾焰与喷口边缘相吻合,则光晕应充满喷口内部而不发生穿模。

本文是一系列翻译文章的一部分。查看该系列目录

  1. 译者注:通常指的是以压缩氮气为推进剂的 RCS 推进器。
  2. 译者注:原文如此(IMAGE: TODO)。
  3. 译者注:四氧化二氮(Nitrogen TetRoxide),而不是什么其他东西。
现在已有 3 条评论,3 人点赞
klcdm
Comment:共3条
发表
  1. 头像
    @

    博主

    HelixCopex
    我真的很佩服作者写这篇文章的毅力。
    翻吐了,赶紧睡个午觉补补。
    · Windows · 火狐浏览器

    👍

    💖

    💯

    💦

    😄

    🪙

    👍 0 💖 0 💯 2 💦 0 😄 0 🪙 0
  2. 头像
    @
    热乎着,精品
    · Windows · Chrome

    👍

    💖

    💯

    💦

    😄

    🪙

    👍 1 💖 0 💯 0 💦 0 😄 0 🪙 0
    1. 头像
      @
      做头图/校对/内链替换啥都没干呢,算是半熟端上桌(
      原文才是精品,我这蹩脚翻译过誉了 😹
      · Windows · 火狐浏览器

      👍

      💖

      💯

      💦

      😄

      🪙

      👍 0 💖 0 💯 1 💦 0 😄 0 🪙 0
搜 索 消 息 足 迹
你还不曾留言过..
你还不曾留下足迹..
博主 不再显示
博主