虚幻引擎程序化道路生成工具

Unreal实时预览, Houdini离线生成

Posted by 徐門子美(Kevin) on 2020-09-10

在引擎中使用道路工具,构建路网。路网由道路和路口组成。道路可以实时的影响地形,所有道路工具对地形的修改均为非破坏性修改(Non-Destructive)。路网创建完成后,调节工具参数,点击Generate Road,Houdini后台接收路网信息和工具参数,生成道路和路口的模型,生成地形最终的高度和材质遮罩,传回引擎中。

方案实现

引擎中使用USplineComponent和USplineMeshComponent创建工具Actor构建道路的控制器,使用USplineMeshComponent生成的模型,和Landscape地形采样,生成高度信息传回地形。在Houdini中根据路网曲线,用简单的Sweep节点生成路面模型,根据路口Tangent角度,计算相邻道路相会点,求出路口曲线生成路口模型。为路面和路口模型生成点颜色噪声图去混合材质贴图。

技术特性

  • 引擎中实时影响地形高度,实时预览; 
  • Houdini后台生成程序化资产; 
  • 引擎中自动摆放围栏和路灯,实时预览; 

参数设置

道路工具通用参数配置文件,使用自定义的UObject作为参数输入,一般配置统一的参数(文件保存路径,材质,围栏和路灯的模组等),可以被重复使用。

工具配置文件参数

道路工具的Details参数面板上的参数配置,控制每个工具独特的参数。

道路工具参数

Houdini算法

Houdini拿到Unreal传过来的曲线和参数后,在一个CompileBlock中完成路面、路口和地形高度的生成,极大提高节点执行效率。

Houdini中节点算法

Developed by 徐門子美(Kevin).