PCG —— 介绍

1 篇文章 0 订阅

目录

The Procedural Node Graph

PCG Nodes

Attributes and Metadata

Attribute Selector

C++ Settings Overrides

Graph Parameters

Graph Instances

PCG Component

Debugging in PCG

Create a Simple Forest Volume


        PCG(Procedural Content Generation Framework)程序化内容生成框架是一个工具集,用于在UE内创建自己的程序化内容;可构建快速可迭代工具,和任何复杂内容,如建筑或生物群落(biome),甚至整个世界;

        PCG为扩展性和交互性而构建,可轻松集成到现有的世界构建管道中,有效地模糊了程序性和传统工作流间的界限;

注,要求开启Procedural Content Generation Framework插件;

重要概念和术语

  • Points:由PCG graph生成的3D空间的位置(通常用于生成mesh),其包含相关的transforms、bounds、color、density、steepness、seed;可赋予自定义属性;
  • Point Density:被各种graph node使用的值;在debug视图中表示为每点上的gradient,并表示该点存在于该位置的概率;0为黑色,1为白色;

The Procedural Node Graph

        程序化节点图表是PCG的核心部分,类似材质编辑器的格式;空间数据从关卡中的PCG组件流入图表,并用于生成点;这些点通过一系列的节点被过滤和修改,输出会实时更新;最后的点可用于生成各种资产;

        使用PCG Graph Editor,可配置和编辑PCG图表资源;导航编辑器类似于蓝图或材质编辑器,还包含一些特有的工具和面板;类似蓝图,可通过从Node Palette拖拽,或使用context menu添加节点;

PCG Nodes

        PCG Graph由一系列节点组成,每个节点执行一个对最终结果有贡献的操作;

节点分类
分类描述
Blueprint包含蓝图相关节点;
Control Flow用于控制逻辑流的节点;
Debug帮助调试节点;
Density影响点密度节点;
Filter基于条件或每点过滤数据的节点;
Generic影响数据但不影响空间数据的节点;
Hierarchical Generation用于控制Hierarchical Generation模式的节点;
Input Output用于加载Alembic和其他外部数据的节点;
IO控制与外部数据交互的节点;
Metadata与属性交互的节点(无论是点上还是属性集上);
Param控制从Actor或Blueprint变量检索参数的节点;
Point Ops影响点及其特性(properties)的节点
Sampler从空间数据源(如volumes、surfaces、meshes)生成点的节点;
Spatial在数据间创建空间关系,更改其内部空间数据或检索数据的节点;
Spawner创建数据或在给定位置放置Actor的节点;
Subgraph处理子图表的节点;

Attributes and Metadata

Attributes属性,类似变量,并存储数据(通过名字和类型定义),有两种类型:

  • Static Attributes,属性是固定且始终存在,以$开始,如$Position;
  • Dynamic Attributes,在运行时创建并作为图表数据的Metadata存储;
Attribute Selector

        通过Attribute Selector,一些PCG图表节点可提供static attributes和dynamic attributes间的交互性;提供了可用于选定节点的属性列表;

使用以下命名规则:

  • $开头的名字是静态属性,无$开头的则为动态属性;
  • @Last表示由前一个节点操纵的最后一个动态属性;
ComponentType
Vectors
X, Y, Z, W, x, y, z, wDouble,不可于RCBA混用;
R, G, B, A, r, g, b, aDouble,不可于XYZW混用;
Length, SizeDouble,返回vector长度;
Transforms
Location, PositionVector3
Scale, Scale3DVector3
RotationQuaternion
Rotators
Pitch, Yaw, RollDouble
Forward, Right, UpVector3
Quaternions
Support Vector extractorVector
Support Rotator extractorRotator
C++ Settings Overrides

        在C++属性元数据中,某些设置被标记为PCG_Overridable;对于蓝图节点,可见且实例可编辑的变量是可重写的;

一旦被覆盖,引脚将作为高级引脚自动添加到节点中;有两种类型的引脚:

  • Global override,接受任意数量的属性,并覆盖与名称完全匹配的每个属性的所有设置;
  • Single override,接受任意数量的属性,如名称完全匹配则覆盖指定设置,或如仅有一个属性则任何名字;

属性类型需要匹配,但某些类型可转换;

Graph Parameters

        与材质编辑器中的参数类似,PCG图形参数是用户创建的可重写值,可帮助为各种情况创建自定义的图形;要创建新参数,请执行以下操作:

  • 打开Graph Settings;
  • 点击Parameters旁的 + 按钮;
  • 点击新参数旁的向下箭头,重命名和选择类型;

  

Graph Instances

        PCG Graph Instances类似于Material Instances,并使用Graph Parameters来帮助现有图形作为实例或子图表的重新使用;创建PCG Graph Instances操作:

  • 在关卡内选择PCG资产;
  • 在detail 面板内选择PCG组件;
  • 点击Save Instance按钮以创建新实例;

PCG Component

        Procedural Node Graph可通过PCG Component对关卡进行采样;此组件包含Procedural Node Graph的实例,并在编辑器内和在运行时管理程序内容的生成;PCG Component作为组件添加到Actor或作为PCG Volume的一部分,一个基本的volume对快速设置程序化内容有用;

将PCG Graph链接到PCG Component:

  

Debugging in PCG

        调试是PCG工作流程的重要组成部分;每个节点都有各种调试选项,可用于在米格步骤中可视化数据:

  • Debug Rendering
  • Enable / Disable node
  • Inspect

激活或禁用节点:勾选Enable、或按E键;

开启/关闭调试:勾选Debug、或按D键;

查看节点属性列表,按A键;;

Create a Simple Forest Volume

        程序生成工具的一个常见用例是在开放世界环境中生成biome;

  • Create the Level

  • Create the PCG Volume

  • Create the PCG Graph Asset

  • Connect the PCG Component

  • Create the Points

  • Add Variation

  • Spawn the Static Meshes

  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值