UE4_ 在游戏中 通过按键或事件 动态修改物体材质

时间:2024-04-05 15:52:03

UE4 在游戏中 通过按键或事件 动态修改物体材质

这是我在bilibili的账号主页:
杨一鸣

修改材质的两种形态

现在我以我做的大富翁游戏里面的材质为例。1

1.替换物体的材质

首先需要知道静态网格体的属性,把一个静态网格体放置在世界中,点击它。
在右侧的细节中就会出现两个属性

  • Satic Mesh 当前物体的静态网格体模型
  • Materials 当前静态网格体的材质

UE4_ 在游戏中 通过按键或事件 动态修改物体材质
当前物体的材质可能只有一个也可能有多个:
第一个材质的序号为0,第二个材质的序号为1…
UE4_ 在游戏中 通过按键或事件 动态修改物体材质
游戏中修改材质需要在蓝图中添加事件,所以需要先把静态网格体添加到蓝图中,

  • 可以直接右键此网格体-资源操作 -使用此项创建蓝图,如图1
  • 也可以在已有的蓝图中点击添加组件-选择static mesh 如图2
    • 然后在新加的static mesh中的属性中选择想要添加的静态网格体 如图3
UE4_ 在游戏中 通过按键或事件 动态修改物体材质 UE4_ 在游戏中 通过按键或事件 动态修改物体材质
图1 图2
UE4_ 在游戏中 通过按键或事件 动态修改物体材质 -----
图3

打开蓝图的事件图表,按住左键拖动需要修改材质的物体,放置到图表中
UE4_ 在游戏中 通过按键或事件 动态修改物体材质
点击鼠标右键 创建一个事件 (添加自定义事件)命名为 改变材质 如图4
拖动static mesh的右侧节点 set material 如图5

UE4_ 在游戏中 通过按键或事件 动态修改物体材质 UE4_ 在游戏中 通过按键或事件 动态修改物体材质
图4 图5

在set material中UE4_ 在游戏中 通过按键或事件 动态修改物体材质
“目标”对应着你想要的改变的材质物体
“Element Index”对应着之前的材质序号,你想修改几号材质,这里就填几
“material”对应着你想要改变的材质,
你可以手动选择需要更改的材质,也可以把他设置为变量,通过变量的方法修改材质。
-UE4_ 在游戏中 通过按键或事件 动态修改物体材质
现在就需要通过事件调用更换材质这个事件
示例:可以在一开始就调用这个事件:如图6
也可以通过键盘事件来调用事件,使物体更换材质:如图7,图8
(你需要先创建另一个材质以供替换)

UE4_ 在游戏中 通过按键或事件 动态修改物体材质 UE4_ 在游戏中 通过按键或事件 动态修改物体材质
图6 图7
UE4_ 在游戏中 通过按键或事件 动态修改物体材质 ←图8

现在开始测试:
刚开始的时候是默认的材质,如图9
当我按下键盘1的时候就变换成了我需要修改的材质,如图10

UE4_ 在游戏中 通过按键或事件 动态修改物体材质 UE4_ 在游戏中 通过按键或事件 动态修改物体材质
图9 图10

你也可以修改执行的事件来改变需要修改的条件,比如 受到碰撞UE4_ 在游戏中 通过按键或事件 动态修改物体材质,受到伤害:UE4_ 在游戏中 通过按键或事件 动态修改物体材质等事件来触发修改材质的事件。

2.对同一个材质的参数进行修改。

效果:比如当前材质中某个贴图的RBG通道进行修改,或者修改某一单独的颜色或透明值。
首先在蓝图中确定你的静态网格体为你需要修改的材质。
UE4_ 在游戏中 通过按键或事件 动态修改物体材质
假如这个就是你当前物体的材质,按3加鼠标左键点击产生一个颜色,按1加鼠标左键点击产生一个数值。
分别赋给基础颜色,自发光颜色和不透明度。在左侧的细节面板中可以看到他们具体的数值。
UE4_ 在游戏中 通过按键或事件 动态修改物体材质
分别对他们右键,转换为参数,起一个需要记的名称。
UE4_ 在游戏中 通过按键或事件 动态修改物体材质UE4_ 在游戏中 通过按键或事件 动态修改物体材质

保存材质,返回到蓝图中。

Static Mesh拖出,创建材质实例Create Dynamic Material Imstamce 如图11,图12

  • 目标 指需要修改的静态网格体
  • Element Index 指你需要修改的材质序号
  • Source Material 指需要替换的材质 如果是当前材质就不需要替换
  • Optional Name 可选名称 默认就行
UE4_ 在游戏中 通过按键或事件 动态修改物体材质 UE4_ 在游戏中 通过按键或事件 动态修改物体材质
图11 图12

接着创建Set Vector Parameter Value 和Set scalar Parameter Value
第一个节点可以修改向量型的参数值,Paramter Name 填写刚刚创建的参数名称,Value修改需要改变的颜色。在这里我点击那个小方块修改为蓝色(之前为红色)。
自发光调整为1。
把目标连接到刚刚创建的动态实例return value的值。UE4_ 在游戏中 通过按键或事件 动态修改物体材质

现在我们可以看看这次修改的效果。还是按1键调用更换材质事件。
UE4_ 在游戏中 通过按键或事件 动态修改物体材质

可以看到没有按1键之前,蓝图物体是红色的如图13
我按了1,执行了更换材质事件后,物体颜色改为了蓝色,(如果是浮点型自发光,自发光会发出白光,太亮,遮住了蓝色的色调) 如图14
可以关掉太空光源看一下:
当物体没有改颜色时,一片漆黑,什么也看不见。如图15
自发光改为1后,会发出白色的光。如图16

UE4_ 在游戏中 通过按键或事件 动态修改物体材质 UE4_ 在游戏中 通过按键或事件 动态修改物体材质
图13 图14
UE4_ 在游戏中 通过按键或事件 动态修改物体材质 UE4_ 在游戏中 通过按键或事件 动态修改物体材质
图15 图16

现在给方块加一点东西,按1后旋转加变色:
UE4_ 在游戏中 通过按键或事件 动态修改物体材质
更多用处:在材质中对添加的texture值通过参数修改,可以在拜访蓝图时更加方便。
UE4_ 在游戏中 通过按键或事件 动态修改物体材质
UE4_ 在游戏中 通过按键或事件 动态修改物体材质

UE4_ 在游戏中 通过按键或事件 动态修改物体材质
这样,简易道路图形材质设置就完成了。

更多ue4教学视频请看bilibili个人主页哦。
学习交流群:522836011


  1. 大富翁游戏 ↩︎