This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
专业(SIM)
UnigineEditor
界面概述
资源工作流程
设置和首选项
项目开发
调整节点参数
Setting Up Materials
设置属性
照明
Sandworm
使用编辑器工具执行特定任务
如何擴展編輯器功能
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
使用范例
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
Materials and Shaders
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
创建内容
内容优化
Materials
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
注意! 这个版本的文档是过时的,因为它描述了一个较老的SDK版本!请切换到最新SDK版本的文档。
注意! 这个版本的文档描述了一个不再受支持的旧SDK版本!请升级到最新的SDK版本。

世界样条图

警告
此功能是实验性功能,不建议用于生产环境。

世界样条图是一种方便且性能友好的方法,用于沿样条图(其顶点和边)放置指定的节点(称为源节点)。 这不是旨在创建道路的单一目的对象。它也可以用于绳索,链条,管道和任何物体,它们的形状遵循弯曲的路径。它旨在帮助艺术家根据沿空间曲线放置的典型基本元素(例如炼油厂的管道)快速构建各种复杂的结构。

世界样条图应用
注意
World Spline Graph 的使用意味着对象放置和变形以及随后导出到 .mesh.fbx 文件。

样条图由一组点p0, p1, ... pn和一组连接某些或所有这些点的边或线段(三次贝塞尔曲线样条)确定。

每个分段都由起点(pSTART)和终点(pEND)以及这些点处的切线矢量坐标确定,这些点确定分段的曲率(分别为tSTARTtEND)。由两个以上段共享的 点称为交界处

源节点(当前为Static Mesh, Skinned MeshProjected Decal)可以放置在样条图的点处或沿着样条图的线段放置。每个点和线段可以分配一个或一组源节点。可以为分配给段的每个单独的源节点选择以下模式之一:

  • stretching-源节点沿样条线段拉伸。
    注意
    拉伸仅适用于静态网格源节点。
  • tiling-源节点沿样条线段重复。
  • adaptive(前两个的组合)-沿样条线段复制源节点,但是每个节点的长度(拉伸)由段的相应部分的曲率确定。因此,长节沿线段的笔直部分放置,而短节沿弯线部分放置,在合理的外观和性能之间提供合理的平衡。

例如,一个路段可以分配两个源节点:一个代表道路(拉伸),另一个代表道路灯(与道路平铺)。差距)。

注意
要分配给线段和点的源节点存储在*.node文件中。 *.node文件应包含Static Mesh, Skinned MeshProjected Decal作为根节点。

可以将任意数量的WorldSplineGraph节点添加到场景中,因为它使用了许多优化(例如将烘焙元素分成大段等)来确保大面积的可接受性能。

UP矢量的坐标还针对该段的每个点存储。该向量用于定义沿着样条图的线段放置的节点的方向。默认情况下,此向量平行于Z轴。 UP向量不会影响样条曲线段本身的曲率。

向上矢量调整。

SDK包含Road Tool Constructor附加组件,其中包含一组可立即使用的资产(路段和各种类型的交叉路口),可以用作构造元素来简化道路的创建。

注意
世界样条图 node currently has the following restrictions:

也可以看看#

  • WorldSplineGraph类文章,学习如何通过API管理世界样条图
  • SplinePoint类别文章,了解如何通过API管理样条图点
  • SplineSegment类别文章,了解如何通过API管理样条图段
  • WorldSplineGraph类的C ++示例,说明如何管理样条图以及沿图段生成几何: Source / samples / Api / Nodes / WorldSplineGraph
  • 样本说明WorldSplineGraph的用例Samples套件中包含的节点:
    • world_spline_graph/roads-在地形表面上创建的道路
    • world_spline_graph/ropes-绳索,链条和电缆

创建世界样条图#

要创建一个新的World Spline Graph,请执行以下操作:

  1. 添加一个World Spline Graph节点:在菜单栏, 选择Create -> Spline Graph

  2. 指定要用于新样条文件的现有样条文件(*.spl)的名称World Spline Graph或使用新名称从头开始创建样条线。

    注意
    请记住,*.world文件仅存储WorldSplineGraph节点的数据(转换,源节点列表等),而样条图本身存储在单独的*.spl文件中。要保存在世界上创建的样条图,请在Parameters选项卡中单击Save Spline并为其指定文件名。
  3. 通过管理样条图来编辑样条图点数
  4. 分配样条图的点和线段的所需源节点。

管理要点#

添加新点#

通过克隆现有点将新点添加到样条图中。要添加新点,请执行以下操作:

  1. 选择World Spline Graph
  2. 选择要克隆的所需点(将出现“移动操纵器”)。
  3. 在键盘上按Ctrl + D(将创建一个新点)。
  4. 使用“移动”操纵器来放置新创建的点。

调整点的位置#

要调整点的位置,请执行以下操作:

  1. 选择World Spline Graph
  2. 选择所需的点(将出现“移动操纵器”)。
  3. 使用移动操纵器,就像移动节点一样。

您还可以通过Parameters选项卡的Spline Points部分来调整所选点的位置:

调整点的切线#

切线控制样条线段的曲率。要调整一点的切线,请执行以下操作:

  1. 选择World Spline Graph
  2. 选择所需的点(将出现“移动操纵器”)。
  3. 选择所需的切线(如果所选点被多个线段共享,则将为其显示多个切线)。选择切线时,其旁边将显示“移动”操纵器。
  4. 使用移动操纵器,就像移动节点一样(相应段的形式将改变)。

调整点的UP向量#

上矢量控制沿样条线段放置的节点的方向。要调整一点的切线,请执行以下操作:

  1. 选择World Spline Graph
  2. 选择所需的点(将出现“移动操纵器”)。
  3. 选择所需的UP向量(如果所选点被多个线段共享,则将为其显示几个UP向量)。
  4. 切换到“旋转操纵器”并使用它来调整所需的角度,就像旋转节点一样(沿着相应线段放置的节点的方向会改变)。
    注意
    仅当将节点分配给相应的线段时,您才能看到效果。
  5. 使用移动操纵器,就像移动节点一样(相应段的形式将改变)。

合并点#

有时可能需要合并某些点(例如,关闭样条线)。要将两个或多个点合并为一个,请执行以下操作:

  1. 选择World Spline Graph
  2. 按住Shift键,选择要与区域选择工具合并的点或一对一地选择点。
  3. 右键单击要合并所选点的点,然后选择Merge To This Point
  4. 所有点将合并为合并的点所属的线段共享的一个。

删除点#

要删除样条图的点,请执行以下操作:

  1. 选择World Spline Graph
  2. 按住Shift键,使用区域选择工具或一对一地选择要删除的点。
  3. Del键。
注意
删除点将自动删除这些点所属的所有线段。

管理细分#

添加新细分#

要将新线段添加到样条图,请执行以下操作:

  1. 选择World Spline Graph
  2. 选择要添加的新段的起点(将显示“移动操纵器”)。
  3. 按住Shift键,然后使用“移动”操纵器定位新线段的终点。
    注意
    • 要创建直线段,应在起点处沿切线方向拖动操纵器。
    • 新添加的细分受众群使用上一个细分受众群的所有设置(分配的节点,放置模式和参数)。

您也可以通过选择分段并按Shift键移动来对其进行克隆,或者按Ctrl + D并使用“移动”操纵器放置克隆。

删除段#

要删除样条图的线段,请执行以下操作:

  1. 选择World Spline Graph
  2. 按住Shift键,使用区域选择工具或一一选择要删除的段。
  3. Del键。
注意
如果删除进入路口的路段,路口将停止正常运行。

管理源节点#

如上所述,单个或一组源节点可以分配给样条图的每个点或线段。

区隔的工作流程#

要将源节点分配给选定的段,请执行以下操作:

  • 选择所需的段。
  • Parameters选项卡中单击Add Node
  • 在打开的窗口中,选择所需的节点,然后单击OK
    注意
    要分配给线段和点的源节点存储在*.node文件中。节点文件应包含Static Mesh, Skinned MeshProjected Decal作为根节点。

对于分配给所选段的每个源节点,以下设置可通过Parameters选项卡进行调整:

Node 包含源节点的*.node文件的路径。
Forward Axis 定义将沿样条线定向源节点的哪条轴。
Placement Mode 要生成的对象的类型。以下之一:
  • Stretch-沿该段拉伸单个源节点实例。
    注意
    此模式是最性能友好的。
  • Tiling-源节点的多个实例沿线段放置。实例数由段和源节点的大小以及Gap参数的值确定。
  • Adaptive-前两个的组合,导致沿该段放置源节点的多个实例。这些实例中的某些实例可能会根据线段的曲率进行拉伸。
Adaptive Threshold 确定在Adaptive放置模式下可以将源节点的实例拉伸多少,以覆盖该段的整个长度。
注意
仅适用于Adaptive放置模式。
UV Tiling 启用源节点纹理的平铺.
Gap Tiling放置模式定义源节点上相邻实例之间的间隔(以单位为单位)。
注意
仅适用于Tiling放置模式。

积分工作流程#

要将源节点分配给选定的点,请执行以下操作:

  • 选择所需的点。
  • Parameters选项卡中单击Add Node
  • 在打开的窗口中,选择所需的节点,然后单击OK
    注意
    为一个交界处为使点正常运行,应分配一个ObjectMeshSkinned节点,其骨骼的数量应与连接到该点的样条线段的数量相对应。

对于分配给选定点的每个源节点,以下设置可通过Parameters选项卡进行调整:

Node 包含源节点的*.node文件的路径。
Variant 有许多可能的变体交界处。使用此滑块可以选择最合适的一个。
注意
此参数仅影响表示结点(ObjectMeshSkinned)的源节点。

交界处#

交界处应与所有进入的路段正确互动,以提供无缝过渡。为此,使用了ObjectMeshSkinned个源节点。

用于结点的源节点必须符合以下要求:

  • UnigineEditor中接合点的关节必须使其Y轴从接合点中心到相应分支的边缘。
  • 每个结点的分支的外部关节必须正好位于其外部边缘的中心,分支的外部顶点的权重必须对于外部关节最大(即,分支的外部顶点仅受外部关节影响)。
  • 由于接合点和线段由单独的网格表示,因此纹理及其UV贴图必须确保无缝的接合线段和线段段过渡。
  • 一个段的两个端点可能都具有连接点,因此用于该段的纹理必须对称,至少其边缘必须对称。
  • 道路的特定要求:
    • 路口和路段必须用一对网格(路堤和道路本身)表示。路堤网格用于与地形表面平滑融合。只需为分配给路堤的物料启用Terrain Lerp状态即可。
    • 为了确保路段和路口的正确变形,道路和路堤的三角剖分必须匹配。这样可以防止在上下移动样条线时使网格相互渗透。

导出世界样条图#

World Spline Graph 作为对象放置和变形的工具效果很好,但是由于一些技术问题,很难在最终应用程序中将其用作生成的对象。因此,一旦对象排列完成,就需要将样条图导出到 .mesh.fbx 文件。

要导出 World Spline Graph,请在 World Nodes 层次结构中右键单击它,选择 Export to 和一个更可取的选项:

World Spline Graph Export

导出操作会生成独特的几何图形,您可以像使用任何其他模型一样在项目中使用这些几何图形,而不受任何额外限制。

限制#

由于网格的性质,如果将 World Spline Graph 导出到非常大的对象(从原点到两侧大约 10,000 m),则会出现与浮点精度相关的视觉伪影。我们建议将这些大对象拆分为较小的对象。

如果 World Spline Graph 虽然不是很大,但距离原点很远(大约 10,000 m 甚至更远),也可能会出现问题。在这种情况下,我们建议在不存储枢轴的情况下将其导出到 FBX(应禁用 Save root transform 选项),或者在将其导出到 Mesh 之前将 World Spline Graph 位置重置为原点。

最新更新: 2022-12-14
Build: ()