静态网格体Actor
本指南说明如何放置和使用静态网格体Actor在环境中创建世界场景几何体。
静态网格体 是虚幻引擎中一种基本类型的可渲染几何体。为了用这些网格体 来布置你的世界场景,需使用 静态网格体Actor。从 内容浏览器 中将静态网格体拖拽到关卡中,该网格体会 自动转换为静态网格体Actor。
尽管它们被称为静态网格体Actor,但这只是指静态网格体Actor的网格体是静态的。静态网格体Actor可以设置为可移动的,这样就可以创建电梯;或者也可设置为模拟物理表现,以便它和玩家发生碰撞。
[图片上传失败...(image-eaf030-1621022128388)]
几何体笔刷Actor
本文档将细述在关卡创建中使用 几何体笔刷 的方法。
不建议将几何体笔刷视为关卡设计的最终方法。其并非必需步骤,但在创建早期阶段较为有用。
几何体笔刷是虚幻编辑器中最为基本的关卡构建工具。理论上建议将几何体笔刷视为在关卡中填充和雕刻空间体积。几何体笔刷之前为关卡设计的主要构件块。现在这个角色已由静态网格体替代,其效率远高于几何体笔刷。但在产品的早期阶段,几何体笔刷依旧有用,其可快速设置关卡和对象的原型,也可用于无法使用3D建模工具的关卡构建。本文档将介绍几何体笔刷的用途以及在关卡中的使用方法。
通常可把几何体笔刷看作是关卡设计过程中所用基本形状的创建方法,可为永久固定工具,也可为美术师完成最终网格体创建时用于测试的临时工具。
几何体笔刷的用途

虽然静态网格体现在主要用于使用几何体填充关卡,但几何体笔刷仍有用武之地。下面为几何体笔刷的部分典型用法:
规划关卡
创建关卡的标准工作流程大致为:
规划关卡和设计关卡路径
测试流程和gameplay
修改布局并重复测试
初始建模阶段
初始灯光阶段
碰撞和性能问题的测试
完善阶段

第一步是在使用静态网格体和其他成品美术资源填充关卡前,先规划关卡以确定布局和流程。通常使用几何体笔刷创建关卡的轮廓,然后通过测试和迭代,完成最终布局。由于无需美术团队,因此在关卡设计的这方面最适用几何体笔刷。关卡设计师可直接使用虚幻编辑器中的内置工具创建和修改几何体笔刷,以达到满意的关卡布局和效果。
测试结束后便开始建模,几何体笔刷将逐渐被静态网格体取代。此过程可更快初始迭代,同时也为美术团队的建模工作提供了良好参考。
简单填充几何体
关卡设计师创建关卡时,时常需要使用较为简单的几何体填充间隙或空间。若无用于填充控件的现成静态网格体,设计师可直接使用几何体笔刷进行填充,无需美术团队创建自定义网格体。尽管静态网格体性能更好,但对于简单几何体而言,偶尔使用几何体笔刷也不会造成严重影响。
骨骼网格物体 Actor
骨骼网格物体 Actor 是什么
骨骼网格物体 Actor 是一种特殊的 Actor,用于显示外部 3D 动画软件中创建的复杂动画数据。骨骼网格物体 Actor 和静态网格物体 Actor 不同,因为骨骼网格物体 Actor 内部有一套复杂的骨骼系统,此系统将移动骨骼网格物体的个体顶点,与当前播放的动画进行匹配。骨骼网格物体 Actor 能使用复杂的骨骼系统,因此他们多用于角色、生物、复杂机器、或其他需要变形和显示复杂动作的物体。在 UE4 中,骨骼网格物体 Actor 不仅可用于角色,还可结合 Matinee 创建动画序列。
在骨骼网格物体 Actor 上播放动画。
在 UE4 中,有两种不同方法可以使骨骼网格物体 Actor 在游戏运行时形成动画。可使用 [动画蓝图],将多个动画一同播放并混合。或使用动画资源播放单个 [动画序列]。在此教程中,我们着重讲述使用动画序列在游戏运行时播放动画。
骨骼网格物体动画设置
骨骼网格物体 Actor 添加至关卡后,即可通过下列步骤为其添加动画。
首先找到一个播放的 动画序列。在此例中我们使用 Trooper_Main 动画序列。

选定使用的动画后,需要对骨骼网格物体 Actor 进行设置方可正常使用。首先需要将 Animation Mode(动画模式) 从 Use Animation Blueprint(使用动画蓝图) 设为 Use Animation Asset(使用动画资源)。

Animation Mode(动画模式) 设置正确后,即可选择需要播放的动画。从 内容浏览器 中选择需要播放的 Animation Sequence(动画序列),然后将其指派到 Anim to Play(播放动画)部分,方法有二:将其拖放至 Anim to Play 上,或使用 Anim to Play 输入框右边的箭头进行操作。

播放骨骼网格物体动画
确保 Looping(循环) 和 Playing(播放) 已勾选(默认为已勾选),然后按下 Play Button(播放按钮),即可看到动画在游戏中播放。
材质覆盖
有时需要覆盖骨骼网格物体 Actor 上已赋予的材质。可手动将新材质指派给骨骼网格物体 Actor 材质,或在编辑器视口中将材质直接拖放至骨骼网格物体 Actor 上。变更骨骼网格物体 Actor 材质的方法与变更其他 Actor 材质的方法相同。
结合骨骼网格物体 Actor 使用的材质在勾选材质用法标记 Used with Skeletal Mesh(结合骨骼网格物体使用) 后才能正常使用。在材质 Details(细节) 面板下的 Usage(用法) 部分可找到此标记。
![]()
碰撞
普通的碰撞创建与检测无法应用于骨骼网格物体 Actor。如需在骨骼网格物体与关卡物体之间创建碰撞,骨骼网格物体 Actor 需拥有为物体单独创建的物理资源。
为骨骼网格物体 Actor 创建碰撞。
为网格物体创建物理资源,只需在 内容浏览器 中的网格物体上 单击右键,然后选择 Create(创建) -> Create Physics Asset(创建物理资源)。可在 [物理资源工具]文档中了解物理资源创建的更多内容。

指派物理资源
创建物理资源后,便将其指派给网格物体。将物理资源指派给骨骼网格物体的方法十分简单:打开骨骼网格物体,然后将物理资源指派给 Physics(物理) 部分下的 Physics Asset(物理资源) 槽。

也可覆盖关卡中的物理资源,方法同样非常简单:选择骨骼网格物体,然后在 Details(细节) 面板中 Physics(物理) 部分的 Physics Asset Override(物理资源覆盖) 子部分下添加一个新的物理资源。

摄像机 Actor

每个项目都需要一个查看方式,最基础的方式便是通过 摄像机 Actor 进行查看。它们主要结合 Matinee 使用,但也可结合蓝图或 C++ 使用,创建固定相机的游戏、保安摄像机,甚至利用 Camera Anim(摄像机动画)创建短小过场动画。
选择一个摄像机 Actor(或包含摄像机组件的蓝图)后,主 3D 视口将从此摄像机获得一个"画中画"视图(如上图所示)。
放置摄像机 Actor
可在 All Classes(所有类) 类目下的 Modes(模式) 面板中找到摄像机 Actor。从 Modes(模式) 面板中将其拖入游戏世界场景即可完成放置。
使用摄像机 Actor
"摄像机 Actor" 的使用方法极其简单:在 Modes(模式) 面板中选定,然后将其拖入世界场景。将摄像机 Actor 放置进世界场景后,即可结合蓝图或 Matinee 作为关卡的视点使用。
Player Start(玩家出生点)

在世界场景中任意地点生成玩家是游戏中非常重要的一个功能。虚幻引擎 4 利用一个特殊 Actor 来实现此功能,称之为 玩家出生点。所谓"玩家出生点",就是指在游戏世界场景中玩家开始游戏的地点。
放置玩家出生点 Actor
可在 Basic(基础) 类目下的 Modes(模式) 面板中找到玩家出生点 Actor。从 Modes(模式) 面板中将其拖入游戏世界场景即可完成放置。
使用玩家出生点 Actor
玩家出生点的使用方法极其简单:在 Modes(模式) 面板中选定,然后将其拖入世界场景。世界场景中便存在一个玩家出生点,结合蓝图进行使用即可在世界场景中的任意位置生成玩家角色。
使用玩家出生点生成玩家角色时,需要考虑其位置和旋转方向。如要使玩家角色在出生时面对某个特定物体,需将使用的玩家出生点对准该物体所处的方向。
玩家出生点使用提示和技巧
玩家出生点的使用方法非常简单,了解以下使用提示与技巧还可使开发过程更加容易。
No Player Start(无玩家出生点):如开始游戏时世界场景中不存在玩家出生点,玩家角色在世界场景中出现的坐标将为 0,0,0。正因如此,请务必在世界场景中放置玩家出生点。
Play From Here(从此处开始):也许有时需要从非玩家出生点的其他位置开始游戏。在编辑器视口中 单击右键,选择 Play From Here(从此处开始) 选项,即可实现该功能。
Bad Size(尺寸错误):有时玩家出生点的控制器图标可能会变成一个 "BADsize" 字样的图标。出现此情况时,须在世界场景中移动玩家出生点,确保其不与场景中的物体相交。
贴花Actor用户指南
指导如何使用延迟贴花actor。
延迟贴花提供了更好的性能和更方便的维护。写入GBuffer而不是重新计算照明有几个好处:
许多光源的性能变得更加可预测,因为所有光源都使用相同的代码路径,所以对光源计数或类型没有限制。
操作屏幕空间遮罩还可以实现一些在其他情况下很难实现的效果(比如湿层)。
贴花通过在贴花影响区域周围渲染一个方框来渲染。

调整大小、平铺和偏移
创建贴花后,您可以使用平移和旋转控件对其进行定位和定向。

非等分缩放控件控制贴花卷的宽度、高度和远平面距离。
延迟贴花属性
延迟贴花只有几个属性:

设置排序值时,请小心操作。在太多不同的贴花上设置太多的排序值会使这些贴花无法按状态排序,这可能会损害性能。
材质设置
DecalBlendMode 设置定义了如何将材质属性(漫反射、镜面反射、法线、不透明度...)应用到GBuffer。

不透明度用于混合贴花作用。一个高效的贴花只需要处理少量的GBuffer属性。 我们当前优化的案例由以下其他模式表示:DBM_Diffuse、DBM_Specular、DBM_Emissive、DBM_Normal。

DBM_ScreenSpaceMask 比较特殊,因为它可以影响一个特殊的遮罩通道,即SSAO当前使用的通道(环境遮挡)。这使贴花能够覆盖或淡化某些区域的作用。
DBM_DiffuseSpecularEmissive 是影响多个GBuffer通道的模式。
注意,材质混合模式也会影响GBuffer值的混合方式。因此,可以将漫反射的颜色相乘。
您可以使用GBuffer视图模式检查逐像素存储的GBuffer值。
贴花本地位置是0到1范围内的第3个位置。纹理UV给出了x和y分量。如果您需要z分量,您可以连接一个CameraVector节点来获得所有3个矢量分量。
性能
受贴花影响的对象的网格体复杂性不影响性能。贴花的性能取决于着色器的复杂性和屏幕上的着色器边框的大小。
我们可以进一步提高每个贴花的性能。在理想情况下,贴花的边框较小,以获得更好的像素性能。这可以手动实现。虽然自动化的方法是可行的,但是优秀的设计人员也可以通过调整布局来进一步提高性能。
视图模式 ShaderComplexity(编辑器UI或"viewmode ShaderComplexity")可以用来查看对像素着色成本的影响,它使用一个像素着色器成本进行估算,并在多个贴花重叠时累加。 目前,贴花遮罩功能在这方面没有效果(由于使用了模板硬件特性,遮罩部件应该有较低的固定成本)。 以下显示了没有贴花时(左图)、带有贴花时(右图)、在法线渲染模式下时(上图)以及启用ShaderComplexity时(下图)的场景:
颜色越深,表示这些像素的性能成本越高。这些信息可以用来优化正确的着色器,去除几乎不可见的贴花或更有效地放置它们。
当前局限
我们目前只支持延迟贴花,而且它们只对静态对象有效。
法线混合当前不能围绕对象。
流送尚未连接,所以请确保纹理没有流送。
遮罩贴花(不影响其他对象)没有完全实现。
2x2块瑕疵修复
贴花的边缘可能有2x2像素块瑕疵,如下面的屏幕截图所示。

这正是节点"贴花导数(Decal Derivative)"的用武之地。必须小心使用这个节点,因为它对性能有很大的影响。它返回各向异性纹理过滤所必需的贴花的默认纹理坐标在X轴和Y轴上的导数,但计算方法与使用硬件的默认节点和DDX/DDY节点不同,以避开这个2x2像素块瑕疵。


当前局限
DecalMipmapLevel不支持自定义UV,但您可以修补它的输出。
触发器Actor
可以激活且促使关卡中发生事件的Actor。
触发器(Triggers) 属于Actor,当它们与关卡的其他对象交互时,用于促使发生事件。换言之,它们用于触发事件以响应关卡中的其他操作。所有默认触发器通常是相同的,只是在影响区域的形状上有所不同,有盒体、胶囊体和球体,触发器使用该形状来检测是否有其他对象激活了它。

触发事件
触发器用于激活放置在[关卡蓝图]中的事件。触发器可以激活几种不同类型的事件。主要类型的事件用于响应与另一个对象的某种类型的碰撞,例如某物与触发器碰撞或重叠,或响应来自玩家的输入。
当在 视口(Viewport) 中选择了触发器时:
- 在 关卡蓝图事件图表 中 单击右键,并在 为[触发器Actor名称]添加事件(Add Event for [Trigger Actor Name]) 下选择一个事件。
通过这两种方法中的任何一种选择一个事件,都会将一个事件节点 添加到当前关卡的关卡蓝图中:
目标点Actor

为游戏创建世界场景时,有时需要在其中放置和生成各种物体,以便玩家与它们进行互动。目标点 Actor 的作用正在于此,在世界场景中设定一个一般点,作为物体生成的点。如您对其他 3D 软件(如 3Ds Max 或 Maya)有所了解,便会发现目标点 Actor 与这些软件中的虚拟 Actor 十分相似。
使用目标点
目标点 Actor 在虚幻引擎 4 中的用途十分广泛。下列是目标点 Actor 的部分用途。
1.设定动画序列中摄像机对准的目标。
2.设定 AI 路径点。
3.设定 VFX(视觉特效)生成点。
4.设定可拾取道具(如回复品和物品)生成点。
5.设定世界场景中道具所在点/应放置点的视觉提示。
本例中将进行目标点 Actor 在蓝图中是如何使用并起到生成点作用的说明。

网友评论