渲染组件

本页面的内容:

Atmospheric Fog Component (环境雾气组件)

AtmosphericFogComponents 用于创建雾化效果,如场景中的云或环境雾气。该组件拥有几项可调整的设置,可以影响此效果在关卡中的生成方式。

下面通过示例介绍了对 Decay Height 设置(用于控制雾的浓度衰减高度,例如,较低的值可以让雾变浓,较高的值会让雾变稀,产生更少的散布)使用不同值的这类组件。有关详细信息,请参见 大气层雾用户指南 页面。

Atmo0.5_4.png Atmo0.35_4.png
衰减高度为0.5(8 km) 衰减高度为0.35 (2.744 km)
Atmo1.0_4.png Atmo1.0_1.png
衰减高度为1.0 (64 km),最大散射为4 衰减高度为1.0 (64 km),最大散射为1

Exponential Height Fog Component (指数高度雾气组件)

ExponentialHeightFogComponent 用于创建雾化效果,而其浓度与雾的高度相关。

Exponential Height Fog(指数型高度雾)在地图中较低的地方产生密度较大的雾,在较高的地方产生密度较小的雾。随着您增加高度,雾会进行平滑的转变,您不会看到明显的切换效果。指数型高度雾也提供了两种雾颜色,一种颜色用于面向主要定向光源(如果不存在景则径直向上)的半球体,另一种颜色用于相反方向的半球体。

ExponHeightFog.png

请参见 指数型高度雾用户指南 了解详细信息以及可调整的设置。

Billboard Component (看板组件)

BillboardComponent 是一个会被渲染为始终朝向摄像机的 2D 贴图,其功能与 ArrowComponent 类似,可用于某种放置方法且能够轻松选取。例如在下面创建的雾化效果图中,唯一添加的组件就是 BillboardComponent(实际的雾气效果是一个通过脚本动态创建的材质)。

billboard1.png

在场景中,您可以通过选择 BillboardComponent 图标(一个可以指定的贴图)来操控雾化效果图。

billboard2.png

有关如何创建此雾化效果图的示例,请参见 雾薄片和光束 文档。

Material Billboard Component (材质看板组件)

MaterialBillboardComponent 是一个被渲染为始终朝向摄像机的 2D 材质。这类组件可用在 2D 草丛或树叶等情形中。我们并未使用静态网格模型来呈现生长中的草丛甚至单个草叶,而是利用 MaterialBillboardComponent 和一个材质来表现生长中的草,这样就无需使用草的 3D 象征,因为看板(billboard)将自动转动并朝向玩家,从而呈现出草的三维表象。

Cable Component (连线组件)

CableComponent 可以将两个组件附加在一起,同时在它们之间渲染出一条连线。在这条连线上,您可以指定一个材质并定义参数来影响连线的显示方式。

假如您需要让玩家人物在绳索之类的东西上摆动,就可以使用这类组件。只要通过脚本将一个点附加到某个固定位置,并将另一个点附加到玩家人物,该人物便可以在绳索上摆动。下面是一个第一人称人物,他可以用枪(“抓钩枪”一类的东西)发射一条绳索并将其连接到命中位置。

cable.png

当然,您也可以将这个用于简单的视觉元素,如连接多个物体的连线。

Custom Mesh Component (自定义网格组件)

CustomMeshComponent 能让您指定自定义三角形网格几何体。

Poseable Mesh Component (姿态网格组件)

PoseableMeshComponent 允许您通过 Blueprint 来控制骨骼变换。

Decal Component (贴花组件)

DecalComponent 是一个被渲染到网格模型表面上的材质(一种适用于模型的“保险杠标贴”)。贴花组件可用于任何目的,如发射子弹时在墙上撞出的痕迹,车辆在道路上擦出的打滑印记,被击中时在地上溅出的血迹等(下面有一个相关的示例)。

Decal_1.png

您可以参考多个页面了解关于使用贴花组件的详细信息。

Instanced Static Mesh Component (实例化静态网格组件)

InstancedStaticMeshComponent 可以高效渲染同一静态网格模型的多个实例。 这类组件尤其适用于程序化创建的场景或房间,因为它不会在场景中放置成百上千个 Static Mesh Actors,您只需放置一个 Instanced Static Mesh 并添加该静态网格模型(如地板或墙)的多个实例,性能负担也大大降低。

请在我们的 Wiki 页面上参阅 Procedural Room Generation 培训教程,了解关于使用 InstancedStaticMesh 组件以及程序化生成随机房间的示例。

Particle System Component (粒子系统组件)

ParticleSystemComponent 可以让您添加一个粒子发射器作为其他对象的子对象。添加 ParticleSystemComponent 可用于多种目的,例如,为想要摧毁的对象添加爆炸效果,或是为可以点燃的对象增加着火效果。通过添加这类组件到其他对象,您便可以在游戏过程中借助脚本访问和设置任何粒子效果参数(例如打开或关闭效果)。

例如,我们在下面生成了一个安保摄像头并添加了一个 ParticleSystemComponent 用于产生火花效果。

particle1.png

通过脚本,我们可以声明在默认情况下关闭火花效果,并在摄像头被击中时将其激活。

particle2.png

请参见 级联粒子系统 了解详细信息。

Post Process Component (后处理组件)

PostProcessComponets 可以为 Blueprints 开启后处理控制。它将使用一个父级 UShapeComponent 来提供体积数据(如可用)。这类组件可以在某一场景应用了后处理设置时变换场景的色调。例如,假设您定义了一个默认的后处理设置并将其用于游戏,那么在玩家受到伤害(或丧命)时,您可以通过脚本将 Scene Color Tint 的设置改为黑色/白色色调。

有关详细信息,请参见 后期处理内容示例 后处理效果 文档。

Scene Capture 2D Component (场景捕捉 2D 组件)

SceneCapture2DComponent 用于从单一平面捕获场景“快照”并将其馈送给渲染目标。在捕获和指定 Render Target 贴图时,除其他设置外有一些设置可用于控制 Field of View。这样的示例包括在监视器上创建镜子(如下面所示)或安保摄像头视角的情形(参见 监控摄像机切换开关按钮 。)

2dRender.png

在上面的示例中,我们创建了一个带有 SceneCapture2DComponentBlueprint 并指定了一个 Render Target 贴图,它随后被用作 Material 施加给场景中的几何体。有关详细信息,请参见 Scene Capture 2D Content Example

Scene Capture Cube Component (场景捕捉立方组件)

SceneCaptureCubeComponent 用于从 6 个平面捕获场景“快照”并将其馈送给渲染目标。

Reflections_1_6_Header.png

在多数情况下,SceneCapture2DComponent 应当能满足大部分场景捕获需求,但在需要对环境进行 3D 捕获时,您可以使用这个组件。但在使用时应当留意,因为这会产生很大的性能消耗,只应当在绝对必要时使用。请参见 反射示例 了解在场景中创建反射时所用不用方法的详细信息。

Spline Mesh Component (样条网格组件)

SplineMeshComponents 可用于拉伸和弯曲静态网格模型资源。使用 SplineMeshesComponents 时,您必须提供方位对应的向量,并提供样条曲线起点和终点的切线。在下面的示例中,SplineMeshComponent 被添加到 Blueprint,同时有一个管道 Static Mesh 被指定为要影响的资源。

splinemesh.png

在您为方位指定向量并在组件本身上指定切线时,您可以使用脚本将它们设置为变量并改为公用,以便其可以在编辑器视区中编辑(如下面所示)。

splinemesh2.png

在上述示例中,我们可以单独移动 Start TransformEnd Transform 而无需移动整个 Actor,从而随意拉伸或旋转它。该示例及其相关设置可以在 蓝图样条曲线内容示例 内容示例图中找到。

Text Render Component (字体渲染组件)

TextRenderComponent 可以用指定的字体渲染世界中的文本。其中包含与常用字体有关的属性,如 Scale、Alignment、Color 等。您可以使用该组件提示玩家您的场景中有一个复杂对象。

例如,假设您的场景中有一把椅子,玩家只要在靠近时按一个按键就能坐下。您可以添加一个包含必要提示的 TextRenderComponent 来执行就坐命令(关闭可见性),同时将一个 BoxComponent 用作触发器,用于在玩家进入时将文本的可见性设为 true(如下所示)。

text1.png

在玩家进入触发器范围时,游戏将显示 TextRenderComponent 文本以提示玩家如何坐下。

text2.png

Vector Field Component (向量场组建)

VectorFieldComponent 用于引用 Vector Field ,这是一种带有速度向量网格的 3D 容器,可用于确定 GPU 子画面的速度或加速度。 向量场可用于场景中的小规模效果(如强风粒子效果)和大规模效果(如暴雪)。另请参见 Local Vector FieldsGlobal Vector Fields 了解详细信息。

image050.png