UE基础 —— Actors and Geometry

目录

Placing Actors

使用放置Actor面板

使用快捷菜单放置Actor

使用拖放放置Actor

从类查看器放置Actor

Selecting Actors

简单选择

在世界大纲视图中选择Actor

区域选择(单击并拖动)

使用选择菜单

Transforming Actors

手动变换

交互式变换

调整Actor的枢轴点

键盘快捷方式

Actor Snapping

表面对齐

网格对齐

顶点对齐

Actor Mobility

Static Actors

Stationary Actors

Movable Actors

Grouping Actors

Actor打组

处理Actor组

Merging Actors


        任何能够放置到关卡的对象,即为Actor,如camera, Static Mesh, or player start;Actor支持3D变换(如translation, rotation, and scaling);他们可以被gameplay代码(C++或蓝图)创建和销毁;

  • 在C++内,AActor是所有actor的基类;

        为创建关卡,放置Actor到关卡,然后移动、缩放他们以创建环境,且添加脚本去创建他们的行为;

Placing Actors

        Actor 是一种可以放置在 关卡(Level)中的对象,从创建游戏环境的Static Meshes,到sounds, cameras, player characters等等;

  • 在关卡中放置Actor时,本质上是在创建一个基于该Actor的 实例(instance)对象;
  • 在关卡中放置Actor时,还会自动将他们添加到 世界大纲视图(World Outliner)中;
使用放置Actor面板

 

  1. 搜索,使用 搜索(Search) 栏按名称查找Actor;
  2. 过滤,使用这些选项卡快速切换Actor类型;
  3. 资产视图,该视图显示选择搜索和筛选后的所有资产;
    1. 资产(Asset)是引擎项目中的任意一块内容,所有的Actor都是资产;

使用快捷菜单放置Actor

 

使用拖放放置Actor

从类查看器放置Actor

 

Selecting Actors

简单选择

        选择Actor的最基本方法是在视口中 左键单击 它们;单击一个Actor将取消选择任何当前选中的Actor并选择新的Actor;

  • 如在单击新的(未选择的)Actor时按住 Ctrl️ 键,则新的Actor将添加到选择中;
  • 如在单击选中的Actor的同时按住 Ctrl️ 键,则将从选择中移除该Actor;

        此方法适用于选择少量Actor或分散在一个关卡中的多个孤立Actor,但在选择大量Actor时,此方法可能会比较低效且枯燥;

        当选择多个Actor时,可以将它们转换为一个组,在 细节(Details)面板中同时修改它们的属性;

在世界大纲视图中选择Actor

        世界大纲视图(World Outliner)是虚幻编辑器中的一个面板,其中包含关卡中所有Actor的层级树状图;可以像在视口中一样,选择和取消选择列表中的单个Actor;

也可配合Ctrl或Shift,来选择;

区域选择(单击并拖动)

        区域选择是一种快速方法,可在视口中的特定区域内选择或取消选择一组Actor;此类选择通过单击并拖动鼠标来执行,同时按住一个键或组合键(可选);根据在拖动鼠标时按住的键和鼠标按钮的组合,将选择或取消选择方框内的所有Actor;

透视图:

  • Ctrl+Alt+左击框选;

侧视图:

  • 左击并拖动,将当前选择替换为方框内包含的Actor;
  • 左击并拖动 + Shift,将方框内包含的Actor添加到当前选择中;
  • 左击并拖动 + Ctrl + Alt,从当前选择中移除方框内的Actor;

使用选择菜单

Transforming Actors

         变换(Transforming)Actor是指对其进行移动、旋转或缩放(也就是,调整Actor的位置、方向和/或大小);有两种变换Actor的方法:

  • 手动变换
  • 交互式变换
手动变换

        通过 Details 面板的"变换"(Transform)分段进行 手动变换;当在 Level Viewport 中选择一个或多个Actor时,可在此分段查看和编辑它们的 LocationRotation 和 Scale

        每个 Transform 属性都提供了对应X、Y和Z轴的数字输入字段,可以直接输入特定值来调整选定的Actor,或者单击并上下拖动鼠标来调整该字段的数值;

        如选择了多个Actor,并且它们的Location或Rotation有多个数值,则相关字段将显示 Multiple Values;在这种情况下,输入的数字将覆盖所有选定Actor的对应值;注意,这可能会导致Actor重叠;

        可以通过单击 Lock Scale 按钮来锁定 Scale 字段,锁定后,每个轴(X、Y和Z)的数值会同步变化,从而实现等分缩放并防止失真;

        Transform 属性默认 相对(relative) 坐标空间,意味着变换相对于Actor的父节点进行;通过属性旁边的下拉箭头,可在 相对(relative️) 和 世界(world️) 变换之间切换;世界(world️) 变换相对于世界坐标进行,而不是相对于Actor的父节点;

交互式变换

        可以使用一种名为 gizmo️ 的可视化工具,直接在 关卡视口 内进行 交互式变换;gizmo有时也称为 控件(widget)

gizmo由几个部分组成,分别根据其作用的轴进行颜色编码:

  • 红色代表X轴;
  • 绿色代表Y轴;
  • 蓝色代表Z轴;

        根据正在执行的变换类型,gizmo会采用不同的形式:平移、旋转或缩放;可以通过以下方法选择要使用的小工具类型:

  • 单击位于视口右上角的 关卡视口 工具栏中的图标;
  • 使用键盘快捷方式;

选择一个或多个Actor后,可以通过在键盘按下 空格键 在不同类型的小工具之间切换;

平移(Translation)

        由一组颜色编码的箭头组成,指向世界中每个轴的正方向;可用于沿轴、平面移动或自由移动Actor;

  • 单击箭头并拖动箭头以沿该轴移动Actor;
  • 单击两个轴相交点处的正方形并拖动,可沿两个轴(XY、XZ或YZ)定义的平面移动Actor;
  • 单击并拖动所有三个轴相交处的白色球体,沿所有三个轴自由移动Actor;
    • 还可以使用鼠标滚轮将Actor向近处或远处移动;

ALT + 单击并拖动平移的一个箭头,创建并移动所选Actor的副本;

旋转(Rotation)

        由一组三个颜色编码的弧线组成,每个弧线与一个轴相关联;当拖动其中一条弧线时,选定的Actor将围绕该轴旋转;对于这个小工具,任一弧线所影响的轴是垂直于弧线的轴;

        当将光标悬停在特定弧线上时,该弧线会变为黄色,表示可以拖动它来旋转Actor;当开始旋转Actor时,小工具会改变形状,仅显示Actor的旋转轴;旋转量也会实时显示,以帮助把控进度;

缩放(Scale)

        带有末端为立方体的手柄;当通过其中一个手柄拖动小工具时,可沿关联的轴缩放Actor;手柄按轴进行颜色编码,类似于 平移(Translation)和 旋转(Rotation)小工具;

        可以同时沿两个轴缩放Actor,类似于使用 平移(Translation)小工具沿由两个轴定义的平面移动Actor;每两个轴通过一条线连接,形成一个三角形。这些三角形分别对应三个平面之一(XY、XZ、YZ);拖动其中一个三角形即可沿定义该平面的两个轴缩放Actor;当鼠标悬停在其中一个三角形上时,相应手柄变为黄色;

        还可以沿所有三个轴缩放Actor,从而保持其原始比例;如果将光标悬停在所有三个轴相交的立方体上,三个手柄都变为黄色;拖动该中心立方体即可按比例缩放Actor;

世界和局部变换模式

        使用交互式变换方法时,可以选择执行变换时所使用的参考坐标系;意味着可以按以下方式变换Actor:

  • 世界空间,也就是沿世界轴;
  • Actor的局部空间,也就是沿其局部轴;

        默认,虚幻编辑器的启动模式为世界变换模式;要切换到局部变换模式,请单击 关卡视口 工具栏中的 地球 图标;地球变成一个立方体图标,表示现在处于局部变换模式;单击立方体可切换回世界坐标;

调整Actor的枢轴点

        变换Actor时,通常会从Actor的基础枢轴点执行变换;如果启用了变换小工具,则会在该小工具的三个轴相交处看到 枢轴点 

临时调整Actor枢轴点的位置:

  • 鼠标中键单击 变换 小工具的中心处的球体并拖动,即可移动枢轴点;然后,可以围绕新的枢轴点变换对象;
  • 取消选择该Actor后,枢轴点会立即跳回原位;

永久更改枢轴点的位置:

  • 鼠标中键单击 变换 小工具的中心处的球体并拖动,即可移动枢轴点;
  • 右击该静态网格体,选择 枢轴点(Pivot)> 设置为枢轴点偏移(Set as Pivot Offset)
    • 将枢轴点重置为其默认位置,选择 枢轴点(Pivot)> 重置枢轴点偏移(Reset Pivot Offset)
键盘快捷方式
功能按钮工具或操作
W移动
E旋转
R缩放
V(使用平移小工具时按住)切换顶点对齐
左击并拖动(在变换小工具上)移动、旋转或缩放选定的Actor,具体取决于当前活动的变换小工具;
中击并拖动(在枢轴点上)移动选定Actor的枢轴点
Ctrl + W(在Actor上)将选定的Actor复制到原始Actor所在的相同坐标处
Alt + 左击并拖动(在平移小工具上)复制并移动选定的Actor
H(在Actor上)隐藏选定的Actor
Ctrl + H显示所有隐藏的Actor
Shift + E(在Actor上)选择关卡中与所选Actor类型相同的所有匹配Actor
Ctrl + 左击(在Actor上)将该Actor添加到当前Actor选择中

Actor Snapping

        可以利用 对齐(Snapping)功能轻松定位Actor,将其与网格或其他对象对齐;启用对齐后,Actor将在变换后跳至固定位置;

虚幻引擎 有多种不同实现对齐的方式:

  • 表面对齐
  • 网格对齐
  • 顶点对齐
表面对齐

表面对齐 使Actor对齐到地面或其他表面;

选择Actor并按 End 键,该Actor会对齐到最接近的表面;

网格对齐

网格对齐 时,Actor将按特定值的增量移动、旋转或缩放;

  • 拖动网格(Drag Grid) 允许对齐到关卡中的三维隐式网格;
  • 旋转网格(Rotation Grid) 可用于进行增量旋转对齐;
  • 缩放网格(Scale Grid) 会强制"缩放"控件对齐到累加增量,但可以在"编辑器偏好设置"中设置为百分比值;

顶点对齐

        可以使用 顶点对齐 功能将一个对象对齐到另一个对象,方法是使用其各自网格体的多边形顶点;顶点是两条或多条边相交处的点;

        要使用顶点对齐,请在按住 V 键的同时使用平移控件;按住 V 键的同时,只要开始移动对象,就会看到该对象可以对齐到的多边形顶点;此功能在与枢轴点调整一起使用时尤其有用:可以将枢轴点直接对齐到顶点,然后用此方法将该对象对齐到另一个对象上的顶点;

Actor Mobility

        移动性(Mobility)可控制Actor在Gameplay期间是否能够以某种方式移动或变化;此设置主要适用于Static Mesh Actor和Light Actor;它位于Actor的 细节(Details)面板中Actor的变换坐标下;

Static Actors

        静态(Static)移动性在Gameplay期间根本不会移动或更新;

        静态网格体(Static Mesh)Actor设置为静态,其阴影将生成预计算光照贴图(使用Lightmass生成和处理它们);在Gameplay期间永不需要重新定位的结构性或装饰性网格的理想之选;然而,要注意其材质仍可动画化;

        光源(Light)Actor设置为静态,将使用Lightmass帮助生成预计算光照贴图;会照亮Static和Stationary Actor的关卡;对于可移动Actor,它们使用间接光照方法,如Volumetric Lightmaps;

Stationary Actors

        固定(Stationary)移动性在Gameplay期间可以变化但不移动的Actor;

        静态网格体(Static Mesh)Actor设置为固定,则可以变化,但无法移动;不会使用Lightmass帮助生成预计算光照贴图,照亮方式和光源(静态或固定)照亮可移动Actor一样。但由可移动光源照亮时,将使用缓存阴影贴图,在光源不移动时复用于下一帧,这可以提高使用动态光照的项目的性能;

        光源(Light)Actor设置为固定,则可以在Gameplay期间以某种方式更改,例如更改其颜色或强度,变得更亮或更暗,甚至完全没有亮度;固定光源仍会使用Lightmass帮助生成预计算光照贴图,而且还可以为移动中的对象投射动态阴影;

如影响相同Actor的固定光源太多,可能会对性能产生显著影响;

Movable Actors

        可移动(Movable)移动性在Gameplay期间需要以某种方式添加、删除或变化的Actor;这包括移动、缩放、与其他Actor交换,等等;

        静态网格体(Static Mesh)Actor设置为可移动,则将投射完全动态的阴影,这些阴影不会生成光照贴图中存储的预计算光照;可移动静态网格体Actor与光源交互的方式取决于光源类型:

  • 可移动(Movable) 光源:Actor仅投射动态阴影;
  • 固定(Stationary) 光源:Actor组合使用动态阴影和预计算光照数据,例如体积光照贴图;
  • 静态(Static) 光源:Actor仅由预计算光照数据照亮,不会投射动态阴影;

        光源(Light)Actor设置为可移动,则只能投射动态阴影;除了能够在Gameplay期间移动光源外,还可以在运行时更改其颜色和强度,并相应更新场景;但是,务必谨慎使这些光源投射动态阴影,因为其阴影投射方法的性能占用程度最高;

可移动光源还支持Lumen,这是一种动态全局光照和反射系统;

由于虚幻引擎的延迟渲染系统,不投射阴影的可移动光源不会为场景渲染增加开销;

Grouping Actors

将Actor打组,可以同时管理多个Actor;利用Actor组,可以执行以下操作:

  • 将分成一组的Actor作为一个整体变换,比如旋转、平移、缩放;多个Actor属于一个组时,单个Actor变换将锁定;
  • 临时解锁一个组,变换单个Actor,然后重新锁定该组以冻结组中的各个Actor,防止对单个Actor的变换进行更改;
  • 在组中添加和删除Actor;

一个Actor一次只能属于一个组;

        要将多个Actor分成一组,需要首先确保启用了 允许组选择(Allow Group Selection);还可以使用 Ctrl + Shift + G 键盘快捷方式切换此选项;

Actor打组

快捷键:Ctrl + G

 

        处于不同关卡中的Actor不能打组,将当前位于组中的Actor从一个关卡移到另一个关卡,就会将其从现有组中删除;但是,可以在不同关卡之间移动整个组;

打组后,会在 World Outliner 中创建 Group Actor

处理Actor组

Regrouping,重新分组会从全部现有组中删除所有选定的Actor,然后将所有选定的Actor创建成一个新组;使用此选项可将所有选择快速创建成一个新组,而无需手动解散其他组;

  • 选择中包含至少一个组和其他未分组的Actor时即会出现此选项;
  • 快捷键:Ctrl + G

Ungrouping,从所选组中删除所有Actor,然后删除这些组;

  • 快捷键:Shift + G

Lock/Unlock Group

  • 默认情况下,新创建的组处于 已锁定(locked)状态;
    • 如选择锁定组中的Actor,将选择整个组;
    • 变换会影响组中的所有Actor;
  • 如某个组 未锁定(unlocked)状态,可执行以下操作:
    • 选择和变换属于该组的单个Actor;
    • 从该组中删除Actor;

Adding/Removing Actors

        仅在选择一个组和其他未分组的Actor之后,会提供 添加到组(Add to Group)选项;此选项会将未分组的Actor添加到现有组;

        仅在选择未锁定组中的一个或多个Actor之后,系统才会提供 从组中删除(Remove from Group)选项;此选项将从组中删除所选的Actor;如果一个嵌套组从更大的组中删除,它本身仍是一个组

        如一个组不包含Actor,将会自动删除,并且其组Actor会从 World Outliner 中删除;

Transforming Actors/Actor Groups

        Actor组的 枢轴点 会自动设置为该组的中心点;锁定该组时,只能绕该组的枢轴点变换该组内的 全部 Actor;要将单个Actor绕其自己的枢轴点变换,必须首先解锁该组;

要设置Actor组的枢轴点,请选择该组:

  • Alt + 中键点击 ;
  • 中键点击并拖动 ;

Merging Actors

        在 虚幻引擎 中,可通过 Actor merging 操作将两个或更多 静态网格体Actor 结合为新的单个Actor;这样可以减少绘制调用,有助于项目优化;

Merge

  • 会合并全部选中的静态网格体Actor,为每个材质创建一个网格体分段。可以指定要使用的 LOD 级别;
  • 绘制调用数量等于 材质 数量。这种方式保留UV;
  • 也可以选择合并全部材质,这将为整个网格体烘焙单一材质;其结果是单一分段和单一绘制调用,但  保留UV;将针对每一分段进行遮挡剔除;

Simplify

  • 将全部选中的静态网格体Actor合并成一个单一网格体,它被称为 代理网格体(Proxy Mesh)。它使用选定每个网格体的最少细节LOD,并根据设置简化网格体形状。顶点数量也会减少;
  • 其结果是单一绘制调用;它为整个网格体烘焙单一材质,且  保留UV;将针对整个网格体进行遮挡剔除;

Batch

  • 将基于相同的静态网格体组件创建实例化静态网格体组件;它保留UV,且不影响遮挡剔除;

Approximate

  • 与"简化(Simplify)"合并方式相似;两者区别在于"近似(Approximate)"可以处理更复杂的源网格体(如Nanite网格体),而"简化(Simplify)"在简化或纹理烘焙步骤中都会失败;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值