UE5程序化内容生成PCG笔记

2024-03-18 12:10

本文主要是介绍UE5程序化内容生成PCG笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

参考资料

官方

知乎

 启用插件

目前遇到的问题

节点个人理解/注解

Input

Surface Sampler(表面采样器)

Density Filter(密度过滤器)

Projection(投影)

WorldRayHit(世界射线命中查询)

Transform Points(变换点)

StaticMeshSpawner(静态网格体生成器)

Difference(差异)

Spline Sampler(样条线采样器)

Bounds Modifier(边界修改器)

Create Points Grid(创造点网格)

Distance To Density(距离到密度)

CopyPoints(复制点)

Attribute噪声(5.3.0) = Density Noise(5.2.x )

Subgraph(子图表)

Point Filter(点过滤)

Merge(合并)

Assembly(ASM)的使用方式

优点

静态网格体生成器选项​编辑


参考资料

官方

程序化内容生成概述

[GDC2023]UE5中的程序化内容生成 (官方字幕)

[GDC2023]虚幻引擎5.2功能演示(官方字幕)

[UnrealCircle苏州]《Electric Dreams》项目PCG技术解析 | 王潇

知乎

UE5《Electric Dreams》项目PCG技术解析 之 基于关卡PCGSettings的工作流

【UE5PCG-学习笔记1】基础上手UE PCG

UE5程序化内容生成框架(PCG)

UE5中的PCG —— PCG in UE5 - 知乎


 


 启用插件

Procedural Content Generation Framework

选中节点按D键可以看到目前预览效果

选中节点按E键可以启用/禁止当前节点

选中节点按A键可以检查当前节点的资源关联和属性


目前遇到的问题

  • 使用PCG生成的模型中心点只能在最底部。不然会出现模型贴地后。有一半是在地图下面这种情况(临时解决方法 - 使用 变换点节点 设置绝对偏移 往上偏移一段距离)

节点个人理解/注解

Input

与大纲里面PCG实例的这个选项挂钩。可以向蓝图的函数一样自定义输入结构


Surface Sampler(表面采样器)

  • 每平方米的点:密度
  • 点范围:点的盒体大小
  • 松动:增加随机性
Density Filter(密度过滤器)

密度值删除不在这个范围里面的值

Projection(投影)

向下投影。 可以把使物体贴进地面

WorldRayHit(世界射线命中查询)

向下投影使用。

Transform Points(变换点)

提供位置/旋转/缩放的最大最小值范围。加大视觉随机性。

StaticMeshSpawner(静态网格体生成器)

权重越大生成的物体相对其他的数量更多


UE PCG程序化生成初试

Difference(差异)

剔除下面这个的point。解决一个点生成多个物体导致重叠问题

Spline Sampler(样条线采样器)

对样条线进行采样

细分 - 每段细分数:在样条线上分段设置。而不是均匀分布

距离 - 距离增量:每隔100个单位增加一个点

Bounds Modifier(边界修改器)

更改点的Bounds包围盒的相关属性


Create Points Grid(创造点网格)

在想要的空间创造任意点

Grid Extents:网格的范围

Cell Size:点间隔距离(控制密度,值越小密度越大)

Grid Center Pisition:网格中心的位置偏移

Local:基于本地空间还是世界空间

Distance To Density(距离到密度)

创造一个合理的梯度。

CopyPoints(复制点)

Source:获取源输入.要复制的目标

Target:选择一个 位置来放置这些点

Attribute噪声(5.3.0) = Density Noise(5.2.x )

控制Noise影响Density的方式

设置:直接设置密度的数值

最小:对每个点得到一个Noise数值之后,与点原本的Density数值进行比较,取其中的最小者

最大:对每个点得到一个Noise数值之后,与点原本的Density数值进行比较,取其中的最大者

加:将获得的Noise数值直接与原本的Density相加

乘:将获得的Noise数值直接与原本的Density相乘

反转源:是否反转输入点的Density,即是否在运用这个节点前做一个Density = 1-Density的计算


Subgraph(子图表)

图:选其他的PCG图标。此节点就会自动转换为选中图表的Input


Point Filter(点过滤)

感觉有点像是蓝图的判定。只保留符合条件的数据

Insider Filter:?符合条件

Outsider Filter:?不符合条件

Merge(合并)

将多个数据源合并成一个单一数据输出


样条线内部填充示例

Interior Density Falloff Curve(内部密度衰减曲线):

  •  在Interior的采样维度下控制Spline内部采样点的Density衰减
  • 使用衰减曲线的时候注意,Spline的采样点必须要大于等于四个

Assembly(ASM)的使用方式

Assembly: 把一个关卡封装成一个物体。PCG图表里面以这个关卡为一个元素直接生成。

优点
  • 降低数据和逻辑的耦合度
  • 产生更多维度的变体(更多的随机性。不单是位置旋转还有物体间的层级关系)
  • 定义结构体

直接把ASM拖进PCG图标里面就可以直接使用。

静态网格体生成器选项

网格体选择器类型(必选*):PCGMeshSelectorByAttribute

属性名称(必填*):填写Mesh.读取模型

按属性材质重载勾上(必填*/非必填):填写Material。这样才有材质效果。不然是白模。官方案例没加我也不知道怎么实现材质赋予的

这篇关于UE5程序化内容生成PCG笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/822292

相关文章

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

Python使用python-pptx自动化操作和生成PPT

《Python使用python-pptx自动化操作和生成PPT》这篇文章主要为大家详细介绍了如何使用python-pptx库实现PPT自动化,并提供实用的代码示例和应用场景,感兴趣的小伙伴可以跟随小编... 目录使用python-pptx操作PPT文档安装python-pptx基础概念创建新的PPT文档查看

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

Python实现数据可视化图表生成(适合新手入门)

《Python实现数据可视化图表生成(适合新手入门)》在数据科学和数据分析的新时代,高效、直观的数据可视化工具显得尤为重要,下面:本文主要介绍Python实现数据可视化图表生成的相关资料,文中通过... 目录前言为什么需要数据可视化准备工作基本图表绘制折线图柱状图散点图使用Seaborn创建高级图表箱线图热

SQLServer中生成雪花ID(Snowflake ID)的实现方法

《SQLServer中生成雪花ID(SnowflakeID)的实现方法》:本文主要介绍在SQLServer中生成雪花ID(SnowflakeID)的实现方法,文中通过示例代码介绍的非常详细,... 目录前言认识雪花ID雪花ID的核心特点雪花ID的结构(64位)雪花ID的优势雪花ID的局限性雪花ID的应用场景