【转载】UE4 材质、蓝图节点及用法笔记

1,974 阅读4分钟

版权声明:本文为CSDN博主「a1406215966」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:blog.csdn.net/a1406215966…

材质基础节点

Saturate

image.png

此节点就是特殊版本的 Clamp夹断在 0-1 之间,它的作用或者优势是:性能消耗比 Clamp 小,几乎没有性能消耗。

官方文档地址: 数学表达式.

DepthFade

image.png

此节点多用于不透明通道,实现半透明与不透明材质对象之间相交时的透明度平滑过渡,效果如下图:左球使用了此节点,右球未使用。

官方文档地址: DepthFade.

image.png

Frac

输出输入值的小数点部分:1.2 输出 0.2。

BlendMaterialAttributes

此节点代表材质末梢节点,也就是新建一个材质打开后那个默认节点,可配合 break 使用,以混合不同材质

image.png

Custom

此节点用于输入 C++ 代码。

蓝图基础节点

Interp

此类节点只能使用在 TickEvent 中。实现 FloatVectorRotater 型数据的动态过渡

image.png

使用方法如下图所示:下图利用此节点实现根据摄像机距离动态改变材质参数,过渡速度通过 Interp Speed 控制。

image.png

转自《UE4平滑视角缩放》 image.png

上边 TickInterp 函数,用来做一个平滑过渡的值,这个值代表了一个从当前值到目标值的过渡,然后还有速度,当前值就是 Target Arm Length目标值新建一个变量(名为 Camera Target),初始值和默认的 Target Arm Length 一样。

下边鼠标滚轮事件,修改 Interp 目标值(Camera Target),如果当前 Target Arm Length300,那么滚轮往上,值减去 100,变成了 200,在 Tick 那边(的 FInterpTo)就是,Target Arm Length300 的值,过渡到 Camera Target200,速度为 5 。这样实现了从 300200 的平滑过渡(通过 Interp 函数)。

材质功能记录和编写

RemapValueRange

image.png

此节点用于数值映射。 节点说明翻译:通用重映射函数,将一个输入范围的值映射到一个输出范围的值(Generalized remapping function to explicitly remap an input range to an output range.)

FlattenNormal

image.png

此节点用于控制法线贴图强度

Gradient

在材质中搜索上述名字,出现一系列黑白 mask 类型,有 星星mask圆形mask

RadialGradientExponential

image.png

image.png

SphereGradient-3D

image.png

image.png

DiamondGradient

image.png

image.png

LinearGradient

image.png

image.png

CustomRotator

此函数实现 UV 的旋转,默认为绕 UV 中心旋转,此节点非实时旋转

image.png

EdgeBlackMask(自编)

此节点的输出贴图如下:实现一张边框白,里面黑色的图,可以用作半透明 Box 带边框效果的发光 Mask

image.png

image.png

节点连接方式如下:

image.png

WhiteBlackWhite(自编)

此节点输出效果如下:实现一张中间黑两边渐变成白色的贴图。

image.png

应用在模型上效果,可用于样条线类模型使用

image.png

节点连接方式如下:如果只需要制作一张从黑色到白色的渐变贴图,只需要从 Texcood 连出 Mask (R) 或者 Mask (G) 即可,用 1-x 进行反向

image.png

OutputFloatbyDistance(自编)

此材质功能实现:在场景中动态根据摄像机与对象的距离映射到指定 Float 值范围,多用于根据距离渐隐渐现半透明对象

节点链接方式如下:

image.png

用途范例

结合 WorldPositionOffset 使用:实现基于视角远近的模型整体偏移

图2 中使用的 BOX 是系统自带模型,在视角高度高于模型时,模型顶点整体发生了偏移。

image.png

image.png

InteriorCubemap

此节点用于连接室内 Cubemap,从而模拟从窗外看室内效果更加真实

下图节点释义硬翻: 内部 Cubemap 符合 Cubemap 的形式,从表面 UV 中插入一个盒形。 这对于通过城市建筑的窗户看到的房间提供视差是有用的。

image.png

从 HDR 下载网站下载 .HDR 格式图片导入 UE4,材质连接方式如下图所示:

image.png

image.png

将材质实例贴到窗户内的 plane 上,调整相应参数至最优,效果如下图所示:相机运动起来也可以模拟不同角度的视差

image.png

PostProcessOutLine

先按照如下图连接材质,材质类型改成后处理模式,并将材质属性中的这个选项改为 “Before Tonemapping

image.png

image.png

image.png

在后处理中添加此材质即可使用。 第二张图那个绿框的 1-x

不连接它:则场景在 Blendweight 为 0 时,只有启用了 customDepth 选项的非透明材质模型才有描边。

连接它:则场景在 Blendweight 为 0 时,启用了 customDepth 选项的非透明材质模型没有描边,其余场景模型均有描边。

在下图处连接上其他 RGB 值或用 Lerp 混合原有节点和一个 RGB,则会出现场景颜色叠加效果

image.png

image.png

Sprite(3D 面向屏幕)

节点连接方式如下:实现面片始终面向屏幕,并根据相机距离缩放面片,使其在屏幕中占像素数量不变。(缩放模型改变整体大小)。

image.png