UE 修改材质参数的几种方法 详解

目录

  • 1 应用场景
  • 2 方法
    • 2.1 使用材质参数集修改参数值
    • 2.2 修改在材质编辑器中创建材质参数
    • 2.3 运行时修改材质实例的参数值而不影响父材质中的值

1 应用场景

  • 通过场景中事件触发的方式,在运行时修改模型的材质(例如,玩家走到按钮附近,按钮变色)
  • 通过UMG用户控件修改模型的材质(例如,车辆模型预览,通过界面修改汽车的材质)
  • 等等

2 方法

2.1 使用材质参数集修改参数值

核心原理:该方法可以通过蓝图直接修改材质参数集中的参数值,然后影响使用了该材质参数集的材质并不是直接修改某个模型的材质。

具体的实现步骤如下:

  1. 创建材质参数集
    UE 修改材质参数的几种方法 详解_第1张图片

  2. 材质参数集可以存放很多的参数,有标量参数(一维)和向量参数(四维)。作为测试,分别创建一个Opacity变量参数和BaseColor向量参数。
    UE 修改材质参数的几种方法 详解_第2张图片

  3. 创建两个材质,并在材质编辑器中使用MaterialParams材质参数集。输入Collection Parameter即可找到材质参数集变量。
    UE 修改材质参数的几种方法 详解_第3张图片

设置材质1

UE 修改材质参数的几种方法 详解_第4张图片

设置材质2

UE 修改材质参数的几种方法 详解_第5张图片

  1. 在蓝图中修改材质参数集中的参数值(本文使用关卡蓝图,通过键盘事件来触发参数值修改),使用设置标量参数值(Set Scalar Parameter Value)和设置向量参数值(Set Vector Parameter Value)。
UE 修改材质参数的几种方法 详解_第6张图片设置标量参数值
UE 修改材质参数的几种方法 详解_第7张图片设置向量参数值

如上图,选择Collection(就是材质参数集),选择设置的参数名还有参数值

UE 修改材质参数的几种方法 详解_第8张图片

2.2 修改在材质编辑器中创建材质参数

核心思想:通过蓝图获取网格体组件,通过组件访问材质参数,修改参数值。

在材质编辑器中可以创建标量参数和矢量参数,和材质参数集中类似。
UE 修改材质参数的几种方法 详解_第9张图片

  1. 在材质中创建两个参数,分别是标量参数(GlowingParam)和矢量参数(BaseColorParam),控制基础颜色,还有自发光颜色。
    UE 修改材质参数的几种方法 详解_第10张图片
  2. 在蓝图中使用在材质上设置向量参数值(Set Vector Parameter Value On Materials)和在材质上设置标量参数值(Set Scalar Parameter Value On Materials)函数修改

UE 修改材质参数的几种方法 详解_第11张图片

2.3 运行时修改材质实例的参数值而不影响父材质中的值

应用场景:有时候使用别人插件的时候,别人提供了很多预设的材质实例让我们使用,不同材质实例都有很多的参数,当我们某个模型使用其中一个材质实例想要动态的修改其中的参数。

实现方法:UE中材质实例(也就是在编辑器中创建的材质实例)都是静态常量,是不能在运行时修改的,这时候就需要使用到动态材质实例技术。动态材质实例可以在运行时创建,可以在运行时修改参数。

注意:动态材质实例是根据现有材质创建的,修改了动态材质实例并不会将常量材质修改。

UE 修改材质参数的几种方法 详解_第12张图片
注意:使用的设置向量参数值(Set Vector Parameter Value)函数目标是材质动态实例

你可能感兴趣的:(UE,ue4,ue5,游戏,材质)