UE5--物体卡片与材质入门
参考资料:
《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的选项中选择父材质,然后再暴露出来的参数中选择对应的材质纹理!
关于材质的拓展
相关文章:

UE5--物体卡片与材质入门
参考资料: 《Unreal Engine5 入门到精通》--左央 虚幻引擎5.2文档:https://docs.unrealengine.com/5.2/zh-CN/ 前言: 跟着左央老师的《Unreal Engine5 入门到精通》学习制作AI版胡闹厨房,把学习过程与学习到的东西归纳总结起来。 …...
ios 实现TEXT、DOC、PDF等文档读取与预览
文章目录 一、前言二、iCould相关配置三、功能实现3.1 UIDocumentPickerViewController 选取控制器3.2 读取文件3.3 文档预览3.3.1 下载并保存3.3.2 QLPreviewController预览文档四、总结一、前言 最近正在研发的项目有一个需求: 允许用户将iCloud中的文档上传,实现文件的流…...

智慧矿山:让AI算法提高未戴安全带识别率!
未穿戴安全带识别AI算法,作为智慧矿山的重要应用之一,不仅可以有效提高矿山工作人员的安全意识,还可以降低事故发生的概率。然而,识别准确率的提高一直是该算法面临的挑战之一。为了解决这个问题,研究人员不断努力探索…...

【Unity程序技巧】公共Update管理器
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:Uni…...

Node学习笔记之HTTP 模块
回顾:什么是客户端、什么是服务器? 在网络节点中,负责消费资源的电脑,叫做客户端;负责对外提供网络资源的电脑,叫做服务器。 http 模块是 Node.js 官方提供的、用来创建 web 服务器的模块。通过 http 模块…...

SD NAND对比TF卡优势(以CSNP4GCR01-AMW为例)
最近做的一个项目, 需要加大容量存储,这让我想到之前在做ARM的开发板使用的TF卡方案,但是TF卡需要携带卡槽的,但是有限的PCB板布局已经放不下卡槽的位置。 这个时候就需要那种能够不用卡槽,直接贴在板子上面࿰…...

在Espressif-IDE中使用Wokwi仿真ESP32
陈拓 2023/10/17-2023/10/19 1. 概述 在Espressif-IDE v2.9.0版本之后可直接在IDE中使用Wokwi模拟器。 1.1 什么是 Wokwi 模拟器? Wokwi 是一款在线电子模拟器,支持模拟各种开发板、元器件和传感器,例如乐鑫产品 ESP32。 Wokwi 提供基于浏…...

vue3里面vant组件的标签页使用?
一、绑一个v-model事件 二、让activeName的初始为0也就是默认是显示第一个标签页的下标 三、给标签页下面的东西进行一个判断 想让哪个优先显示就把哪个判断作为初始值存入...

【CSS】使用 CSS 实现一个宽高自适应的正方形
1. 利用 padding 或 vw <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><metaname"viewport"content"widthdevice-width, initial-scale1.0"><title>Document</title><st…...

Java Stream流详解
Stream API主要提供了两种类型的操作:中间操作 和 终止操作。 中间操作 中间操作是返回一个新的流,并在返回的流中包含所有之前的操作结果。它们总是延迟计算,这意味着它们只会在终止操作时执行,这样可以最大限度地优化资源使用。…...

localforage-本地存储的优化方案
前言 前端本地化存储算是一个老生常谈的话题了,我们对于 cookies、Web Storage(sessionStorage、localStorage)的使用已经非常熟悉,在面试与实际操作之中也会经常遇到相关的问题,但这些本地化存储的方式还存在一些缺陷…...

自学SLAM(4)《第二讲:三维物体刚体运动》作业
前言 小编研究生的研究方向是视觉SLAM,目前在自学,本篇文章为初学高翔老师课的第二次作业。 文章目录 前言1.熟悉 Eigen 矩阵运算2.几何运算练习3.旋转的表达4.罗德里格斯公式的证明5.四元数运算性质的验证6.熟悉 C11 1.熟悉 Eigen 矩阵运算 设线性⽅程 …...
C++:容量适配器(栈、队列、优先级队列)
目录 1.容器适配器 4.1 什么是适配器 4.2 STL标准库中的容器适配器 2.stack的使用 2.1 STL库中对stack的实现 3.queue的使用 3.1 STL库中对queue的实现 4.priority_queue使用 4.1模拟实现 priority_queue 5.deque 的简介 1.容器适配器 4.1 什么是适配器 适配器是一种…...

Java-IO流
文章目录 Java-IO流文件字节流文件字符流File类缓冲流转换流打印流数据流对象流 Java-IO流 JDK提供了一套用于IO操作的框架,为了方便我们开发者使用,就定义了一个像水流一样,根据流的传输方向和读取单位,分为字节流InputStream和…...

04、Python 爬取免费小说思路
目录 Python 爬取免费小说思路代码解析爬取东西基本的四行代码:user-agent安装模块从 bs4 导入 BeautifulSoup ,查询某个标签开头的数据筛选遍历获取小说的章节名称每章小说的链接获取请求网址的响应获取小说的内容筛选内容整理内容爬取下载到指定文件夹完整代码:Python 爬取…...

【前端vue面试】vue2
目录 computed和watchv-show和v-ifkey 的重要性v-for 和 v-if 不能一起使用!click的event修饰符事件修饰符表单项修饰符 父子组件通讯生命周期父子组件生命周期顺序 $nextTickslot 插槽动态组件异步组件keep-alivemixin computed和watch computed 有缓存࿰…...

自然语言处理---Transformer机制详解之GPT模型介绍
1 GPT介绍 GPT是OpenAI公司提出的一种语言预训练模型.OpenAI在论文<< Improving Language Understanding by Generative Pre-Training >>中提出GPT模型.OpenAI后续又在论文<< Language Models are Unsupervised Multitask Learners >>中提出GPT2模型.…...

【论文阅读】点云地图动态障碍物去除基准 A Dynamic Points Removal Benchmark in Point Cloud Maps
【论文阅读】点云地图动态障碍物去除基准 A Dynamic Points Removal Benchmark in Point Cloud Maps 终于一次轮到了讲自己的paper了 hahaha,写个中文的解读放在博客方便大家讨论 Title Picture Reference and prenotes paper: https://arxiv.org/abs/2307.07260 …...

2023年传媒行业中期策略 AIGC从三个不同层次为内容产业赋能
基本面和新题材共振,推动传媒互联网行情上涨 AIGC 概念带动,传媒板块领涨 A 股 2023 年第一个交易日(1 月 3 日)至 6 月 2 日,申万传媒指数区间涨幅高达 48.38%,同时期沪深 300 跌幅为 0.25%,…...

iOS上架App Store的全攻略
iOS上架App Store的全攻略 第一步:申请开发者账号 在开始将应用上架到App Store之前,你需要申请一个开发者账号。 1.1 打开苹果开发者中心网站:https://developer.apple.com/ 1.2 使用Apple ID和密码登录(如果没有账号则需要注册…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...