This repository has been archived on 2026-08-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
zq/10.项目/11-墨犬/PCG/UEPCG道路生成经验总结.md
T

1.8 KiB
Raw Blame History

UEPCG道路生成经验总结

道路模型生成与地形修改

UE5.6生成道路的几种方式

  • LandscapeSplineActor沿曲线生成道路+MeshALandscape->UpdateLandscapeSplines 修改地形
    • 关键点1:为整个曲线生成一个LandscapeSplineActor。为曲线上每一个采样点创建一个LandscapeSplineControlPoint,为每两个ControlPoint创建一个Segment。
    • 关键点2:ControlPoint+Segement的bRaiseTerrain和bLowerTerrain设置为true
    • 坑点:ControlPoint EndFallOff需要为0,否则每一段Segment会起波浪
  • 不需要道路模型的,可以用 ALandscapeProxy->EditorApplySpline 在曲线层调整地形和调整地形材质。
    • 坑点:用LandscapeSplineActor来生成Mesh时不能用,地形调整会被覆盖。
  • LandscapeSplineActor + ULandscapeInfo->ApplySplines 来调整地形,理论上可行,因为关卡编辑器的地形编辑自己就是用这个方法去修正地形的,但是还没有跑通,我在关卡编辑器外部去调用时会崩溃。·

道边护栏

道边护栏是一种要求连续衔接的模型,在不同曲率的地方要对模型做弯折,USplineMeshComponent就是做这个用的,具体用法:

  • 找一个轴向细分段数较多的模型作为基础模型。
  • 将一整段曲线按一定长度分成多段(最好是按模型长度来,否则容易看出纹理拉伸,如果是重复纹理的模型,可以随意)
  • 每一段生成一个SplineMeshComponent,设置Start,End和Tangent。
  • 如何在中间随机一段不生成,或者生成坏的,待进一步研究。
  • 电线杆+电线理论上也可以这么干
  • 人行道也可以用这个方式,或者直接做在道路模型中。

路灯

路灯是一种按一定规律间隔出现的路边物体,不要求两两之间连续。可以用纯PCG逻辑生成。