本节书摘来异步社区《Unreal Engine 4蓝图可视化编程》一书中的第1章,第1.3节,作者: Brenden Sewell 译者: 陈东林 责编: 胡俊英,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.3 材质
之前我们设定的目标是:当圆柱体被射弹击中后,能够改变自身的颜色。因此,我们需要改变圆柱体actor的材质。材质是一种资源,能被添加到actor的网格当中(网格定义了actor的物理形状)。可以认为材质就像油漆一样作用于actor的网格或外形之上。因为actor的材质决定了它的颜色,所以改变actor颜色的方法之一就是将原先的材质替换为另一种颜色的材质。因此,我们首要任务是创建材质,这个材质将使actor呈现红色。
1.3.1 创建材质
在内容浏览器里找到FirstPersonBP文件夹,创建子文件夹并命名为Materials,进入Materials目录,在空白处单击鼠标右键,在弹出的菜单表中选择创建高级资源>>材质&贴图>>材质,将新建的材质命名为TargetRed。
1.3.2 材质属性与蓝图节点
双击TargetRed材质,打开编辑标签,如图1.7所示。
上图所示为材质编辑器,其与蓝图拥有同样的特性。这个屏幕的中心称为网格(grid)。我们可以将所有的定义蓝图多级的对象放置到网格上,该网格的标签名为material,术语称为节点。在之前的截图中,有一系列的输入引脚,这样其他的材质节点可以添加到上面,也因此可以定义它的属性。
为了将颜色赋给材质,我们需要创建一个节点。该节点将为节点中基础颜色(Base Color)输入给出颜色的信息。在节点附近的空区域单击鼠标右键,将出现一个菜单,它包含搜索框和一个可扩展的选择列表。这个展示了所有的我们可用添加到这个材质蓝图的可用蓝图节点选项。搜索框对文本很敏感,我们键入搜索对象的前几个字符就能看到一系列的搜索结果,在这里我们搜索的是VectorParameter,如图1.8所示。
材质编辑器(Material Editor)中的VectorParameter用于定义颜色,我们可以将它添加到材质编辑器的基础颜色输入节点。首先需要给VectorParameter节点选择一个颜色,双击Color节点的黑色区域,打开颜色选择器(Color Picker)。当目标被选择时,我们希望它显示亮红色,在色盘中手动选择颜色,如图1.9所示,选择完毕后单击好按钮,稍后你将发现原来VectorParameter节点的中间黑色的部分已经变成了红色。
为了帮助我们记忆在材质中VectorParameter会哪些参数或属性,我们需要将Vector Parameter重命名为Color。当选中节点时,该节点会被金色的边框包围,查看细节面板(Details)里的内容,在通用 >Parameter处键入“Color”。这时VectorParameter节点名称自动地由None改为Color。
最后一步,连接Color VectorParameter节点与基础颜色节点。在蓝图中,可以通过单击和拖曳输出引脚至输入引脚将节点连接起来。输入引脚在节点的左侧,输出引脚在节点右侧。连接两个节点的细线称之为引线(Wire)。从Color输出引脚拖出一根引线至材质节点的基础颜色输入引脚,如图1.10所示。
1.3.3 为材质添加属性
我们可以通过材质节点的其他输入引脚,给材质添加一些光泽。如果使用单一颜色、平整的材质,3D物体看起来就会很不真实,可以在金属(Metallic)和粗糙度(Roughness)引脚设置值来改善这一情况。在空的网格区域单击鼠标右键,在搜索框中键入“scalar”,找到ScalarParameter节点,如图1.11所示。
找到ScarlarParameter并选择,转到细节面板(Details),由于任何叠加性的影响对材质都很微妙,设置Default Value为0.1。将节点重命名为Metallic。最后,拖出引线连接Metallic的输出引脚和材质的金属输入引脚。
还需要连接粗糙度参数,在刚才创建的Metallic节点上单击鼠标右键,选择Duplicate。这个操作将生成Metallic节点的复制,唯一不同的时它没有引线与材质连接。选中这个复制节点,然后在细节面板中重命名为Roughness。保持Roughness节点中的Default Value值为0.1不变,拖出引线连接Roughness的输出引脚和材质的粗糙度输入引脚。如图1.12所示。
至此,我们已经创建了一个亮红色的材质,当目标被选择时就会用它来突出显示。单击编辑器左上角的“保存”按钮保存资源,然后关闭材质编辑器返回关卡。