参考资料:
《Unreal Engine5 入门到精通》--左央
虚幻引擎5.2文档:https://docs.unrealengine.com/5.2/zh-CN/
前言:
跟着左央老师的《Unreal Engine5 入门到精通》学习制作AI版胡闹厨房,把学习过程与学习到的东西归纳总结起来。
最终效果演示
我的目的就是需要制作卡片并且拜访在场景中,作为厨房的食物材料。

开始学习与制作
制作卡片
在开始制作之前,我可以想象得到,厨房里面的食材和工具,应该会有很多,比如苹果、青瓜、香蕉、盘子、刀等等。因此我需要创建不少卡片去制作它们。因此我需要将这些卡片统一放起来,免得在世界大纲中到处都是卡片,找都找不到。
创建子文件夹来存放卡片
在世界大纲中找到代表关卡的条目:"TopDownMap",右击点开,选择"Create Folder",创建出一个新的文件夹,并且命名为:"ItemCards"。


要点记住:在世界大纲中创建子文件的操作为:右击TopDownMap,选择Create Folder。
卡片们的"家"了,那么就开始创建卡片吧!
创建卡片并且放置在场景中
在UE5的界面中,点开左上角中一个类似盾牌的选项(Create),选择其中的"Shapes",再选择其中的"Plane",创建出一个空白的卡片。


创建出卡片后,可以在世界大纲中按F2进行重命名,命名为:"CardBanana",然后拖到创建出来的"ItemCards"中。

要点:在左上角的"Create"中可以创建出需要的Shapes
卡片有了,那么接下来导入食材和工具的图片吧!
导入食材和工具图片
把视线移到内容浏览器(Content Browser)上,找到路径"Content/TopDown/",在此路径下创建文件夹"Items",在"Items"文件夹中,再创建出子文件夹"Banana"
创建的方法是:右击TopDown,选择"New Folder"。

最终路径是:"Content/TopDown/Items/Banana"。
接着,将Banana的素材图片之间拖到Banana文件夹中。

注意:Texture是纹理的意思,在命名香蕉图片上,命名为TexBanana,其实Tex也就是Texture。这可以是一种命名习惯。
要点:可以在内容浏览器中创建文件夹。当需要一些图片素材的时候,可以直接将素材图片.jpg拖到文件夹中,导入保存。
好啦,卡片和素材都准备好啦,现在开始制作食材和工具了!
建立卡片材质
先来认识一下UE5的材质
当选中刚刚创建出来的空白卡片后,可以在细节面板中找到卡片的材质:

双击点开"Materials"中的小白球,会进入材质编辑器。在材质编辑器中,"BAsicShapeMaterial"决定了材质的最终结果,即颜色、金属度,粗糙度等等。

而其中"BaseColor"决定了材质的颜色。双击点开对应的Color节点,可以自定义材质的颜色:

要点:在点开对应的3D物体,可以在细节面板中看到其材质,双击点开可以对材质进行设置
稍微了解了材质的操作,接下来就开始制作食材和工具卡片材质吧!
制作香蕉卡片材质
视线移到放置香蕉素材图片的文件夹上("Content/TopDown/Items/Banana"),在这个文件夹中右击空白处,选择"Material"创建操作,命名为"MatBananaCard"。(命名习惯:材质的命名前加上Mat,即Material材质的意思)。

创建后,双击点开"MatBananaCard",然后将香蕉的素材图片拖入材质编辑器中,拖入后会出现"Texture Sample"(纹理采样)的节点。这个节点的作用是让材质可以获取纹理对应位置的颜色信息。其中的RGB对应的是三原色:红绿蓝。
接着从RGB的管脚中拖出一条线连上"MatBananaCard"上的"Base Color"。保存,此时,这张卡片就变成了香蕉的图片了。

要点:制作卡片材质的操作是首先在内容浏览器指定的文件夹中创建出材质,接着进入材质编辑器,将素材图片拖入材质编辑器中,从RGB的管脚中拖出一条线上"MatBananaCard"上的"Base Color",完成初步的材质创建。
材质模板
如果按照上面的方法,先创建一个材质,然后将一张纹理拖入材质的材质编辑器,最后连接起来。当游戏后续,可能会出现越来越多的物品,如果每一个物品都需要去重复这些操作,会麻烦得很,我决定还是得省下时间和精力去做后面的开发!
观察一下操作,其实操作都是一样的,唯一不同的是纹理采样的对象不一样。那么能不能出现一个材质模板,让所有材质都基于这个模板,简化材质创建的步骤,直接在模板上,改变材质采样即可呢,那就创建出材质模板。
创建材质模板
由于这个材质模板是未来用于厨房中所有食材和工具的材质模板,因此就直接在"Content/TopDown/Items"的根目录下创建出来,方便使用。
首先在Items目录的空白处右击一下,创建出一个材质"Material",命名为:"MatItemCard"。

随后,双击点开这个材质,在空白处右击一下,在搜索框中搜索"Texture Sample",选择。

选择后,出现TextureSample(纹理采样)的节点,将节点连接,并且右击节点,在弹出来的框框中选择"Convert to Parameter",意思是转换为参数,命名为"ItemTexture",随后在左侧的面板上,选择参数(Parameter)面板,给参数随便带上一个默认参数。


这样就创建好了一个材质模板了。
要点总结:创建材质模板的操作是①在指定文件夹中创建一个材质,②然后双击点开材质,创建出一个"TextureSample"节点,连接节点。③右击材质采样节点,选择"Convert to Parameter",命名参数,并给参数设置默认参数。
创建香蕉卡片材质
在"Content/TopDown/Items/Banana"目录下,右击空白处,选择"Material"--->"MaterialInstance",创建出一个材质实例,命名为"MatInstCardBanana"。
创建好材质实例后,双击点开进入材质实例编辑器:
①在右侧的细节面板中,找到Parent(意为父材质),点击下拉框,搜索刚刚创建出来父材质,即材质模板"MatItemCard",选择。

选择后,就会发现细节面板上方会出现在父材质中设置出来的参数,勾上,然后下拉框,搜索"TexBanana"(即从桌面拖进来的素材图片.jpg),选择香蕉纹理。

然后,一个香蕉材质就做好啦!
然后,重复上述的操作,创建出各种材质!
要点总结:在指定的文件夹中,创建材质实例,命名,双击点开,在Parent的选项中选择父材质,然后再暴露出来的参数中选择对应的材质纹理!