doom3灯光编辑器和FX编辑器

本文介绍Doom3中的灯光编辑器及FX声明编辑器的使用方法。涵盖点灯与投射灯特性,以及如何利用FX声明创建复杂的视觉效果序列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址 https://www.iddevnet.com/doom3/editor_light.php

灯光编辑器可以通过键入在控制台中输入 “editLights”或通过按下“J”打开(因为你ĴUICE了灯)。(后一句待定)

您需要在编辑器中选择一个光线才能真正做任何事情

(或者您可以在游戏中运行,并从中选择灯光)。

Doom 3中有两种类型的灯。

点灯 类似于灯泡。有一个中心点,它点亮了围绕该中心点的某个半径的所有东西。

半径实际上不是球面。

它实际上是一个与世界轴对齐的框。

投射灯 类似于 聚光灯,因为它们只能沿着单一方向发光。

点灯

关于Doom 3中的点灯最令人困惑的事实是实际上有2个“中心”的光。

第一个是光的实际中心。它定义了渲染光地图的点。这是紫色的盒子。

第二个中心是阴影和亮点的来源。从那时起,阴影就会被挤出。

这对于创建假的锥形光是非常有用的。

您将光线定位,使其点亮所需的区域,然后将中心向上移动,

以使其看起来像从上方被击落。

对于“大厅方式的天花板灯”的标准,您可以将该区域放置在走廊上,

然后将中心放置在灯模型表面的正下方。要移动中心,

通过将光标记为平行,光就像中心被挤出到无穷远。

所有的阴影都会朝着同一个方向前进,颠簸中的所有亮点都将面向同一个方向。

这对于创造阳光非常方便。

半径为x,y,z相当简单地是3轴中每个的光区的大小。

设置等边半径只意味着它在所有3个方向都是相同的半径。

这在编辑器中很容易看到。我真的很失落,实际上并没有做任何事情。

投射灯

投影光仅在一个方向上离开光源(如手电筒)。

您定义的矩阵控制光的方向和形状。

如果你从未真的搞乱矩阵,只要记住你定义3组(x,y,z)矢量来设置光轴。

因此,如果“目标”矢量设置为-1,0,0,则光将面向世界的负x轴。

然后,“向上”和“向右”向量定义光的方向或旋转,当使用纹理光(如彩色玻璃窗)时,这是真正有用的。

在现实世界中,这3个向量总是正交的(甚至是正交的),

但是在游戏世界中,它们并不一定是。光线很容易被扭曲,产生一些有趣的效果。

然而,其他的东西

编辑的右边是很自我的解释。值得一提的是亮度滑块实际上并不做任何事情。

应用不同的按钮是当您选择了多个灯时。点击应用不同只会更改您更改的灯光上的值。

这样可以让您做一些选择一束灯光,使其全部为红色,而不影响其上的方向,纹理或其他属性。

做最好的方法就是点击F7,把所有的各种各样的东西拉上一个实时渲染和玩弄,

直到它看起来不错。

真的没有别的办法,但通过试错,因为它都是非常主观的。

FX decl编辑器

,手写比较容易。关于fx文件的困难部分是试图解释它们是什么,以及如何使用它们。

想到它们的简单方法就是粒子产生器(这就是为什么它们被列在粒子之下),

但是它们实际上可以做得更多一些。

Robert originaly 写了 FX 系统,

因为他需要一种方法来轻松排列特效,主要是为了“诞生 效应”。

没有什么可以做的FX系统,不能做一些其他的方式,

但FX decls往往执行更快,并且往往更容易创建。

fx由一个或多个fx动组成。不同类型的fx行为是:

  • 产生或修改光
  • 产生一个粒子,模型或实体
  • 开始一个声音
  • 放一个贴花
  • 摇动玩家
  • 发射弹药

当效果开始时,它将在指定的延迟之后启动所有FX操作。

所以你可以立即产生一个蓝色的颗粒,半秒钟后发出一声,一秒后产生光,

3秒钟后产生一些颗粒,4秒后淡出光线。这正是这个文件的作用:

fx fx / example {
    {
        延迟0
        持续时间1.0
        粒子“blue.prt”
    }


    {
        延迟0.5
        重启0
        持续时间1.0
        声音“随机”
    }
    {
        延迟1.0
        重启0
        持续时间5.0
        名字“somelight”
        光“灯/灯光”,2,2,2,500
        淡入淡出1
    }

    {
        延迟3.0
        重启0
        持续时间0.1
        粒子“someparticle.prt”
    }


    {
        延迟4.0
        重启0
        持续时间5.0
        useLight“somelight”
        淡入淡出1
    }

}

    {
        延迟0
        持续时间1.0
        粒子“blue.prt”
    }

    {
        延迟0.5
        重启0
        持续时间1.0
        声音“随机”
    }

    {
        延迟1.0
        重启0
        持续时间5.0
        名字“somelight”
        光“灯/灯光”,2,2,2,500
        淡入淡出1
    }

    {
        延迟3.0
        重启0
        持续时间0.1
        粒子“someparticle.prt”
    }

    {
        延迟4.0
        重启0
        持续时间5.0
        useLight“somelight”
        淡入淡出1
    }

}

所有效果都附加到一个实体上,所以它创建的任何东西(灯,粒子,声音等)

从实体的起始点开始(加上定义的偏移量)。

可以使用“bindto”关键字将效果附加到特定的关节。

这应该在任何外汇行动之外的“全球”部分。

请参阅“skulltrail.fx”作为示例。

最复杂的一组效果是当怪物产生时发生的那些效果。

闪电和声音和灯光的复杂序列都是用fx声明完成的。

代码只是说“在这里创造一个 诞生 效应”。

它使用的具体fx是在怪物的entityDef中,

并且生成它的代码在monster_base.script中,位于480行附近。

FX decl关键字

name <string>这个动作的名字
延迟时间在此操作发生之前,启动效果后的时间(秒)
摇动<time> <amplitude> <distance> <falloff> <脉冲>摇摆玩家一点点。看看hkwalk.fx的一个很好的例子。
ignoreMaster不要动摇这个效果所附的实体
随机的<min>,<max>随机时间添加到延迟。
火(兄弟)当这个动作发生时,会导致兄弟行动发生。这是一种同步两个随机动作的方式。见smallsparks.fx
持续时间<time>行动在杀死或重新启动之前持续多长时间
重新启动<bool>如果在“持续时间”用完后再次启动操作,请设置为1
fadeIn <time>在<时间>秒内淡入光或模型的RGB
fadeOut <time>淡出灯光/模型。如果设置了fadeIn,则可以忽略它,如果您希望光线淡入淡出,您可以使用两个单独的动作(与uselight捆绑在一起)。
偏移量<x>,<y>,<z>与该动作位于的实体(或绑定点)的起点偏移
轴<x>,<y>,<z>模型的轴,与角度相互排斥
角度<pitch>,<yaw>,<roll>设置模型轴的替代方式
旋转角度不曾用过
light <material>,<red>,<green>,<blue>,<radius>创造光
noshadows这种效果的光不会投下阴影
attachlight <light>附加到外部光(在效果中未定义的光)褪色。这是什么原因导致所有的灯在alphalabs 2淡入/淡出
attachentity <entity>附加到外部实体。Doom 3中没有实际使用
启动<entity>发射射弹。在Doom 3中并没有实际使用,但我想它可以用来创建一个整齐的马里奥跳跃的熔岩效果。
uselight <sibling>修改兄弟行动中的灯光值。可以用来淡出早期褪色的光。
useModel <model>在兄弟行动中修改模型。可以用来淡化兄弟姐妹中的一个粒子。
模型<model>创建(或淡入)模型
粒子<模型>与模型相同
贴花<材料>将指定的贴花贴在地上(以及该地区的其他任何东西)
大小<int>贴花的尺寸
trackorigin <bool>与实体一起移动(产卵后相对于静止)
particleTrackVelocity不曾用过
声音<sndshader>开始一个声音(在任何频道上)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值