这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下:
- 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
,你可以直接保存在默认位置也可以新建一个文件夹专门用来保存;