UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下:
- B 站视频:s03-创建和移动物体
如果你不打算开之前的博客并且对UE5 比较熟的话按照以下2步操作即可跟上这篇博客的内容:
- 在资源浏览器 Content Drawer 中导入初学者内容
Starter Content
; - 在资源浏览器 Content Drawer 中导入第三人称游戏模式
ThirdPerson
;
如果你是 UE5 新手建议跟随前两篇博客或者原始B站视频链接操作一下:
- 博客一:UE5 学习系列(一)创建一个游戏工程
- 博客二:UE5 学习系列(二)用户操作界面及介绍
1. 放置旋转缩放
1.1 放置基础物体
放置物体有很多种方式,第一种方式是在上方工具栏中的 Quixel Bridge
中进行资产管理,后续会说。
第二种方式也是最初级的方式是仍然是在这个工具栏中,这里以放置一个立方体为例,在物体菜单中选择 Shapes
然后选择立方体 Cube
,直接点击即可。
鼠标点击物体即可弹出物体的坐标系,拖动三个坐标轴箭头即可实现物体在三个方向上的平移。
1.2 通过内容浏览器添加物体
之前的博客介绍过资源浏览器 Content Drawer
,上面的操作同样可以通过资源浏览器实现。
- 点击左下角的资源浏览器
Contant Drawer
; - 在左侧工程文件树中选中内容
Contant
,这一步主要是限定下一步筛选的范围; - 点击窗口左侧的过滤按钮;
- 在过滤器中勾选静态网格对象
Static Mesh
;
在勾选静态网格过滤器后,可以拖拽里面任意物体到操作界面中:
1.3 移动物体
在操作窗口中点击物体后会出现以 几何中心 为原点的坐标轴,除了上面介绍的通过坐标轴进行拖动以外,还可以拖动两两坐标轴之间的的直角实现平面范围内的移动:
视频在这里教授了一个小技巧,如果想要将物体快速落到地面,在点击物体后可以按下 End
键,这个键通常和 PgDn
键是一个,如果你的 End
键是共用键位的话可以尝试用 Fn
+ 组合键的方式触发:
1.4 旋转物体
旋转物体有两种方式,任选其一即可:
- 方式一:在操作界面的右上角点击
旋转
图标进入旋转模式; - 方式二:点击键盘
E
键进入旋转模式;
在进入旋转模式后拖拽物体表面的颜色条实现绕不同轴的旋转;
【Note】:旋转期间无法移动物体,可以点击旋转按钮旁边的 移动
图标进入移动模式或快捷键 w
。
1.5 缩放物体
缩放物体也有两种方式:
- 方式一:在操作界面的右上角点击
缩放
图标进入旋转模式; - 方式二:点击键盘
E
键进入旋转模式;
进入缩放模式后拖拽四个方块即可实现不同轴向的缩放,如果想要物体在三个轴向上均匀缩放可以点击中心的方块并拖拽。
1.6 世界坐标系与相对坐标系
点击操作界面左上角的 地图
图标即可实现世界坐标系与物体相对坐标系之间的显示切换,世界坐标系永远平行于地面;物体相对坐标则是从几何中心出发,朝向与物体姿态相关。
1.7 聚焦物体
这个操作在视频的顺序播放中没有提到,如果你把物体旋转或视角拉的不好看的话可以按照下面两部操作快速正视物体,聚焦后物体会成为你当前操作界面中占据绝大多数面积的显示:
- 点击并选中物体;
- 点击键盘的
F
按键(Focus)
【Note】:无论你是否在移动或旋转模式下,这个 Focus 操作均有效;
1.8 自动吸附/对齐表面
对齐表面默认是不开启的,在操作界面的右上角点击 对齐
按钮,在下拉框中勾选对齐表面 Surface Snapping
:
然后再添加一个球体并将其靠近之前添加的立方体表面就可以实现自动吸附:
【Note】:这个对齐表面通常在创建组合物体的时候会用到,如果你完成了物体组合可以再取消勾选 Surface Snapping
,之前组合的物体不会散架。
1.9 位移步进量
默认情况下单次移动物体的步进距离是 1
,可以通过操作界面右上角的 网格
按钮选择一个合适的步进量,然后再去拖动物体,此时物体单次运动距离就是设置的步进量。越大的步进量会有越顿挫的拖拽感,因为只有达到指定步进量后物体才会移动。
这个步进量最大的便捷在于如果已知两个物体之间的距离为 100,选择步进量为100 则只需拖动一次即可。
1.10 角度步进量
有位移步进量自然有角度步进量,和位移步进量同理,角度步进量是单次旋转操作所带来的角度变化值,在操作界面的右上角 角度
图标,从下拉菜单中选择一个角度,设置好后再去调整物体姿态就会有和位移步进量类似的效果。
1.11 缩放步进量
在操作界面右上角有一个 缩放
按钮,点开后可以设置缩放步进量。和上面的位移步进量与角度步进量类似。
1.12 重置物体
如果你调整物体的次数很多后又感觉没有达到预期从而想要重新调整物体,可以按照下面的步骤执行:
- 选中物体(可以在操作界面中也可以在大纲
Outline
中); - 在右下角的标签栏中点击细节
Details
; - 根据你的需要选择重置的内容;
【Note】:位置重置按钮点击后会回到世界坐标系的 (0,0,0)
上;
如果你想要精确操作对象的位置、姿态、缩放,也可以直接修改上面的值。
1.13 视图全览
有时候我们想要一次性看清物体的三视图,在操作界面的右上角的 视图
按钮:
点击后你的画面会变成如下样子:
【Note】:这个时候你在原地点击是不会恢复到观察模式的,需要在观察模式的窗口处对应位置点击才能恢复。
1.14 聚焦拖动
选中物体后长按 Shift
键,然后在拖拽物体的三个轴就可以让物体在保持当前相对画面的前提下进行拖动:
1.15 更精细的位置拖动
由于默认提供的几个步进量其实非常大,有时候我们只需要调整小的一点点,但即便是最小的步进量也过大了,这时候可以用下面的方式实现更精细的位置拖动:
- 在操作窗口中找到想要移动的物体;
- 在右侧工具栏中找到细节
Detail
标签; - 下拉滚动条找到变换
Transform
条目; - 将鼠标悬停在在位置
Position
的数字上然后拖动;
此时你会发现物体以非常小的进步量进行位移,同时你也可以直接修改这些值。
【Note】:这个值是基于世界坐标系的,不是基于相对坐标系的
1.16 等比精细缩放
上面介绍了可以在缩放模式下通过点击轴的中心点进行等比缩放,和紧挨着的 “更精细的位置拖动” 一样,缩放也可以在数字上完成。但由于右下角的数字本身占显示画面的面积很小,拖动的时候容易托错格子,对于其他物体而言还好说,但对于球而言就非常致命了,到了后期如果需要用代码计算球面法向量的时候你实际得到的是一个椭球法向量,这可能引发后续算法的一系列Bug。
想要在精细控制的时候保持等比缩放可以执行以下步骤:
- 在操作界面中选中待缩放的物体;
- 在右侧工具栏中找到细节
Details
标签页; - 滚动找到变化
Transform
标签; - 找到缩放
Scale
旁白的白色小锁,并确认处于锁定状态;
【Note】:这种锁定方式只对拖动数字的精细控制有效,如果你回到操作界面用轴的方式进行缩放那么该咋样还是咋样。
2. 物体创建
2.1 快速复制物体
如果需要批量在一个物体的当前位置基础上快速创建出一批完全相同的物体,可以按住 Alt
键然后再进行拖拽,这就就可以以当前物体的坐标为基础拉出一堆同轴物体,配合进步量就可以拉出阵列:
2.2 物体加选与减选
选中物体后按住 Ctrl
键然后再去选择其他物体即可实现多个物体选择,配合 Alt
键实现物体阵列:
- 选中一个物体,按住
Alt
键先复制两个出来,然后松开Alt
键; - 按住
Ctrl
键加选三个物体,然后松开Ctrl
键; - 再按住
Alt
键沿着某个轴的方向拖拽即可批量复制所有被加选的物体;
【Note】:可以尝试在旋转模式下执行操作,被选中的物体也会批量执行旋转;
减选同样按住 Alt
减然后点击减选的模型;
2.3 批量选择模型
在右侧工具栏的大纲 Outline
中按照下面的操作可以批量选择对象:
- 找到第一个对象并选中;
- 按住
Shift
键并选择最后一个对象,从第一个对象到最后一个对象的所以元素都会被选中;
选中后 Del
删除,重复此步骤将此之前添加进来的物体全删干净;
3. 利用新手资源库搭建简单的环境
3.1 搭建环境
结合上面介绍的技能打开左下角的资源浏览器 Content Drawer
搭建一个简单场景,你需要用到的资源有下图中红框框住的部分,位置和角度不用特别精确,大体样子产不多就可以。
最终成品如下所示,你可能用到的操作有:
- 物体加选
Ctrl
; - 表面吸附
Surface Snapping
; - 快速轴向复制
Alt
; - 旋转、选择模式切换(可以通过左上角的按钮也可以通过快捷键
E
和W
);
3.2 临时改变物体坐标轴
在视频中还补充了一个技巧用来修改多物体的旋转中心,按照下面步骤操作:
- 按住
Ctrl
多选物体,在最后一个被选中物体的中心会出现它的坐标轴,然后松开Ctrl
; - 按住
鼠标滚轮/中键
拖拽这个坐标轴,将其拖动到一个合适的位置;
然后被选中的物体就会以这个坐标轴作为 临时 操作中心进行旋转等动作。
【Note】:这个操作是临时的,不用担心后面会修改物体原本的坐标轴,只要释放被选中物体这个轴就会消失。
3.3 为这个空间添加四周的墙壁
仍然在 Contant Drawer
中找到墙体 Wall
资源,在新手资源包中有两个墙素材,你可以任意选择一个,但都避免不了缩放,下图中红框部分就是可用的墙体素材:
你的最终目标是实现下面的场景,这一步操作主要是 复制
、移动
、旋转
、缩放
:
【Note】在操作时 尽量避免两个物体发生重叠,你需要养成这种良好的习惯,因为重叠的物体在未来运行时需要计算干涉,这个很耗资源,同时贴图的话也不好调整。如果实在无法避免重叠则应当减少重叠区域。
3.4 将一面墙替换成窗
按照下面的操作步骤将一面墙替换成窗:
- 选中一面墙;
- 在资源浏览器
Content Drawer
中找到窗Wall_Window_400x300
资源; - 在右侧细节
Detail
窗口中找到Static Mesh
区域,然后点击替换
按钮将墙替换成窗;
完成后再将其他三个墙面调整以下缩放以美观。
【Note】:一定要熟练掌握 3.2 临时改变坐标轴 的操作,这个在对齐边缘的时候十分有用。
3.5 为房间添加一些装饰品
然后就是按照你的喜好对房间内进行一些修改,我这里基本保持和视频状态一致,修改结果如下:
然后再给房间加一个盖子:
3.6 UE5 自适应曝光
【News !】这个是 UE5 引擎的新特性 – 自适应曝光,这也是众多游戏开发公司选择 UE 引擎的原因,想要直观感受一下这个特性首先需要进入到刚才封好顶的房子中:
其实你在穿墙进入的过程中会发现整个环境从暗慢变量,很像人眼从亮环境进入到暗环境时的感觉。
【Note】:如果你是新手刚安装UE,这个时候其实还没开启 UE5 的大杀器 Lumen
,后面开启后你会发现对光线的模拟更加逼真,目前只是基于底层物理引擎硬算的结果。
多重复几次从门进入和从墙进入的明暗变化你就可以更直观地感受到模拟人眼的适应过程。UE 将这部分处理作为引擎的基本属性,开发者不必再为这类细节考虑。
很多仿真软件或者引擎造成 Sim2Real 的 gap 重要影响因素之一就是光照和光追没有做好,因为人类接收外界信息的主要途径就是视觉,视觉大模型一直难以从仿真中训练出好效果的重要原因就是仿真不够真,无论是 mujoco 还是 Isaac Sim 都着重于更逼真的物理规则而在光照上欠点火候,但这一点却被游戏领域实现了。我一直坚信如果仿真环境能骗过人眼,那么以此为基础的仿真数据才可以让大模型学习到正真的知识并大幅提升其泛化性。
3.7 手动调整自适应曝光
有时候你需要检验环境搭建的质量或者干脆不想要自适应曝光,可以按照以下操作进行:
- 在操作界面左上角找到
着色球
; - 在下拉菜单中找到游戏设置
Game Settings
并取消勾选;
【Note】:你也可以取消勾选后手动修改下面的 EV100
值看看光照效果如何变化,这个值是可以为负的;
3.8 保存当前关卡
此时如果直接 Ctrl
+ S
退出然后再进来会恢复到空环境,按照下面操作将当前关卡进行保存:
- 在左下角找到资源浏览器
Contant Drawer
; - 点击下拉框中的保存所有
Save All
; - 在弹出的窗口中点击保存所选项
Save Selected
,你可以直接保存在默认位置也可以新建一个文件夹专门用来保存;
相关文章:

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...

大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...