如果想要将某个模型做成可以切换材质的网格体
首先将此网格体做成Actor蓝图,这里我将模型名字命名为Mod_teapoy
右击创建一个蓝图
将此模型 Mod_teapoy 直接拖放到到蓝图中,我们这里命名为 “BP_茶几” 这里模型拥有多维材质(两个材质是一样的)。不影响后面的材质替换。
创建三个变量,将变量类型设置为 “Material Instance”并将三个变量的材质选择为需要替换后的材质,一般会将第一个“材质1”设置成默认材质。
在事件列表中创建三个“自定义事件”(CustomEvent)分别命名为 “切换材质1” “切换材质2” “切换材质3”。
然后右击添加切换材质节点(Set Material),这里的输入节点的Target表示的是需要切换材质的模型,就是将第三步的 Mod_teapoy 拖进事件图表中
Element Index 表示的是多维材质的序号 (参考第二张图) Elenment 0 表示的第一个元素 Elenment 1 表示的是第二个元素,以此类推 所以需要创建两个Set Material,一个元素1,一个元素2
输入节点的Material代表需要替换成的材质,这里我们需要将第四步创建的“Material Instance”类型的变量拖到图标中并与之连接
这里每个自定义事件(CustomEvent)需要添加两个切换材质节点(Set Material) 原因是因为第一步中说明的茶几是多维材质,拥有两个相同材质的元素。
最后拿"事件切换材质1”举例,最终连接方式如下:
“事件切换材质2”“事件切换材质3”也像上面的方式连接 如下:
以上事件创建完毕,接下来我们做UI控制这些事件的运行
首先右击创建 User Interface中的Widge Blueprint(用户界面的控件蓝图)
命名为 UMG_茶几
打开
然后在控制版中找到“按钮”(Button)的控件,我们需要添加四个 其中包括一个文字提示标语和三个切换材质的缩略图
材质缩略图可以经过Ps处理 也可以在Uneal中截图生成 一定要对应好对应的材质。
接下来需要添加这四个按钮的点击事件(On Clicked) 如下:
我们需要用到“BP_茶几”里用到的变量,但是不可以直接使用,需要用到事件预构造节点(EVent Pre Construct) 使用方法如下
其中 Get Actor Of Class(获取类的Actor)的输入节点添加成需要获取变量的Actor名称,并右击 Return Value使节点提升为变量
将提升后的变量拖入图表中 拉出引脚 搜索刚刚蓝图”BP_茶几”中的的自定义事件 切换材质1~3 并与对应按钮 Button 的点击事件相连 如下:
需要将文字的点击事件设置成UI的隐藏,就是说当点击文字时 这个UI会关闭
需要用到设置可视性的节点 Set Visibility 将输入节点的In Visility设置成Collapsed 隐藏起来
当然,设置好了隐藏是不够的 我们还需要将他调用出来,这里有很多方法将UI掉涌出来,这里我们利用最简单的点击事件调出UI
我们需要在BP_茶几的Actor蓝图中写下来:
这里的1 是Mod_teapoy的点击事件 原理和UI按钮的点击事件相同
2的 Create Widge 是将空间蓝图创建出来的意思,输入节点的 Class 代表需要创建的控件名称 UMG_茶几
3的 Add to Viewport 是将控件蓝图创建到视口(屏幕)中的意思
4的 Set Visbility 是设置这个UI的可视性 这样就会和刚刚控件蓝图中 点击文字事件 触发的设置UI可视性为隐藏刚好相反。
连起来逻辑就是 当点击这个蓝图时 会创建UMG_茶几这个UI到视口中 它是可见的 但如果想要将他取消 就需要点击文字 来触发控件蓝图中的隐藏UI效果
文章来源:https://www.toymoban.com/news/detail-400476.html
最后其实也可以添加几个布尔值和触发盒子来做下if判断,当到达茶几范围内一定距离后才可点击触发效果,离开某个范围后 将自动关闭切换材质的UI。文章来源地址https://www.toymoban.com/news/detail-400476.html
到了这里,关于Unreal中利用控件蓝图系统控制模型的材质切换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!