常量表达式

输出值在编辑器中设置后或在游戏开始时设置后通常保持不变的表达式。

Constant(常量)

Constant(常量)表达式输出单个浮点值。这是最常用的表达式之一,并可连接到任何输入,而不必考虑该输入所需的通道数。例如,如果您将一个常量连接到需要 3 个矢量的输入,那么该常量值将用于全部 3 个元素。提供单个数值时,使用说明区域中的小三角形图标来折叠节点可能非常有用。

项目 说明

属性

R 指定表达式所输出的浮点值。

示例:0.7、-0.24 和 1.1

ConstantExample.png

通过在材质编辑器的图形区域中按住 1 键并 单击鼠标左键,可快速创建 Constant(常量)节点。

Constant2Vector(常量 2 矢量)

Constant2Vector(常量 2 矢量)表达式输出双通道矢量值,即输出两个常量数值。

项目 说明

属性

R 指定表达式所输出的矢量的红色(第一个)通道的浮点值。
G 指定表达式所输出的矢量的绿色(第二个)通道的浮点值。

示例:(0.4, 0.6) 和 (1.05, -0.3)

用法示例:Constant2Vector(常量 2 矢量)对于修改纹理坐标非常有用,因为这些坐标也是双通道值。

Constant2Example.png

通过在材质编辑器的图形区域中按住 2 键并 单击鼠标左键,可快速创建 Constant2Vector(常量 2 矢量)节点。

Constant3Vector(常量 3 矢量)

Constant3Vector(常量 3 矢量)表达式输出三通道矢量值,即输出三个常量数值。您可以将 RGB 颜色看作 Constant3Vector(常量 3 矢量),其中每个通道都被赋予一种颜色(红色、绿色、蓝色)。

项目 说明

属性

R 指定表达式所输出的矢量的红色(第一个)通道的浮点值。
G 指定表达式所输出的矢量的绿色(第二个)通道的浮点值。
B 指定表达式所输出的矢量的蓝色(第三个)通道的浮点值。

示例:(0.4, 0.6, 0.0) 和 (1.05, -0.3, 0.3)

Constant3Example.png

通过在材质编辑器的图形区域中按住 3 键并 单击鼠标左键,可快速创建 Constant3Vector(常量 3 矢量)节点。

Constant4Vector(常量 4 矢量)

Constant4Vector(常量 4 矢量)表达式输出四通道矢量值,即输出四个常量数值。您可以将 RGBA 颜色看作 Constant4Vector(常量 4 矢量),其中每个通道都被赋予一种颜色(红色、绿色、蓝色、阿尔法)。

项目 说明

属性

R 指定表达式所输出的矢量的红色(第一个)通道的浮点值。
G 指定表达式所输出的矢量的绿色(第二个)通道的浮点值。
B 指定表达式所输出的矢量的蓝色(第三个)通道的浮点值。
A 指定表达式所输出的矢量的阿尔法(第四个)通道的浮点值。

示例:(0.4, 0.6, 0.0, 1.0) 和 (1.05, -0.3, 0.3, 0.5)

Constant4Example.png

通过在材质编辑器的图形区域中按住 4 键并 单击鼠标左键,可快速创建 Constant4Vector(常量 4 矢量)节点。

Distance Cull Fade(距离剔除消退)

DistanceCullFade(距离剔除消退)表达式输出一个从黑色逐渐消退到白色的标量值,并可用于使对象进入剔除距离后逐渐消退。请注意,它不会使对象淡出。

DistanceCullFadeExample.png

这个网络将使对象在摄像机进入剔除距离后淡入(而非“跳入”)。

ParticleColor(粒子颜色)

ParticleColor(粒子颜色)表达式根据 Cascade 内定义的任何粒子颜色数据与给定粒子的当前颜色相关联。此表达式必须连接到适当的通道,即“自发光颜色”(Emissive Color)。

项目 说明

输出

RGB 输出组合的 RGB 矢量数据。
R 输出红色通道数据。
G 输出绿色通道数据。
B 输出蓝色通道数据。
A 输出阿尔法通道数据。

ParticleColorExample.png

在此示例中,您可看到 ParticleColor(粒子颜色)表达式向粒子提供粒子系统内定义的颜色。

ParticleDirection(粒子方向)

ParticleDirection(粒子方向)表达式逐个粒子地输出 Vector3 (RGB) 数据,此数据代表给定粒子的当前行进方向。

ParticleDirectionExample.png

在此图中,您可看到粒子颜色根据每个例子的当前进行方向而变化。

ParticleMotionBlurFade(粒子运动模糊消退)

ParticleMotionBlurFade(粒子运动模糊消退)表达式输出一个值,该值代表因为运动模糊而在粒子上产生的消退量。值 1 代表不模糊,而黑色代表完全模糊。

ParticleMotionBlurFade.png

ParticleRadius(粒子半径)

ParticleRadius(粒子半径)表达式输出每个粒子的半径(以 Unreal 单位计)。例如,这使您能够在半径达到特定程度后对材质进行更改。

ParticleRadiusExample.png

在此图中,粒子在其半径超过 7 个单位时从绿色转变为红色。

ParticleRelativeTime(粒子相对时间)

ParticleRelativeTime(粒子相对时间)表达式输出介于 0 与 1 之间的数值,该数值代表粒子的年龄,其中 0 是生成时刻,而 1 是消亡时刻。

ParticleRelativeTimeExample.png

在此示例中,您可看到粒子相对时间输送到自发光颜色,这导致生成时显示为黑色的粒子逐渐消退,直至其接近消亡时显示为白色。

ParticleSize(粒子大小)

ParticleSize(粒子大小)表达式输出粒子精灵的 X 和 Y 大小。此表达式可用来驱动材质的某些方面。

ParticleSize.png

单击查看大图。

在以上示例中,将 ParticleSize(粒子大小)与 ParticleColor(粒子颜色)相乘。请注意,我们屏蔽了输出,以便仅使用绿色通道,该通道对应于 Y 轴,即粒子的高度。这表示当粒子伸展时,它们的颜色会变亮。当它们收缩时,颜色将变暗。

ParticleSpeed(粒子速度)

ParticleSpeed(粒子速度)输出每个粒子的当前行进速度(以每秒 Unreal 单位数计)。

ParticleSpeedExample.png

在此示例中,将粒子速度输送到粒子颜色,然后除以 10,以提供更有意义的结果。当粒子速度变慢时,它们将变为黑色。

PerInstanceFadeAmount(按实例消退量)

PerInstanceFadeAmount(按实例消退量)表达式输出一个浮点值,该值与应用于实例化静态网格(例如植物叶子)的消退量相关联。它是常量,但对于网格的每个实例,可以是不同的数值。

仅当应用于 InstancedStaticMesh(实例化静态网格)Actor 或其他利用 InstancedStaticMeshComponent(实例化静态网格组件)的 Actor 时,此表达式才有效。

PerInstanceRandom(按实例随机)

PerInstanceRandom(按实例随机)表达式按材质所应用于的静态网格实例输出不同的随机浮点值。InstancedStaticMeshComponent(实例化静态网格组件)用于为实例设置随机浮点值,这个值将公开,以便可用于任何期望的内容(例如,窗外的随机光照水平)。它是常量,但对于网格的每个实例有所不同。

输出值将是介于 0 与目标平台的 RAND_MAX 之间的整数。

PerInstRandomResult.png PerInstanceRandomGraph.png

仅当应用于 InstancedStaticMesh(实例化静态网格)Actor 或其他利用 InstancedStaticMeshComponent(实例化静态网格组件)的 Actor 时,此表达式才有效。

Time(时间)

Time(时间)节点用来向材质(例如,Panner(平移)Cosine(余弦) 或其他时间相关操作)添加经历时间。

项目 说明

属性

忽略暂停(Ignore Pause) 如果为 true,那么时间将一直推进,即使游戏暂停也是这样。
周期(Period) 如果为 true,那么这将是时间回绕前经过的时间量。针对移动材质,这将以全精度在 CPU 上执行周期计算,而在 GPU 上,将以半精度运行(处理长度超过一分钟的周期时,可能会产生问题)。

TimeExample.png

上图中说明的网络将创建一个随时间推移而变化的材质,从而连贯地展现白色与黑色之间的正弦曲线过渡。如果启用了时间段,那么将时间段设置为 0 会有效地停止过渡,而设置为 1 相当于时间段为 false。设置接近于 0 的数值将使材质更迅速地变化。

TwoSidedSign(双面符号)

TwoSidedSign(双面符号)表达式适合在双面定制照明材质的背面翻转法线,以便与冯氏(Phong)明暗处理算法匹配。+1 表示双面材质的正面,-1 表示背面。

exp_twosidedsign.png

VertexColor(顶点颜色)

VertexColor(顶点颜色)表达式是材质的访问点,用于访问影响精灵粒子发射器的颜色模块的输出。

项目 说明

输出

RGB 输出颜色的三通道 RGB 矢量值。
R 输出颜色的红色通道。
G 输出颜色的绿色通道。
B 输出颜色的蓝色通道。
A 输出颜色的阿尔法通道。

VertexColorExample.png

以上网络将利用直接来自粒子系统的颜色和阿尔法数据。此类网络特别适合于实现火花等特殊效果。

ViewProperty(视图属性)

ViewProperty(视图属性)表达式输出依赖于视图的常量属性,例如视野或渲染目标大小。要访问的视图属性可配置,并且,输出类型取决于所配置的待访问属性。

ViewPropertyExample.png

在此示例中,视野为 50 度。

ViewPropertyExampleFOV50.png

这是同一示例,其视野为 90 度。

ViewPropertyExampleFOV90.png

PrecomputedAOMask(预先计算的 AO 蒙版)

PrecomputedAOMask(预先计算的 AO 蒙版)节点用来访问材质中光照系统计算的环境光遮蔽 (AO), 这可能很适合于过程式纹理贴图,或者在老化效果及尘埃随时间推移而缓慢积累的区域加入老化效果及尘埃。

您必须先使用光照系统来建立您所在关卡的照明,然后才能看到 PrecomputedAOMask(预先计算的 AO 蒙版)的结果。

PrecompitedAOMas_00.png

以上截屏使用 AO 蒙版让尘埃层自动混合到环境的角落。 要使用 AO 蒙版,您需要同时启用 全局设置(World Settings) -> 光照系统设置(Lightmass settings)下的 使用环境光遮蔽(Use Ambient Occlusion)生成环境光遮蔽材质蒙版(Generate Ambient Occlusion Material Mask),然后建立照明。 最大遮蔽距离(Max Occlusion Distance)等其他 AO 控制对于调整 AO 外观来说可能非常有用。 并且,请确保将 直接遮蔽小数(Direct Occlusion Fraction)间接遮蔽小数(Indirect Occlusion Fraction)都设置为 0,以使此 AO 不会应用于实际关卡照明。

PrecompitedAOSettings_00.png

您可使用 PrecomputedAOMask(预先计算的 AO 蒙版)材质表达式节点来访问任何材质中的 AO。 PrecomputedAOMask(预先计算的 AO 蒙版)作为 0 到 1 蒙版工作,其中 1 提供受 AO 影响的区域,而 0 提供不受影响的区域。 在下图中,您可以了解如何设置材质以利用 PrecomputedAOMask(预先计算的 AO 蒙版)。

PrecomputedAO_Material_00.png