UE4 在游戏中 通过按键或事件 动态修改物体材质
这是我在bilibili的账号主页:
杨一鸣
修改材质的两种形态
1.替换物体的材质
首先需要知道静态网格体的属性,把一个静态网格体放置在世界中,点击它。
在右侧的细节中就会出现两个属性
- Satic Mesh 当前物体的静态网格体模型
- Materials 当前静态网格体的材质
当前物体的材质可能只有一个也可能有多个:
第一个材质的序号为0,第二个材质的序号为1…
游戏中修改材质需要在蓝图中添加事件,所以需要先把静态网格体添加到蓝图中,
- 可以直接右键此网格体-资源操作 -使用此项创建蓝图,如图1
- 也可以在已有的蓝图中点击添加组件-选择static mesh 如图2
- 然后在新加的static mesh中的属性中选择想要添加的静态网格体 如图3
图1 | 图2 |
----- | |
图3 |
打开蓝图的事件图表,按住左键拖动需要修改材质的物体,放置到图表中
点击鼠标右键 创建一个事件 (添加自定义事件)命名为 改变材质 如图4
拖动static mesh的右侧节点 set material 如图5
图4 | 图5 |
在set material中
“目标”对应着你想要的改变的材质物体
“Element Index”对应着之前的材质序号,你想修改几号材质,这里就填几
“material”对应着你想要改变的材质,
你可以手动选择需要更改的材质,也可以把他设置为变量,通过变量的方法修改材质。
-
现在就需要通过事件调用更换材质这个事件
示例:可以在一开始就调用这个事件:如图6
也可以通过键盘事件来调用事件,使物体更换材质:如图7,图8
(你需要先创建另一个材质以供替换)
图6 | 图7 |
←图8 |
现在开始测试:
刚开始的时候是默认的材质,如图9
当我按下键盘1的时候就变换成了我需要修改的材质,如图10
图9 | 图10 |
你也可以修改执行的事件来改变需要修改的条件,比如 受到碰撞,受到伤害:等事件来触发修改材质的事件。
2.对同一个材质的参数进行修改。
效果:比如当前材质中某个贴图的RBG通道进行修改,或者修改某一单独的颜色或透明值。
首先在蓝图中确定你的静态网格体为你需要修改的材质。
假如这个就是你当前物体的材质,按3加鼠标左键点击产生一个颜色,按1加鼠标左键点击产生一个数值。
分别赋给基础颜色,自发光颜色和不透明度。在左侧的细节面板中可以看到他们具体的数值。
分别对他们右键,转换为参数,起一个需要记的名称。
保存材质,返回到蓝图中。
Static Mesh拖出,创建材质实例Create Dynamic Material Imstamce 如图11,图12
- 目标 指需要修改的静态网格体
- Element Index 指你需要修改的材质序号
- Source Material 指需要替换的材质 如果是当前材质就不需要替换
- Optional Name 可选名称 默认就行
图11 | 图12 |
接着创建Set Vector Parameter Value 和Set scalar Parameter Value
第一个节点可以修改向量型的参数值,Paramter Name 填写刚刚创建的参数名称,Value修改需要改变的颜色。在这里我点击那个小方块修改为蓝色(之前为红色)。
自发光调整为1。
把目标连接到刚刚创建的动态实例return value的值。
现在我们可以看看这次修改的效果。还是按1键调用更换材质事件。
可以看到没有按1键之前,蓝图物体是红色的如图13
我按了1,执行了更换材质事件后,物体颜色改为了蓝色,(如果是浮点型自发光,自发光会发出白光,太亮,遮住了蓝色的色调) 如图14
可以关掉太空光源看一下:
当物体没有改颜色时,一片漆黑,什么也看不见。如图15
自发光改为1后,会发出白色的光。如图16
图13 | 图14 |
图15 | 图16 |
现在给方块加一点东西,按1后旋转加变色:
更多用处:在材质中对添加的texture值通过参数修改,可以在拜访蓝图时更加方便。
这样,简易道路图形材质设置就完成了。
更多ue4教学视频请看bilibili个人主页哦。
学习交流群:522836011
-
大富翁游戏 ↩︎