曲线编辑器

总览

Pangu中的道路、水系等子系统均以曲线编辑器为基础,实现对曲线实例的管理和编辑。

本文将以道路子系统为例,介绍曲线编辑器的组成和使用方法。

通过Pangu窗口-工具栏-Road进入道路子系统:

可以看到如下图所示的界面,左侧面板即为曲线编辑器: 曲线编辑器

序号模块
1工具栏
2管理面板
3操作面板

工具栏

工具栏

序号图标名称说明
1Toggle Mesh切换Mesh显示状态
2Toggle Outline切换轮廓点显示状态
3Toggle Falloff切换衰减线显示状态
4Toggle LOD切换LOD开启状态
5Toggle Culling切换线框裁剪开启状态
6Toggle Extend Render切换拓展渲染开启状态
7Add Spline新建曲线
8Export All Splines导出所有曲线
9Import All Splines导入所有曲线
10Show Spline Files查看曲线文件
11Open Resource Manager打开资源管理器
12Fix Invalid Splines修复失效曲线

切换Mesh显示状态

  • 显示Mesh 显示Mesh
  • 不显示Mesh 不显示Mesh

切换轮廓点显示状态

  • 显示轮廓点 显示轮廓点
  • 不显示轮廓点 不显示轮廓点

切换衰减线显示状态

  • 显示衰减线 显示衰减线
  • 不显示衰减线 不显示衰减线

切换LOD开启状态

根据LOD设置和当前的视距,调整曲线渲染精度,提高性能表现。

  • 开启LOD 开启LOD
  • 关闭LOD 关闭LOD

切换线框裁剪开启状态

根据裁剪距离设置和当前的视距,裁剪距离外的曲线线框,提高性能表现。

  • 开启线框裁剪 开启线框裁剪
  • 关闭线框裁剪 关闭线框裁剪

切换拓展渲染开启状态

使曲线线框以最高层级在场景中渲染,可以穿透地形观察和选中曲线点或段。

  • 开启拓展渲染 开启拓展渲染
  • 关闭拓展渲染 关闭拓展渲染

新建曲线

新建一个当前选中曲线类的曲线实例,新建曲线后,可以在场景内新增曲线点

导出所有曲线

导出所有曲线数据至json文件中。

关于曲线文件的细节可以参考曲线文件管理

导入所有曲线

从json文件中导入所有曲线数据。

关于曲线文件的细节可以参考曲线文件管理

查看曲线文件

在系统文件浏览器中查看曲线json文件。

关于曲线文件的细节可以参考曲线文件管理

打开资源管理器

打开多人协作提交面板

修复失效曲线

如果一条曲线实例所属曲线类的配置参数与曲线配置编辑器中对应配置的参数不同,这条曲线会被视作失效曲线。在管理面板中可以看到失效曲线的提示: 左侧FixInvalid按钮上有小红点,说明存在失效曲线。曲线实例的Label显示为红色,鼠标悬浮时将提示此曲线实例已失效。

此时,可以通过此按钮对所有失效曲线应用新版配置。

管理面板

曲线管理面板主要用于对曲线实例的整体管理,同时提供了一些简单的曲线操作。 管理面板

序号模块
1曲线类栏
2筛选菜单
3曲线结构
4管理操作
5快捷选择

曲线类栏

曲线配置编辑器中,可以为每个子系统添加曲线类。

曲线类栏列出了当前子系统的所有可用曲线类,切换曲线类可以筛选出各曲线类的所有曲线实例,属于其他曲线类的曲线将自动隐藏。

筛选菜单

筛选功能可以按曲线点或段的特定属性对当前编辑曲线的点或段进行筛选,从而便捷地选中符合同一条件的点或段。

点或段的默认显示依赖“Pangu Project Settings”的“Spline Show All Points and Segments”选项,如果勾选了会默认显示曲线的点和段,否则隐藏曲线的点和段。

筛选功能支持任意的Meta枚举类型(EnumInt,EnumFloat,EnumStr等)属性,自动生成筛选菜单。

首先要在曲线点或段的Meta属性中添加枚举类型属性。Meta属性的配置可以参考Meta编辑器

例如,为Spline_Road曲线类的点的Meta属性添加EnumInt类型属性,并添加两个枚举值(CityWild)用于区分城市和野外道路(仅做示例,与道路系统实际的逻辑无关):

序号释义
添加EnumInt类型的属性Type
Type属性添加两个枚举值:CityWild

Meta属性配置完成后,可以选中曲线中心点,并在细节面板上修改其Tag值:

在筛选菜单中勾选目标枚举项: 筛选菜单

筛选结果如下:

筛选结果

曲线结构

曲线由点和段构成,按树状结构展示。曲线点或段的选中状态与其在场景中的选中状态同步,双击任意实例或点或段可以对其聚焦。

右键点击曲线实例,可以唤起右键菜单:

右键菜单

右键菜单各选项的作用如下:

  • 重命名(Rename):重命名曲线实例,同时会修改对应的json文件名
  • 复制(Duplicate):复制一个曲线实例
  • 删除(Remove):删除曲线实例及其对应的json文件
  • 拆分曲线(Break Spline):如果曲线实例包含多个不连续的曲线分段,将其拆分为多个独立的曲线实例
  • 合并曲线(Merge Splines):与拆分曲线操作对应,将选中的多个曲线实例合并为一个曲线实例
  • 拆分交叉点(Break Cross Point):如果曲线实例内含有交叉点,将交叉点连接的多个分段拆分为独立分段
  • 导出(Export):导出曲线实例
  • 导入(Import):导入曲线实例
  • 转换(Convert):将曲线实例转换为其他类型的曲线,支持转换为UE地形曲线或者其他Pangu类型的曲线
    1 选中曲线实例,在右键菜单中将其转换为UE地形曲线 2 切换至UE地形模式 3 切换Manage-Spline选项,即可在场景中继续编辑转换完成的UE地形曲线 4 转换为其他类型曲线,通过二级菜单选中相应的曲线类型即可
  • 选中覆盖地块(Select Covered Tiles):选中曲线经过的所有地块

管理操作

管理操作

1 聚焦:自动调整视角,聚焦曲线实例

2 锁定:切换曲线实例的锁定状态,锁定后可以编辑,但是无法通过资源提交面板提交曲线文件

3 删除:删除曲线实例,同时会删除对应的json文件

4 冻结:切换曲线实例的冻结状态,被冻结的曲线实例无法编辑

5 开启:切换曲线实例的开启状态,新建的曲线实例默认处于开启状态,未开启的曲线实例在Cook时会被忽略,并且在场景中不会显示出来。

快捷选择

快捷选择

快捷选择面板提供了多种针对曲线点或段的选择方式,当选中场景中任意一个曲线点或段时,按曲线的方向,支持如下几种选择方式:

1 选中最前的点或段

2 选中前一个点或段

3 选中后一个点或段

4 选中最后的点或段

操作面板

曲线操作面板包含了曲线编辑设置和更复杂的曲线操作。 操作面板

序号参数分组
1设置(Settings)
2属性(Attribute)
3软选择(Soft Selection)
4编辑(Edit)
5导入(Import)

设置(Settings)

设置

  • 自动拆分曲线(Auto Break Spline):勾选后,当导出一条包含多个不连续的曲线分段的曲线实例时,将会自动执行拆分,得到多个独立的曲线实例和对应的json文件
  • 编辑器Mesh的Z轴偏移(Editor Mesh ZOffset):自定义曲线默认Mesh的Z轴偏移值,默认值为5,可选值范围为-10000~10000
    • 使用默认偏移值:
    • 调整偏移值为1500:
  • 曲线LOD距离(Spline LODs):开启曲线LOD时,可以通过设置距离区间来调整LOD的生效范围,默认值为500,5000,50000,100000四个等级
  • 曲线裁剪距离(Culling Distance):开启曲线裁剪时,可以通过设置距离来调整裁剪的生效范围,默认值为50000,可选值范围为100~100000

属性(Attribute)

属性

  • 预设(Preset):曲线的实例、点和段的属性均可通过预设来设置,选择需要应用属性预设的实例、点或段后,在下拉菜单中选择目标预设,点击Apply即可将预设应用至所选对象

注意:需要在曲线管理面板中选中曲线类才能显示属性相关菜单,选中All时将隐藏。 如何创建预设请参考Meta编辑器预设编辑界面部分的视频展示

软选择(Soft Selection)

软选择

  • 启用软选择(Enable Soft Selection):勾选已开启软选择功能
  • 衰减值(Falloff):设置衰减数值,数值越大,软选择影响的曲线点的数量越多
  • Bubble值(Bubble):设置曲线Bubble值,并自动计算新的衰减曲线
  • 衰减曲线(Falloff Curve):自动生成,决定软选择的表现

例如,启用软选择,设置衰减值为3,在场景中调整曲线点的表现如下:

移动或旋转单个曲线点时,将影响前后方向上包含自身在内的各3个曲线点。

创建闭合曲线的LoopMesh(Loop Mesh)

当某种类型的曲线开启LoopMesh选项时,用户创建一系列控制点,当首尾连接时自动创建以曲线中心线为边界的LoopMesh(LoopMesh使用ProjectSetting中配置的材质)。当断开连接时LoopMesh自动清除。

编辑(Edit)

编辑

  • 平滑(Smooth)
    • 开启曲线平滑(Enable Curve Smooth):勾选以开启曲线平滑(逐步拟合曲线渐进平滑,效果较弱),否则将使用线性平滑(线性插值平滑,效果较强)
    • 限制内翻(Restrict Turn Inside):限制平滑时可能引起的曲线内翻
    • 平滑Grade(Smooth Grade):平滑选中的控制点(至少三个)的高度和Pitch值
    • 平滑Roll(Smooth Roll):平滑选中的控制点(至少三个)的Roll值
    • 一键平滑(One Key Smooth):对选中的控制点(至少三个)连续执行十次平滑Grade,再连续执行十次平滑Roll
  • 方向(Direction)
    • 修复方向(Fix Direction):如果曲线分段中存在方向错误的曲线段,可以其中任意的曲线点或段,点击此按钮以反转所有方向错误的曲线段
    • 反转反向(Flip Direction):反转选中的曲线点或段所在曲线分段的方向

导入(Import)

导入

  • Houdini曲线(Houdini Spline):支持导入由Houdini输出的曲线文件
    • 目标曲线类(Target Category):选择导入的目标曲线类,可选值为属于当前子系统的所有曲线类
    • 导入(Import):导入目标文件夹下的所有Houdini曲线文件

      目标文件夹路径为 [Kaitian文件夹] / PcgMaps / [项目名] / [地图名] / [地图版本号] / LevelConfig / [子系统名]sys / PanguCurves / k2p

    • 查看文件(Show Files):在系统文件浏览器中查看Houdini曲线文件