你从未见过PCG这样做!官方超好用图表 | 基础案例总结运用演示...
40322 2
实名

通过了实名认证的内容创造者

发布于 2023-9-12 18:11:28

您需要 登录 才可以下载或查看,没有账号?注册

x

09fa94f36eeab09d663422efdca54b1a.png

名称:Flat Area Detector
功能Flat Area Detector 子图表用于确定表面是否足够平坦,以放置给定大小的点,并避免资产错位的情况(如资产部分悬浮在地面上)。Flat Area Detector 通过在每个源点周围的4个不同位置对表面进行取样,从而实现对水平表面或倾斜表面的处理。在4个采样位置中,如有任何一个不与由输入点位置和方向定义的平面相交,输入点将被丢弃。在上面的图片中,这些平面显示为蓝色矩形。此外,在4个采样位置中,如有任何一个的表面方向偏离输入点的方向,输入点也将被丢弃。
路径:/Game/PCG/Graphs/Forest/DiscardPointsInBumpyAreas
使用:要将Flat Area Detector 作为PCG图表中的节点使用,在 内容浏览器 中将此图表拖放至 PCG图表 编辑器

360081717542e52b13230628cde1f04f.png


引脚
类型
说明
In
针对ProjectionTarget表面测试的输入点
InNoProjection
(可选项) 此引脚是一种优化措施,如果输入点已经在表面上,可以用它代替In引脚来输入
ProjectionTarget
表面
把这个引脚连接到你需要评估平整度的表面上,它可以是一个Get Landscape Data或World Ray Hit节点生产的表面。
SampleDistance
特性集 - Double
▪这个引脚需要一个浮点或双精度浮点的属性输入,比如由创建属性节点提供的属性
•这个引脚控制每个用于探测表面的源点和采样点之间的距离
•从视觉上来讲,这些点由上图中蓝色线框的X-Y延伸部分表示
HeightThreshold
特性集 - Double
•这个引脚需要一个浮点或双精度浮点的属性输入,比如由创建属性节点提供的属性
•与蓝色线框表面的距离大于这个值的采样点会被认定为偏离平面,随后被用来弃用输入点
•平面外的点显示为上图中的红色方框
NormalThreshold
特性集 - Double
•这个引脚需要一个浮点或双精度浮点的属性输入,比如由创建属性节点提供的属性
•这个引脚控制在放弃输入点之前,采样点的上行矢量能与输入点的上行向量相差多少
•这个值必须是负数。它越接近于零,被弃用的点数就越多
Out
通过HeightThreshold和NormalThreshold测试后剩余点的集合。




名称:LookAt
功能:LookAt 节点可根据作为vector3特性提供的目标,重新指定点的方向。该特性可通过特性的数学运算和距离节点创建。
在Electric Dreams场景中,该节点用于:
  • 在地面规则中,对照大型Assembly样条线重新调整点的方向,以实现理想的河床视觉效果。
  • 在雾卡和森林图表中,朝区域中心旋转雾卡的点
路径:/Game/PCG/Assets/PCGCustomNodes/LookAt
使用:LookAt节点会遍历单个点的数据输入,并期望接收一个vector3特性,作为每个点要看向的目标坐标
要使用LookAt节点,请执行以下步骤
  • 创建点数据。
  • 使用设置为 From Source Param 的 AddAttribute ,向点数据添加新的 LookAt 特性。
  • 使用以下任意选项覆盖 特性 :
    • 向量类型的 Create Attribute 节点以及你看向的坐标。
    • 由一个可被公开以进行自定义的蓝图vector3变量提供的 Get Actor Property 。
    • 在 Graph Settings 中创建一个PCG vector3图表参数,并在图表中获取参数名称,该参数名称将在每个图表实例中公开,供每个PCG组件编辑。
  • 设置 LookAt 节点的设置:
    • 将 LookAt Target 设置为要使用的特性名称。
    • 2D LookAt 设置将忽略Z分量。
    • Forward X 会在 LookAt 中使用X轴而非Y轴。


#标签工具Actor Tagger
名称:Actor Tagger编辑器工具控件
功能:Actor Tagger Editor Utility Widget 将帮助你在关卡中的资产上编写Actor标签。该工具控件可以为要导出到PCG设置资产的关卡加快标记工作流程。虽然虚幻引擎拥有一个合格的工作流程可用于添加、编辑、删除资产上的Actor标签,但是它目前并不适合大规模编辑。这方面的一个例子是,当你要为几个选中的Actor应用不同的Actor标签时,这会导致Actor标签在 细节(Details) 面板中出现混淆。创建Actor Tagger编辑器工具控件的目的之一,就是缓解当前编辑器Actor标签表现出来的这种问题,同时它还提供了一个本地化的操作控制板,使用户能够在3D视口中专注于标签的编写
路径
Actor Tagger编辑器工具控件的内容文件路径为:
/Game/PCG/Utilities/ActorTagger/EUW_ActorTagger
使用
使用方法 要运行Actor Tagger,请执行以下步骤:
  • 在内容浏览器 中选择一个 Actor Tagger
  • 右键点击该 Actor Tagger 并选择 Run Editor Utility Widget


功能

Select Tag
选择已加载关卡内所有在Select Tag字段中输入了标签的 Actor。其结果将替换当前在大纲视图中选择的项目。
Remove Tag
搜索当前选中的所有Actor,寻找在 Remove Tag 字段中输入的标签。如果某个Actor上存在该标签,该标签将被移除
Add Tag
将在 Add Tag 字段中输入的标签添加到所有当前选中的Actor上。如果选中的Actor已具有该标签,则不会二次添加
Hide
隐藏当前选中的所有Actor。如果当前没有选择Actor,之前隐藏的所有Actor都将变得可见
Unlit / Lit
切换视口光照模式的状态(光照和无光照)

Tools:工具部分
Output Level Tags
将存在于已加载关卡中的所有唯一标签打印到输出日志中。这样可以快速全面地了解已加载关卡中的所有Actor标签

Make Tags Unique
该函数会在当前加载的关卡中遍历所有Actor,将各Actor的所有重复标签减少至单个标签条目
插件默认关卡:Reference Level
双击打开可以更改默认加载关卡



名称:Level to PCG Asset Utility
功能:Level to PCG Asset Utility 可将选定关卡内的所有静态网格体、层级实例化静态网格体(HISM)和实例化静态网格(ISM)导出到PCG设置资产。其数据将存储为PCG点数据。特别强调,这些数据是所有已导出视觉效果的点云,并以特性的形式存储了它们的变换、网格体和材质软对象路径、Actor标签和Actor场景层级信息。得到的PCG设置资产可以作为实例化节点添加到PCG图表中。然后,所有程序化规则(PCG图表)都可以处理该PCG点数据,以对其执行增强和/或生成操作。
路径:蓝图资产工具随PCG插件一同发布,可在启用 显示插件内容(Show Plugin Content) 后使用。
Level to PCG资产工具的路径为:/PCG/Utilities/PCGUtility_LevelToPCG
Electric Dreams中所有PCG设置及其源关卡的路径为:
/PCG/Assets/PCGAssemblies
使用:使用Level to PCG资产工具,以下步骤:
[size=1em]1.内容浏览器(Content Browser) 中选择一个关卡。
[size=1em]2. 点击右键,选择 Scripted Asset Action > Level To PCG Settings
注意:如果选择的关卡属于已分区的世界或OFPA,你首先需要在编辑器中打开它并加载其内容。对于非OFPA关卡,你无需在编辑器中打开它,可以直接通过内容浏览器完成操作。
[size=1em]3. 上述步骤会在选中的关卡文件旁边创建一个 PCG设置 资产,并以关卡名称加"_PCG"后缀的形式命名。如果已经存在具有此名称的PCG设置资产,将更新现有资产,而不是新建资产。
[size=1em]4.内容浏览器 中,直接将 PCG设置 文件拖放入 PCG图表 ,作为 Instanced 节点。
[size=1em]5.PCG 图表 中,将资产节点的 点(Points) 输出连接到 Copy Points 节点的源输入,并将点集指定为要向其复制源点的目标点集
在Copy Points节点中,将"Attribute Inheritance"设置为"仅来源(Source Only)",以尽可能地加快处理速度。
6. 将 Copy Points 的输出连接到一个 Static Mesh Spawner 节点,将其 网格体选择器类型(Mesh Selector Type) 设置为"PCGMeshSelectorByAttribute", 特性名称(Attribute Name) 设置为"网格体(Mesh)"
如果在导出的视觉效果上使用了材质覆盖,可以将"材质(Material)"作为Index0的值,以激活By Attribute Material Overrides。

你还可以使用导出的 Actor Tag 特性,通过 PCG图表 中的 Point Filter 节点过滤点。标签过滤 的用例包括:
  • NoCol :根据它们的碰撞需求过滤点,并相应地生成它们
  • Clutter :添加随机噪点和参数化密度,以增强Assembly
  • Helper :过滤在规则中具有特定用途但不应该生成的点

#PCG撒点案例整合




#PCG+Sequencer

官方文档:
https://docs.unrealengine.com/5.2/zh-CN/procedural-content-generation-in-electric-dreams/
本期笔记分享就到这里,我们下期见!
哔哩哔哩

评分

参与人数 4元素币 +20 活跃度 +11 展开 理由
liudongdon... + 2 + 3 楼主是好人
fanlai + 5 + 1 收藏就对了
phoneix + 3 + 2 我和我的小伙伴们都惊呆了
XXJH + 10 + 5 大佬NB

查看全部评分

本帖被以下画板推荐:

微信公众号:Game艺视界
使用道具 <
qq_逍遥_Hr0  发表于 2023-10-13 15:10:11  
2#
回复 收起回复
使用道具
会心一笑  发表于 2023-11-2 13:43:32  
3#
回复 收起回复
使用道具
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表