生成智能形状 | hyperPad Documentation
Logo
Documentation对象生成智能形状
对象

生成智能形状

Published 2026年9月16日
生成智能形状

预发布功能 — 尚未在正式版应用中提供。

**在游戏运行时创建新形状。**在 Object → Lifetime 下找到此行为。选择形状,为其指定图形,然后选择显示位置。无需模板对象。

控件图片均为真实的深色模式截图,经过裁剪和排版以便阅读。它们展示的是输入项,而不是完成后的游戏设置。示意图展示的是结果。

选择形状

**只展开你要创建的形状。**Box 和 Freeform 使用简短的尺寸表单。Terrain 和 Path 还可以选择课程模式。

真实的 Shape type、Action 和 Generation mode 控件及简短说明。

Box — 地板、平台和房间 · 2 个形状输入项

选择 Shape type → Box。设置 Width 和 Height,然后继续设置下方的图形和位置。Action 和 Generation mode 会隐藏。

实际的 Box Width 和 Height 输入字段。

Box 和 Freeform 的 Width 和 Height;Variation 会改变 Freeform 的不规则程度。

**试试:**将 Width 设为 16 m,Height 设为 2 m,创建宽阔的平台。较高的 Box 可以作为 RPG 房间地板。调整大小时,重复图形会填充整个区域。

Box 使用 Top 和 Middle,并可选用 Left、Right 和 Bottom。Middle 可以留空。选择 Solid 创建静止障碍物,或选择 No collision 用作装饰。

Terrain — 下方带地面的起伏山丘

第一个示例请选择 Terrain → Generate → Finite course。

Terrain Length、Hill height、峰谷间的 Hill spacing 和 Ground depth。

实际的 Length、Hill height、Hill spacing、Hill variation 和 Ground depth 输入项。

**试试:**Length 60 m、Hill height 3 m、Hill spacing 12 m、Hill variation 0%、Ground depth 10 m。学习时将 Variation 设为 0%,便于比较规律的图案。

指定 Top 和 Middle 图形;Terrain 必须设置 Middle。选择 Surface collision,这样角色就能站在山丘上。Ground depth 会增加可见地面,但不会让 Surface collision 的下方变成实心。

选择 Endless 后,Length 会隐藏,并显示 Follow object。山丘控件保持不变。请参阅下方的“无尽课程”。

Freeform — 岛屿和不规则区域 · 3 个形状输入项

选择 Shape type → Freeform。它始终会创建一个有限形状。

实际的 Freeform Width、Height 和 Variation 字段。

尺寸控件,以及 Freeform Variation 为零和较高值时的效果。

**试试:**Width 16 m、Height 8 m、Variation 25%。设为 0% 时,轮廓为椭圆;Width 和 Height 相同时则为圆形。Variation 控制不规则程度;它不会在每次执行时生成新的随机轮廓。

使用 Perimeter 装饰轮廓,使用 Fill 填充内部。选择 Solid 或 No collision。如需绘制自定义点,请使用 Smart Shape Object。

Path — 道路和赛车赛道

选择 Path → Generate → Finite course。创建开放道路时,请勿勾选 Closed loop。

道路总宽度、向前的 Length 和起始 Heading。

实际的有限 Path Length、Path width、Bend amount、Bend spacing、Closed loop 和 Heading 输入项。

**试试:**Length 60 m、Path width 4 m、Bend amount 8 m、Bend spacing 20 m、Heading 0°。将 Bend amount 设为 0 可创建直路。

Heading 方向:0° 向右、90° 向上、180° 向左、270° 向下。Length 表示向前延伸的跨度,不是沿弯道行进的距离。车辆移动需另外添加。

开放的有限道路、封闭的有限环形赛道和无尽道路的对比。

**开启 Closed loop:**Bend spacing 会隐藏。Bend amount 会变为终点转弯半径。Length 必须大于该半径的两倍;半径必须大于 Path width 的一半,再加上任何正值的 Wall offset。

**Endless:**Length 和 Closed loop 会隐藏。Follow object 和 Bend variation 会显示。道路保持开放。

Path 只有一个图形插槽:Road。选择 Edge walls、Solid 或 No collision。Solid 会填充道路带;封闭赛道中央的开口仍为空。

为形状指定图形

使用静态 PNG 图形。只会显示所选形状对应的插槽。Tile size 用于缩放重复图形,不会改变形状尺寸。

Box / Terrain — Top、Middle 和可选侧边

实际的 Top、Middle、Left、Right、Bottom 以及 Side and bottom graphics 控件。

关闭 Side and bottom graphics 会隐藏其控件,但已指定的图形仍会生效。

仅限 Terrain 的 Generate Fill from Top 按钮和通用 Tile size 字段。

对于 Terrain,Generate Fill from Top 会在运行前于编辑器中创建填充资源。此功能需要静态 Top 图形;当 Top 为 Dynamic 时不可用。

Freeform / Path — Perimeter 和 Fill,或 Road

实际的 Freeform Perimeter 和 Fill 选择器,以及 Path Road 选择器。

从 Tile size 1× 开始。增大数值可让图形重复得更大;减小数值可让图形重复得更小。范围为 0.25×–4×。

选择碰撞

**图形是你看到的内容。碰撞是物体接触的内容。**启用了碰撞的生成形状会成为静止墙体。

橙色碰撞边界与可见 Terrain 和 Path 图形的对比。

显示碰撞、Wall offset、Friction 和 Bounce 输入项

实际的 Terrain、区域和 Path 物理选项,以及 Wall offset、Friction 和 Bounce 字段。

No collision 会隐藏并忽略 Friction 和 Bounce。另一个物体的值也会影响接触效果。Endless Terrain 始终使用 Surface collision,并隐藏该选择器。

Path 的 Wall offset 仅在选择 Edge walls 时显示:0 表示沿边缘,正值表示向外移动,负值表示移到路面上。

放置形状并运行后续行为

  1. 展开 Position and layer。选择游戏图层,并以场景米为单位设置 Start X / Start Y。
  2. 如果后续设置需要使用新形状,请将 Trigger on → Ready。
  3. 运行一次 Generate。保存其 Object ID,以便稍后修改这个特定形状。

实际的 Position and layer 开关、Start X、Start Y、Layer 和 Trigger on 控件。

关闭 Position and layer 不会重置其值。请单独放置玩家和摄像机。选择 Follow object 不会将课程放置在该物体下方。

**每次运行 Generate 都会创建另一个形状。**若要修改现有形状,请使用 Modify Smart Shape。

Generate Ready 将已保存的 Object ID 传递给 Modify Smart Shape,随后进行 Status 检查。

其他 Trigger on 选项和输出 ID

选择 Section generated,在每个已发布区段生成时触发;选择 Completed,在有限形状生成完成时触发;选择 Failed,在发生错误时触发;或选择 Each event,以接收所有事件类型。检查 Event:ready、sectionGenerated、completed 或 failed。

Completed 表示生成已完成,不表示玩家到达了终点。Endless 没有正常的 Completed 事件。Each event 可能会让有限形状的行为链触发三次;执行一次性操作前请检查 Event。即使某个事件没有触发行为链,输出仍会更新。

所有者 Object ID 与临时 Section Object ID 的对比。

为整个形状保存 Object ID。Terrain Object ID 是同一个所有者 ID 的兼容名称。Section Object ID 用于指向一个正在使用的区段;请原样传递。区段被回收或重置后,此 ID 就会失效。

对于 Endless Path 区段事件,Section Index 从 0 开始。Section X、Y 和 Heading 描述区段向前跨度的中点,不一定是沿曲线路径行进距离的中点。有限 Path 事件中的这些值为空。

无尽课程

让 Terrain 或 Path 延伸到玩家前方

实际的 Endless 模式、Follow object 选择器和 Path Bend variation 字段。

选择一个位于同一场景且具有物理体的活动 Follow object。使用正在移动的玩家或车辆。请将示例截图中的对象选择替换为你自己的对象。

生成器会向前创建区段,并回收旧区段。区段长度由系统内部决定;Length 会隐藏。一个场景中只能有一个活动的 Endless 生成器。请单独添加移动和摄像机跟随行为。

Path Bend variation 的范围为 0–100%。随机值由系统内部确定;生成器可能会缓和弯道,以确保几何形状有效。Terrain 使用其山丘控件,并始终启用表面碰撞。

停止、恢复或重置现有课程

实际的生命周期 Action 下拉菜单和 Generated Smart Shape 目标选择器。

添加另一个 Generate Smart Shape 行为,选择 Terrain 或 Path,然后选择操作。通过目标的 Dynamic 输入提供已保存的所有者 Object ID;不接受区段 ID。

  • **Stop:**暂停生成新的 Endless 区段;现有地面会保留。玩家仍会继续移动。
  • **Resume:**继续运行已停止的活动 Endless 课程。停止期间若玩家移动到保留地面之外,可能无法安全恢复。
  • **Reset:**移除课程并使其 ID 失效。再次运行 Generate 以创建替代课程。

这些操作在成功或失败后都会继续执行,且不使用 Trigger on。Reset 不会让玩家回到原位,也不会重新创建相同的随机课程。

如果功能无法正常运行

**先查看 Error。**缺少 Terrain Middle 图形、尺寸无效、Follow object 不合适或道路弯道过急都可能导致失败。如果几何形状无法生成,请尝试加宽弯道或缩窄道路。如果形状不断堆叠,说明 Generate 正在重复运行。

下方可展开的参考内容保留了完整规则和输出,供你在需要时查阅。

字段参考:只展开需要的内容

下方的详细定义按形状和用途分组。每组涵盖多个可能的选择;这些输入项不会同时全部显示。

直接使用图形创建 Terrain、Box、Freeform 或 Path Smart Shape。选择类型后即可显示相关设置;无需模板对象。

Box — 尺寸

选择 Box。只有 Width 和 Height 用于定义其几何形状。图形和通用控件位于下方各自的分组中。

Box

使用 Width 和 Height 创建一个矩形形状。Top、Middle、Left、Right 和 Bottom 可分别使用不同图形。选择 Solid 创建物理障碍物,或选择 No collision 用作装饰。

Width

Box 或 Freeform 形状的水平尺寸,单位为米。请使用正值。这会改变形状尺寸,而不是每个重复图块的大小。

Height

Box 或 Freeform 形状的垂直尺寸,单位为米。请使用正值。这与 Terrain 的 Hill height 和 Ground depth 不同。

Terrain — 山丘和地面

选择 Terrain → Generate。Length 仅适用于有限模式;山丘输入项和 Ground depth 在两种模式下都会使用。Surface/Solid 地面选项适用于有限 Terrain;Endless 会自动使用 Surface collision。

Terrain

创建沿水平轴延伸、下方带有平铺地面的山丘表面。它必须设置 Middle 图形。有限 Terrain 使用 Length;Endless Terrain 会自行确定区段长度,并始终使用 Surface collision。

Length

有限 Terrain 的水平课程长度,单位为米。对于有限 Path,它表示沿 Heading 方向的跨度,单位为米;并非沿弯道行进的距离,也不是封闭环路的周长。请使用正值。如果课程过长而山丘或弯道间距过密,可能会超出形状细节支持范围;若生成失败,请缩短 Length 或增大间距。

Hill height

Terrain 山丘峰谷之间的大致高度,单位为米;不是相对于起始高度的单侧高度。设为零会生成平地。数值越大,山丘越高;如果山丘过陡而无法生成,请增大 Hill spacing。

Hill spacing

相邻山峰和山谷之间所需的水平距离,单位为米;不是从一个山峰到下一个山峰的完整周期。请使用正值。间距会根据生成的区段进行调整,Hill variation 也可能改变单个间隔。

Hill variation

Terrain 的变化程度,范围为 0% 到 100%。设为零会生成规律的山丘图案;数值越大,山丘高度和间距的变化越明显。每次新生成的随机值由系统内部决定,无法通过输入种子来重现完全相同的课程。

Ground depth

Terrain 山丘下方填充地面的深度,单位为米。请使用正值。这会改变可见地面的深度;Surface collision 仍只沿着顶部表面,Solid ground 则会将填充区域设为实心。

Generate Fill from Top

Terrain 的编辑器操作,不会在行为执行时运行。选择静态 Top 图形,然后使用此按钮创建填充资源并将其指定给 Middle。Top 输入为 Dynamic 时不可用,也不接受动画循环或动画帧。如果准备填充资源期间图形发生变化,请重新生成。

Surface collision

对于 Terrain,碰撞仅沿山丘表面生效。无论 Ground depth 为何,下方的可见地面都不会变成实心碰撞区域。有限 Terrain 可选此项;Endless Terrain 必须使用此项。

Solid ground

对于有限 Terrain,使山丘表面下方的地面成为实心,包括侧面和底部。Ground depth 用于控制填充地面的延伸深度。Endless Terrain 不提供此选项。

Freeform — 尺寸和变化程度

选择 Freeform。它有三个几何形状输入项,且始终只创建一个有限形状。

Freeform

使用 Width、Height 和 Variation 创建一个圆润轮廓。Perimeter 用于装饰边框,Fill 用于填充内部。此生成器会自动生成轮廓;它不是绘图工具。

Width

Box 或 Freeform 形状的水平尺寸,单位为米。请使用正值。这会改变形状尺寸,而不是每个重复图块的大小。

Height

Box 或 Freeform 形状的垂直尺寸,单位为米。请使用正值。这与 Terrain 的 Hill height 和 Ground depth 不同。

Variation

Freeform 的不规则程度,范围为 0% 到 100%。设为零会生成椭圆;Width 和 Height 相同时则为圆形。数值越大,轮廓的部分区域会越向内凹。与 Terrain variation 不同,它不会在每次运行时生成新的随机轮廓。

Path — 道路几何形状和边缘墙

选择 Path → Generate。Length 和 Closed loop 仅适用于有限模式;Bend variation 仅适用于 Endless。启用 Closed loop 后,Bend spacing 会隐藏。只有启用 Edge walls 时才会显示 Wall offset。

Path

使用 Road 图形创建道路。有限路径可以开放或闭合成环;Endless 路径保持开放,并沿 Heading 方向添加区段。创建路径不会让其他物体沿路径移动。如需在道路上获取位置,请使用单独的移动行为,并在 Modify Smart Shape 中使用 Sample path。

Length

有限 Terrain 的水平课程长度,单位为米。对于有限 Path,它表示沿 Heading 方向的跨度,单位为米;并非沿弯道行进的距离,也不是封闭环路的周长。请使用正值。如果课程过长而山丘或弯道间距过密,可能会超出形状细节支持范围;若生成失败,请缩短 Length 或增大间距。

Path width

道路的总宽度,单位为米,以道路中心线为基准测量。请使用正值。应用 Wall offset 前,Edge walls 会从道路两侧边缘开始。急弯必须留有足够空间,确保道路和墙不会相互穿过。

Bend amount

对于开放 Path,这是侧向弯曲幅度,单位为米;设为零会生成直路。Endless Path 可能会缓和弯道,以防道路和墙相互折叠。对于 Closed loop,此项会变为圆角端弯的半径,且必须大于 Path width 的一半;如果使用 Edge walls,还需加上任何正值的 Wall offset。

Bend spacing

对于开放 Path,这是沿 Heading 方向交替弯道之间所需的距离,单位为米。请使用正值;数值越大,弯道间距越宽。Endless 区段会根据内部区段长度调整弯道,因此实际间距可能不同。Closed loop 不使用此输入项。

Bend variation

仅适用于 Endless Path,范围为 0% 到 100%,用于改变各区段的弯道大小、间距和方向。设为零会使用规律的模式。每次新运行的随机值由系统内部决定;有限路径不使用此设置。

Closed loop

对于有限 Path,开启此选项可创建一个闭合圆角环路,其中包含两段直线和圆角端部。关闭此选项可创建开放道路。Length 必须大于 Bend amount 的两倍,且端弯必须为 Path width 和任何墙偏移留出足够空间。此选项仅用于闭合道路几何形状,不会让物体循环移动。Endless 模式会忽略此设置。

Heading

Path 的起始前进方向,单位为度:0° 表示向右,90° 表示向上,180° 表示向左,270° 或 -90° 表示向下。正角度表示逆时针旋转。开放路径会围绕此方向弯曲;封闭环路会旋转到该方向。Heading 不适用于 Terrain、Box 或 Freeform。

Edge walls

对于 Path,此选项会沿道路两侧创建碰撞边界,同时保留中间区域开放,供物体通过。它不会让道路内部变成实心。使用 Wall offset 可调整边界相对于图形的位置。

Wall offset

对于启用了 Edge walls 的 Path,此项表示两侧墙从道路边缘移动的距离,单位为米。设为零表示沿道路边缘;正值表示向外移动;负值表示向内移动。这不会改变道路图形的尺寸。如果偏移导致墙体相交或弯道塌陷,系统会拒绝该值;请将偏移调得更接近零,或加宽弯道。

通用设置 — 图形、碰撞和位置

只会显示所选形状对应的插槽和碰撞选项。Friction 和 Bounce 需要启用碰撞。仅在需要时展开位置或侧边图形说明。

Shape type

选择 Terrain 创建下方带地面的山丘,选择 Box 创建矩形,选择 Freeform 创建圆润的不规则轮廓,或选择 Path 创建道路。Terrain 和 Path 提供课程操作和 Finite course 或 Endless 模式。Box 和 Freeform 始终生成一个有限形状。系统仅使用所选类型对应的设置。

Graphics

选择沿形状重复并填充内部的图形。Terrain 和 Box 使用 Top、Middle、Left、Right 和 Bottom;Freeform 使用 Perimeter 和 Fill;Path 使用 Road。其他形状类型的插槽会被忽略,包括其 Dynamic 绑定。可选插槽为空时,该位置不会添加图形。

Top

对于 Terrain,这是沿山丘表面重复的图形;对于 Box,这是沿上边缘显示的图形。Top 不会自动填充其下方区域;请另外选择 Middle,或对 Terrain 使用 Generate Fill from Top。

Middle

在 Terrain 或 Box 内部平铺的图形。Terrain 必须设置此插槽,才能填充 Top 下方的地面。直接选择填充图块,或使用之前生成的填充图形;如果 Box 只需要边缘图形,Middle 可以留空。

Side and bottom graphics

显示或隐藏 Terrain 和 Box 的 Left、Right 和 Bottom 选择器。这只会折叠控件;即使隐藏控件,之前选定的侧边和底部图形仍会生效。

Left

Terrain 或 Box 轮廓左侧边缘的图形。它不会替代 Top 或填充内部区域。如果不需要左侧边缘图形,可将此可选插槽留空。

Right

Terrain 或 Box 轮廓右侧边缘的图形。它不会替代 Top 或填充内部区域。如果不需要右侧边缘图形,可将此可选插槽留空。

Bottom

Terrain 或 Box 轮廓底边的图形。内部填充仍由 Middle 提供。如果不需要底边图形,可将此可选插槽留空。

Perimeter

对于 Freeform,此图形会沿整个曲线边框重复。内部使用 Top 图形插槽,但在此形状类型中显示为 Perimeter。

Fill

对于 Freeform,此图形会平铺在轮廓内部。内部使用 Middle 图形插槽。如果只需要边框图形,可将此项留空。

Road

对于 Path,此图形会沿道路平铺。Path 只使用这一个图形插槽,内部与 Top 插槽共用。Edge walls 是碰撞边界,不是额外的墙面图形插槽。

Tile size

重复图形的缩放倍率,范围为 0.25× 到 4×。1× 时使用图形的正常图块尺寸;2× 会让图块变大,0.5× 会让图块变小。这只会改变图形的重复方式,不会改变 Length、Width、Path width 或其他形状尺寸。

Physics

选择生成形状与其他物体发生碰撞的方式。启用碰撞的形状是静止墙体,而不是可自由移动的物理物体。Terrain 提供 Surface collision、Solid ground 或 No collision;Path 提供 Edge walls、Solid 或 No collision;Box 和 Freeform 提供 Solid 或 No collision。Endless Terrain 始终使用 Surface collision。

Solid

对于 Box 和 Freeform,会使填充轮廓成为实心障碍物。对于 Path,会使道路带本身成为实心,而不是只创建侧墙。封闭道路仍是环形路带;Solid 不会填充中央开口。

No collision

生成可见图形但不产生碰撞。其他物体可以穿过它。选择此项时,Friction 和 Bounce 会隐藏并被忽略。有限 Terrain、Box、Freeform 和 Path 可使用 No collision,但 Endless Terrain 不可使用。

Friction

无单位的碰撞值,范围为 0 到 10。值为零时较滑;数值越高,越能抵抗滑动。另一个物体的摩擦也会影响接触效果。如果物体没有接触生成形状的碰撞区域,此设置不会让它减速。

Bounce

无单位的碰撞值,范围为 0 到 1。值为零时,此形状不会增加反弹效果;数值越高,碰撞越有弹性。另一个物体的 Bounce 也会影响结果。这不是力或移动速度。

Position and layer

显示或隐藏 Start X、Start Y 和图层选择器。这只会折叠控件;隐藏后仍会使用已保存的值。位置单位为场景米,不是屏幕像素,也不是相对于 Follow object 的偏移。

Start X

生成形状原点的水平场景位置,单位为米。数值越大,位置越靠右;负值表示越靠左。Terrain 沿水平轴延伸;Path 根据 Heading 延伸。默认值为 0 m。

Start Y

生成形状原点的垂直场景位置,单位为米。数值越大,位置越高;负值表示越低。Terrain 山丘会相对于此起始高度起伏。默认值为 0 m。

Layer

用于放置生成的 Smart Shape 及其区段的场景图层。请选择一个可用的游戏图层。图层顺序会影响图形显示位置,图层的碰撞分组会影响哪些物体能与其发生碰撞。选择不存在的图层会导致失败,而不会静默使用其他图层。

Terrain 和 Path — 模式和课程操作

Box 或 Freeform 不会显示这些控件。Generate 使用所选模式。Stop、Resume 和 Reset 使用现有的所有者目标,而不是生成输入项。

Action

对于 Terrain 和 Path,可选择 Generate、Stop、Resume 或 Reset。Generate 使用下方的形状设置。其他操作使用现有生成的 Smart Shape,并在操作成功或失败时触发已连接的行为。

Generate

创建一个新的 Smart Shape,并为其分配独立的 Object ID。再次运行 Generate 会创建另一个形状,不会替换之前发布的形状。如果 Terrain hills 或 Endless Path bends 的 Variation 大于零,不同运行之间可能会产生变化。

Stop

暂停所选 Endless 课程的新区段生成,同时保留当前已发布的图形和碰撞。此操作不会停止或移动 Follow object。有限形状会保留在原处,但不会继续生成区段。

Resume

在 Stop 后继续运行活动的 Endless 课程,并沿用其现有设置和 Follow object。Resume 不会重新创建已重置或删除的课程,也不适用于有限课程。暂停期间如果物体移动到了保留课程之外,可能无法安全恢复;如果恢复失败,请检查 Error。

Reset

移除所选生成课程,并使其 Object ID 和区段引用失效。Reset 不会让 Follow object 回到原位,不会自动生成替代课程,也不会保证生成相同的随机课程。再次运行 Generate 即可创建新课程。

Generated Smart Shape

对于 Stop、Resume 或 Reset,请将 Dynamic Object A 设为 Generate Smart Shape 返回的 Object ID。选择且仅选择一个生成课程的所有者,不要选择其 Section Object ID 或 Follow object。

Generation mode

Finite course 会根据指定的 Length 一次性生成 Terrain 或 Path。Endless 会在 Follow object 前方生成区段,并回收较旧区段,以限制课程占用的内存。Endless 会忽略 Length 和 Closed loop;它不会重复有限课程,也不会保留所有旧区段。一个场景中只能有一个 Endless 生成器处于活动状态。

Follow object

在 Endless 模式中,准确选择一个位于同一场景且具有物理体的活动对象,例如玩家或车辆。系统会根据其位置判断需要生成哪些区段。这不会让对象移动、将课程附加到对象上,也不会让摄像机跟随对象;请单独设置移动和摄像机行为。Start X 和 Start Y 仍然会放置生成的课程。

完成事件和输出

Trigger on 是 Generate 的输入。输出是返回值,不是需要填写的设置。Path 会提供区段位置输出;Endless Path 区段事件会填充这些输出。

Trigger on

选择触发已连接行为的生成事件。即使某个事件未被选中,事件到达时输出仍会更新。Stop、Resume 和 Reset 不使用此选择器:成功时会报告 Completed 事件,出错时会报告 Failed 事件。如果同一行为链需要处理生成成功和失败,请选择 Each event。

Ready

初始形状及其所选碰撞进入场景后触发。如果后续的一次性设置需要使用 Object ID,请使用此事件。Endless Ready 事件不一定对应某个独立区段;如需区段详情,请使用 Section generated。

Section generated

每当新发布一个区段时触发。有限形状会生成一个区段引用;Endless 课程会在延伸时持续生成新区段。使用 Section Object ID 指向该区段。Endless Path 还会提供 Section Index、Section X、Section Y 和 Section Heading,以便进行区段位置相关的逻辑处理。

Completed

有限形状生成完成时触发,包括 Box、Freeform 和闭合的 Path。它不表示玩家到达了课程终点。Endless 生成会持续添加新区段,因此没有正常的 Completed 事件。

Failed

如果生成无法继续,例如设置无效、图形不可用、缺少 Follow object 或流式生成安全检查失败,就会触发此事件。请查看 Error 了解原因。Endless 流式生成失败后,之前发布的区段可能仍会保留;这并不表示课程已重置。

Each event

每当收到 Ready、Section generated、Completed 或 Failed 事件时都会触发。检查 Event 以决定运行哪部分已连接逻辑。因此,一次有限形状生成可能会让行为触发多次:Ready 一次、其区段一次、Completed 一次。

Outputs

这些值可以连接到其他行为的 Dynamic 输入。输出描述最近收到的事件;如果该事件没有对应的物体或区段,某些字段就会为空。请在后续事件覆盖输出前保存需要的 ID;目标被移除后,不要继续使用其引用。

Object ID

生成的 Smart Shape 所有者标识符。将其传递给 Modify Smart Shape 或 Set Graphic 的 Dynamic Object A,以指向整个形状。对于生成的 Terrain 或 Path 课程,也可以使用此所有者 ID 执行 Stop、Resume 或 Reset。Reset 会使该 ID 失效,即使 Reset 完成事件仍会报告已移除的所有者。

Terrain Object ID

包含与 Object ID 相同值的兼容别名,包括 Box、Freeform 和 Path。它不是独立物体,也不是区段。

Section Object ID

某个已发布区段的不透明引用,并非普通的场景物体编号。将其原样传递给 Modify Smart Shape 或 Set Graphic 的 Dynamic Object A,以指向该区段。区段被回收或课程被重置后,此引用就会失效。不要对它进行算术运算,也不要将它用于 Stop、Resume 或 Reset。Endless 区段不允许进行会破坏连接处的编辑;请使用受支持的区段图形、弯道或采样操作。

Section Index

对于 Endless Path 区段事件,这是该区段的序号,从 0 开始。即使较旧区段被回收,后续区段的编号仍会递增。此值可用于计数或交替放置逻辑,但它不是 Object ID。对于有限路径及不包含 Endless Path 区段详情的事件,此值为空。

Section X

对于 Endless Path 区段事件,这是该区段向前跨度中点的场景空间 X 坐标,单位为米。这是采样得到的道路位置,不是图形边界框的中心,也不一定是曲线路径行进距离的中点。若要获取区段上的其他位置,请将 Section Object ID 与 Modify Smart Shape 中的 Sample path 配合使用。

Section Y

与 Section X 同一 Endless Path 采样位置的场景空间 Y 坐标,单位为米。这些坐标适用于场景定位,不适用于屏幕定位。对于有限路径及不包含 Endless Path 区段详情的事件,Section X 和 Section Y 为空。

Section Heading

对于 Endless Path 区段事件,这是 Section X/Y 采样位置处道路的前进切线方向,单位为度:0° 表示向右,90° 表示向上。由于道路会弯曲,此方向可能与初始 Heading 不同。对于有限路径及不包含 Endless Path 区段详情的事件,此值为空。

Status

最近一次操作或课程状态,例如 generating、completed、ready、paused、blocked、failed 或 reset。Status 描述当前状态;Event 描述发生了什么。如果 Endless 课程无法安全继续,Failed 事件的状态可能为 blocked。

Error

对最近一次失败的可读说明;如果最近事件没有错误,则为空值。当设置被拒绝或流式生成停止推进时,请检查此项。即使 Trigger on 设为其他事件,Error 和 Status 仍会更新。

Event

用于分支逻辑的事件名称:ready、sectionGenerated、completed 或 failed。这些输出值不是界面显示标签;例如,选择 Section generated 时,输出值为 sectionGenerated。Each event 是触发器选项,不是 Event 返回的值。