UE5 PCG学习笔记

https://www.bilibili.com/video/BV1onUdY2Ei3/?spm_id_from=333.337.search-card.all.click\&vd_source=707ec8983cc32e6e065d5496a7f79ee6

一、安装PCG

  • 插件里选择以下进行安装
  • 移动目录后,可以使用 Update Redirector References,更新下(否则会删除不干净或存在残留文件)
  • 调出Filters刷选器,更方便操作

二、创建PCG图表

  • 将PCG拖入场景中,通过Scale设置PCG的大小

三、地形布置随机点

  • 通过PCG方块接触到地形,使用Get Landscape Data节点来获取地形数据

  • 拉线出来,选择Surface Sampler,表面采样器。并选择此节点,按D(Debug),看到采样情况

  • 按A,查看点位信息

  • 密度为1是白色,密度为0是黑色

  • 修改点数、松散度和随机性;unbounded设置是否为全局,通过Point Extents设置点的大小


四、设置树木

  • 可以通过选择 Show all projects,把不支持5.4的内容添加到5.4中间
  • 选择树木模型,右键,勾选Nanite
  • 在 Surface Sampler拖出 Static Mesh Spawner 静态网格生成器
  • 设置Mesh Selector的模型
  • 生成树木
  • 增加数组,加入3个模型,并可以设置weight,权重
  • 查看效果

五、设置点的旋转与缩放

  • 先把静态网格节点按E (enable) 取消使用
  • 从surface sampler节点,拉出Transform points 进行调试 D
  • 设置transform points的随机属性
  • 树木看起来更加自然
  • 当地形有坡度时,勾选 Absolute Rotation,防止树木长歪

六、岩石

  • 移除重叠节点
  • 从大到小,保留大的节点
  • 边界修改器,改动节点的边界大小;调整边界是为了模型与随机点的方块大小基本匹配

七、岩石与树不要重叠

  • 使用Difference节点,去除树和岩石的重叠,保留树

  • Density Function一定要设置成,Binary

  • 调整下树的点位边界为0.6,在Bounds Modifler中

  • 连接节点,完成去除

  • 先去除与树重的点,再去除岩石重叠的点,效果更好


八、植被

  • 加入Sufrace Sampler,并设置默认大小

  • 加入Static Mesh Spawner,设置植被,并去掉碰撞
  • 改变点的大小 Transform Points
  • 用Difference把岩石重叠部分排除


九、使用参数,设置植被的缩放

  • 点击Surface Sampler节点,并点击Graph Settings
  • 添加变量Parameters
  • 与植被的点做乘法操作

  • scale X 一个数,赋值给scale
  • 打开场景的PCG_Land_Base组件,并选择其中的PCGComponent


  • 来设置缩放的大小

十、使用参数,设置对象的网格模型

  • 通过Graph Settings,设置参数为网格数组



十一、使用参数,更改网格模型的权重

  • 创建一个结构体
  • 在Parameters里,建立一个结构体的数组
  • 建立Match And Set Attributes,来输出模型

    匹配并设置属性是weight

    静态网格生成器里属性名称是Mesh

这样做后,哪怕把模型的碰撞关掉,人物跑动起来,有不自然现象。


十二、表面采样器 Suface Sampler,点的数量用参数代替

  • 设疑个新的参数,FoliagePoints
  • 打开表面采用器,使用参数

其他参数都可以做出参数


十三、保存为实例

  • 保存实例后,程序视图就不见了
  • 并过去切换Graph到实例,来实现这个功能

十四、创建样条线

  • 新建一个actor蓝图,命名为BP_PathSpline
  • Add一个Spline
  • 设置tag名为PathSpline
  • 把蓝图拖入场景,并拉长样条线,经过PCG场景

十五、在PCG中获取样条线

  • Get Spline Data节点
  • 通过Tag确定样条线

十六、建立一条路

  • 蓝图节点

  • 样条线在一个端点上,按住alt键,可以拖动产生一个新的端点;

  • Spline Sampler的Mode使用Distance

  • 通过 边界修改器 bounds modifier,修改样条线的大小

  • 通过 Projection 投影节点,把样条线与地形贴合

  • 此时已经有了贴合地形的一段路,把输出都连接到上面的Difference节点中,把其他模型都排除掉

  • 最终效果


十七、建立一另一条样条线

  • 拷贝出来2条样条线

  • 在 Get Spline Data里,设置

  • 这样2条样条线都正常工作了

  • 样条线与其他点之间的间距

  • 调整Spline Sampler 样条采样器里的steepness值,1间隙最小


十七、制作一个PCG物体

ctrl+e:可以快捷打开图标

  • 新建一个PCG Graph
  • 制作PCG节点如下:
  • Get Actor Data (获取Actor数据)设置为,过滤器为自身、模式为单点
  • Static Mesh Spawner(静态网格生成器),拖入一个模型,比如一颗枯树干
  • Bounds Modifier (边界修改器)设置边界大小;可开启D,调式模式,把白色矩形刚好盖住模型
  • Transform(变换点)设置旋转0-360,缩放1-3

这样,当拖动PCG蓝图的时候,树干就会随机变化(0-360度与1-3倍缩放间)

  • 把绝对缩放勾上,物体缩放大小不会受PCG体积影响

十八、在树干上长蘑菇

  • 网格体采样器

    设置树干为采样网格,此时采样的点会在原点
  • 复制点
    复制之前树干作为目标,把采样的点的位置同步在树干上
  • 排除不朝上的点

    法线转成密度,z轴朝上为1,朝下为0
    用密度过滤器,筛选密度范围

    *选择点,并变化点
    按比率选择点,减少点的密度,并变化点,让点更随机,并按z轴偏移,让蘑菇种在树里


  • 静态网格生成器,让多种蘑菇随机排布,并设置无碰撞

十九、把树干放入地图中

  • 表面采样器,在表面采样,可以设置松动,设置树干多少

  • 之前做的PCG_Obj因为没有设置Input与Out,需要来设置这个参数

    新建一个PCG_Obj_Input蓝图
    输入是为了在大地图里,连接采样器使用
    输出是为了模型一些排斥等使用,所以输出只要树干部分就可以,蘑菇不用理会了

二十、树干模型重叠问题解决

  • 在PCG_Obj_Input蓝图,加入Difference节点,拖入模型,会排除重叠的树干

    排斥的逻辑,路(排斥)所有4种;树(排斥)岩石;树干(排斥)树、岩石

此课程非常不错,需要记录的先到此,有兴趣的朋友可以继续学习,祝福学习愉快

工程地址:https://download.csdn.net/download/qq_17523181/90804477

相关推荐
Zhao-Jichao2 小时前
AI Prompting for Everyone 课程笔记 - P21 总结 Conclusion
人工智能·笔记
欢欢李2 小时前
【LTE L3 笔记 05】LTE同步信号
笔记·无线通信·物理层·lte·空口协议
La Pulga4 小时前
【FreeRTOS源码学习笔记】空闲任务与阻塞延时
笔记·mcu·学习·嵌入式·freertos·实时操作系统
蒸蒸yyyyzwd4 小时前
秋招学习笔记 day106
笔记·学习
小李不想当小白5 小时前
WDG看门狗(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
欢欢李6 小时前
【LTE L3 笔记 04】LTE帧结构
笔记·无线通信·物理层·lte·空口协议
Zhichao_977 小时前
【UE5.8】VS2026安装
ue5
Zhao-Jichao8 小时前
AI Prompting for Everyone 课程笔记 - P20 实验与期末项目 Lab and Final Project
前端·人工智能·笔记
lisw058 小时前
作为人类代理的大语言模型及其角色分类!
人工智能·学习·语言模型
Z21-X9 小时前
云原生运维实战笔记:企业网站综合上云部署与云运维服务全景解析
运维·笔记·学习·云原生