修改智慧形狀
預先發布功能 — 尚未在正式版 App 中提供。
**變更現有的 Smart Shape。**調整大小、重新建立山丘或道路、延伸端點,或變更圖像。請在 Object → Lifetime 中找到此行為。
控制項圖片是實際的深色模式截圖,經過裁切並重新排列以便閱讀。它們展示各欄位;範例目標不一定適用於每個動作,也不是可直接執行的設定。示意圖則展示結果。
先選擇目標,再選擇一個動作
- 將 Shape type 設為與目標相符的類型。
- 在 Object A 中選取形狀,或使用 Dynamic Object A,並輸入來自 Generate Smart Shape 的 Object ID。
- 選擇 Action。畫面只會顯示該動作所需的輸入欄位。
**Shape type 用來選擇形狀類型,不會轉換目標。**Box 仍然是 Box。修改新生成的形狀前,請先等待其 Ready 事件。
選擇所需的編輯方式
Box 或 Freeform — 使用 Width 和 Height 調整大小
選擇 Action → Resize。只有以下兩個尺寸輸入欄位:
**試試看:**將 Box 從 16 × 8 m 改為 20 × 4 m,讓區域更寬、更淺。Freeform 會調整現有輪廓的大小;Modify 沒有 Freeform Variation 欄位。
若只要變更圖像而不調整大小,請選擇 Graphics only。
Terrain — 重新生成山丘、延伸端點或變更深度
選擇一個動作:
- **Regenerate hills:**Hill height、Hill spacing 和 Hill variation。
- **Extend left / Extend right:**Extend distance 和 Extend style。Add hills 會顯示三個山丘輸入欄位;Continue end 則會隱藏這些欄位。
- **Change ground depth:**僅使用 Ground depth。
**試試看:**向右延伸 12 m,選用 Add hills,並將高度設為 3 m、間距設為 12 m、變化設為 0%。現有地面會保留,並在端點新增地面。
對於生成式串流 Terrain,可用動作會依目標是擁有者還是目前有效的區段而異。行為執行時才會檢查 Dynamic 目標;請查看 Status 和 Error。
Finite Path — 重新建立、延伸、加寬或開啟/關閉道路
Regenerate path 會使用新的一組尺寸取代路線。Closed loop 開啟時,Bend spacing 會隱藏。
Extend start / Extend end 僅使用 Heading 和 Extend distance:
Change path width 只會顯示 Path width。Close loop / Open loop 沒有數值輸入欄位。這些有限幾何形狀動作不適用於 Endless 擁有者。
封閉賽道需要足夠空間轉彎:Length 必須大於 Bend amount 的兩倍,而轉彎半徑必須大於 Path width 的一半,再加上任何正值的 Wall offset。即使如此,急彎或寬路仍可能無法通過幾何檢查。
Endless Path — 重塑彎道
選擇 Reshape endless bends。若要變更整條路線,請指定擁有者;若只要變更單一區段,請指定目前有效的 Section Object ID。
此動作會重塑符合條件的有效區段,同時保留其接合處、長度、寬度、方向和碰撞設定。有人或物體正在使用的區段會受到保護。修改擁有者也會更新未來區段的設定。試著調小 Bend amount 或調大 Bend spacing,讓彎道更平緩。
變更圖像
選擇 Graphics only,或啟用 Change graphics,讓圖像在編輯幾何形狀時一併更新。Sample path 沒有圖像控制項。
Box / Terrain 圖像控制項
每個插槽都可獨立設定。選擇 Replace 會顯示其圖像選擇器;請選擇支援的靜態 PNG。清除唯一可見的圖像可能會讓物理形狀變得不可見。結果仍須通過驗證。
Freeform / Path 圖像控制項與替換選擇器
Freeform 使用 Perimeter / Fill。Path 使用 Road。不想變更的插槽請保留原樣。變更圖像不會改變尺寸、碰撞模式、圖塊大小、摩擦力或彈跳。
讀取 Endless 道路上的一個點
Sample path — 讀取位置與方向,不變更道路
在 Endless Path 擁有者或支援的有效區段上使用 Path → Sample path。
選擇一種 Sample position 方法:
**Nearest world position:**輸入以場景公尺為單位的 World X 和 World Y,尋找保留道路中心線上最近的點。
Position along section:使用 0(起點)到 1(終點)。0.5 代表區段向前範圍的中點,而不是沿彎曲道路行進距離的中點。此模式需要有效的 Section Object ID;僅有擁有者 Object ID 並不足夠。
成功時,Status 會是 sampled。在後續行為中使用 Sample X、Sample Y 和 Sample Heading。取樣不會移動玩家或載具;請自行透過移動或定位行為套用這些輸出。
檢查結果
完成連接埠可能會在成功或失敗後執行。請檢查 Status:
applied— 編輯成功。sampled— Sample path 成功。failed— 查看 Error,並修正輸入或目標。
整個形狀的 ID、區段 ID 和目標群組
擁有者請使用 Object ID。支援的有效區段編輯請直接傳遞 Section Object ID;區段退役或重設後,該 ID 就會失效。Target Reference 會保留所指定的範圍,而 Modify 的 Object ID 輸出則會傳回擁有者。
使用 Apply Behaviour To 套用到多個相符形狀,最多可使用 256 個參照。系統會分別套用各目標;若某個目標失敗,不會復原先前已成功的目標。Sample path 必須且只能指定一個目標。執行階段尚未識別物件時,Dynamic 目標可能仍會顯示選項。若動作失敗,請檢查 shape type、Finite/Endless 模式、目標範圍和 Error。
下方的可展開參考資料包含完整的輸入、輸出和相容性規則,讓操作說明不必列出所有可能欄位。
欄位參考:只展開所需內容
以下詳細定義依形狀和用途分組。每組都涵蓋多種可能的選擇;並非所有欄位都會同時顯示。
在專案執行時變更現有的 Smart Shape,或讀取 Endless Path 上的位置。選擇與 Object A 相符的 shape type,再選擇動作。要求完成後,連接的行為就會執行;使用輸出前請先檢查 Status 和 Error。
共用設定 — 形狀與目標
請先選擇相符的類型、目標和動作。動作會決定以下哪些輸入群組適用。
Shape type
地形使用 Terrain;具方向性的填滿形狀使用 Box;有單一周界圖像的填滿輪廓使用 Freeform;道路則使用 Path。此選項會決定可用的控制項,不會將 Object A 轉換成另一種類型。
Object A
選取目前場景中可用且已啟用的 Smart Shape。其類型必須與 Shape type 相符。要求編輯新生成的物件或區段前,請先等待它就緒。
Dynamic Object A
在 Object A 上啟用 Dynamic,以使用來自其他行為的 Object ID。對 Terrain 或 Path 而言,目前有效的 Section Object ID 可指定單一生成區段,而非其擁有者。例如,將 Section Generated 事件連接到此行為,並使用該事件的 Section Object ID。已退役或過期的區段會導致失敗,不會改為編輯整個擁有者。
群組
使用 Apply Behaviour To 選取多個相符的 Smart Shape。每個要求最多支援 256 個參照;Sample path 必須且只能指定一個目標。系統會逐一檢查並套用各目標,因此群組要求失敗時,不會復原其他目標上已成功的變更。
Action
選擇要變更的項目。Terrain 提供重新生成山丘、延伸、地面深度或圖像的選項。Box 和 Freeform 提供 Resize 或 Graphics only。Path 提供道路重新生成、延伸、寬度、迴圈控制、圖像、取樣和無限彎道重塑。系統只會讀取所選動作使用的輸入。
單位
形狀尺寸和延伸距離以物件自身座標空間中的公尺為單位輸入;物件的縮放和旋轉仍會影響場景中的結果。World X、World Y、Sample X 和 Sample Y 則使用場景世界座標的公尺。角度使用度數。請輸入有限數值;百分比控制項請使用 0–100。
Box — Resize
Resize 使用 Width 和 Height。圖像相關設定請參閱圖像群組。
Resize
對 Box 或 Freeform,依照指定的 Width 和 Height 分別縮放現有輪廓。系統會縮放現有的點和曲線控制柄,而非重新生成輪廓。水平和垂直比例不同時,形狀可能會被拉伸。除非啟用 Change graphics,否則圖像會保留。
Width
Box 或 Freeform 輪廓的新寬度,必須大於 0,單位為公尺。僅供 Resize 使用。這是形狀尺寸,不是圖像圖塊的寬度。
Height
Box 或 Freeform 輪廓的新高度,必須大於 0,單位為公尺。僅供 Resize 使用。此值獨立於 Width,也不是 Terrain 的 Hill height 設定。
Terrain — 山丘、延伸與深度
Regenerate hills 使用山丘輸入欄位。延伸會使用距離和樣式,只有選擇 Add hills 才會顯示山丘輸入欄位。Change ground depth 使用 Ground depth。Endless 目標支援的動作較少。
Regenerate hills
使用 Hill height、Hill spacing 和 Hill variation,在現有 Terrain 範圍內重新生成山丘。現有端點位置和斜率會保留,讓相連的地面維持連接。此動作不會延伸範圍。每次都會使用新的內部隨機選擇;variation 可能使結果有所不同。
Extend left
在有限 Terrain 的左端之外新增地面,使用 Extend distance 和 Extend style。現有地表會保留。左側指物件的本地左方向,並會隨物件旋轉。
Extend right
在有限 Terrain 的右端之外新增地面,使用 Extend distance 和 Extend style。現有地表會保留。右側指物件的本地右方向,並會隨物件旋轉。
Extend distance
要新增的正值距離,單位為公尺。對 Terrain 而言,這是所選端點以外的水平距離。對開放的有限 Path 而言,這是從目前端點到新端點、沿所選延伸方向的距離,不是沿最終曲線測量的長度。
Extend style
選擇 Add hills,使用山丘控制項生成新的起伏 Terrain 區段;或選擇 Continue end,新增平坦地面。此控制項僅適用於有限 Terrain 延伸。
Add hills
只在新增的 Terrain 範圍內生成山丘。Hill height、Hill spacing 和 Hill variation 控制新增地面,同時保留與現有地表的接合處。
Continue end
在現有端點的高度新增水平直線 Terrain 區段。不會沿著傾斜端點向上或向下延伸。此選項不使用 Hill height、Hill spacing 或 Hill variation。
Hill height
以公尺為單位的大約山峰至谷底高度,不是地面上下兩側各增加的高度。數值越大,山丘越高;0 會移除新增的山丘高度。現有端點高度和斜率仍會保留,因此 0 不一定會讓整個範圍變平。
Hill spacing
相鄰山峰與山谷之間的大約水平距離,單位為公尺。數值越大,山丘越寬緩;數值越小,山丘越密集。系統會依可用範圍調整間距。若點數過多或山丘過於陡峭,請增加間距或降低 Hill height。
Hill variation
山丘高度和間距的變化程度,範圍為 0% 至 100%。使用 0% 可得到規律的圖樣;提高數值可讓地面更不均勻。此設定不會改變保留的端點或要求的整體範圍。
Change ground depth
在不重新生成山丘的情況下,變更有限 Terrain 表面下方的深度。此動作使用 Ground depth,不會移動表面上的點。Endless Terrain 不支援此動作。
Ground depth
從最低表面點向下到 Terrain 底部的距離,單位為公尺。請使用非負值。設為 0 會移除表面下方的深度,但不會刪除 Smart Shape。既有圖像和碰撞設定仍會決定其繪製方式和物理用途。
Endless Terrain
生成器會自動延伸地面。Modify Smart Shape 支援在有效的擁有者或區段上執行 Regenerate hills 和 Graphics only,但無法手動延伸端點或變更共用的地面深度。編輯區段時,其長度和共用接合處會保留。若幾何形狀的變更會影響接觸中或正在使用的物理物件,要求可能會遭到拒絕。
Freeform — Resize
Resize 使用 Width 和 Height 縮放現有輪廓。沒有 Variation 輸入欄位。Graphics only 使用 Perimeter 和 Fill。
Resize
對 Box 或 Freeform,依照指定的 Width 和 Height 分別縮放現有輪廓。系統會縮放現有的點和曲線控制柄,而非重新生成輪廓。水平和垂直比例不同時,形狀可能會被拉伸。除非啟用 Change graphics,否則圖像會保留。
Width
Box 或 Freeform 輪廓的新寬度,必須大於 0,單位為公尺。僅供 Resize 使用。這是形狀尺寸,不是圖像圖塊的寬度。
Height
Box 或 Freeform 輪廓的新高度,必須大於 0,單位為公尺。僅供 Resize 使用。此值獨立於 Width,也不是 Terrain 的 Hill height 設定。
Path — 有限路徑編輯、Endless 彎道與取樣
請閱讀所選動作的說明。取樣會將幾何形狀輸入換成 World X/Y 或 Section position。有限和 Endless 動作的目標要求不同。
Regenerate path
使用 Length、Path width、Bend amount、Closed loop 和 Heading 取代有限 Path 的中心線;若道路為開放狀態,還會使用 Bend spacing。替換後的道路會從原本的第一個點開始,並保留既有碰撞設定。此動作不適用於 Endless Path;請改用 Reshape endless bends。
Length
重新生成有限 Path 時的正值向前範圍,單位為公尺;不是沿彎道或迴圈行進的總距離。開放的 Path 會沿 Heading 前進此距離。對封閉迴圈而言,這是迴圈整體的向前範圍。
Path width
道路的完整寬度,必須大於 0,單位為公尺,並以中心線為基準測量。Regenerate path 和 Change path width 都會使用此欄位。它控制道路形狀,而非來源圖像大小。Endless Path 區段會保留生成時選擇的寬度。
Bend amount
對開放的有限 Path 而言,這是相對於起始方向向側邊偏移的距離,單位為公尺;0 會讓道路保持筆直。重新生成 Closed loop 時,此值代表轉彎半徑。Reshape endless bends 會使用此值控制所要求的彎道大小;為確保道路和護牆有效,系統可能會縮小彎道。
Bend spacing
交替彎道之間向前的距離,必須大於 0,單位為公尺。數值越大,彎道越長、越平緩。有限 Path 會將彎道圖樣調整到 Length 範圍內;Endless 區段則會調整到固定接合處之間。重新生成封閉迴圈時不會使用此輸入。若有限 Path 超出點數上限,請增加間距或縮短 Length。
Closed loop
重新生成有限 Path 時,開啟此選項可建立膠囊形封閉道路;關閉則建立開放道路。封閉迴圈要求 Length 大於 Bend amount 的兩倍,且 Bend amount 大於 Path width 的一半。此選項開啟時不會使用 Bend spacing。若要連接現有道路而不重新生成,請使用獨立的 Close loop 動作。
Heading
對 Regenerate path 而言,此值是物件自身座標中的絕對方向:0° 向右,90° 向上。對 Extend start 或 Extend end 而言,此值是相對於端點朝外方向的轉角:0° 代表直線延伸,正值逆時針轉彎,負值順時針轉彎。物件本身的旋轉仍會生效。
Extend start
在開放有限 Path 的第一個點之前新增路段。Extend distance 設定新端點的位置,Heading 則設定相對於起點朝外方向的轉角。延伸封閉迴圈前,請先開啟迴圈。Endless Path 會自動延伸。
Extend end
在開放有限 Path 的最後一個點之後新增路段。Extend distance 設定新端點的位置,Heading 則設定相對於終點朝外方向的轉角。延伸封閉迴圈前,請先開啟迴圈。Endless Path 會自動延伸。
Extend distance
要新增的正值距離,單位為公尺。對 Terrain 而言,這是所選端點以外的水平距離。對開放的有限 Path 而言,這是從目前端點到新端點、沿所選延伸方向的距離,不是沿最終曲線測量的長度。
Change path width
變更有限道路的完整寬度,同時保留其中心線。形狀變更只會使用 Path width。若寬度造成道路重疊或產生無效護牆,要求可能會遭到拒絕。Endless Path 不支援此動作。
Close loop
連接現有有限 Path 的兩端,同時保留現有道路。必要時可能會新增返回路段。若無法在不交叉或擠壓道路的情況下安全連接,要求就會失敗。此動作不會使用 Length、Bend amount、Closed loop 或 Heading。
Open loop
在封閉有限 Path 上切開一個小缺口,建立開放道路,同時保留其他路段。此操作可能需要額外的點;若形狀已達點數上限,可能會失敗。目標必須已封閉;Endless Path 一律為開放狀態。
Reshape endless bends
在有效的 Endless Path 上變更 Bend amount、Bend spacing 和 Bend variation,同時保留區段長度、寬度、方向、碰撞設定和共用接合處。Dynamic Object A 若使用 Section Object ID,便只會變更該區段;若指定擁有者,則也會更新未來區段的設定。有人或物體正在使用的區段會受到保護。較早的接合處退役後,可能無法重塑第一個保留區段;請改選較後面的有效區段。有限 Path 請改用 Regenerate path。
Bend variation
使用 Reshape endless bends 時,輸入 0–100% 以控制彎道間距、大小和方向的不規則程度。使用 0% 可得到規律的圖樣。系統會保留此次執行現有的隨機種子,因此在同一區段重複使用相同設定,不會要求生成新的隨機道路。
Sample path
讀取一條有效 Endless Path 上的位置和向前方向,不會變更形狀或圖像。不支援有限 Path。使用 Sample X、Sample Y 和 Sample Heading 將物件放到道路上,或引導物件返回道路。取樣只會搜尋目前保留的區段,不會搜尋已退役或未來的道路。
Sample position
選擇 Nearest world position,使用 World X 和 World Y 尋找附近的道路點;或選擇 Position along section,使用 Section position 在特定區段取樣。這些模式僅適用於 Sample path。
Nearest world position
使用 World X 和 World Y,在保留的 Endless Path 中心線上尋找附近的點。使用擁有者的 Object ID 可搜尋所有保留道路。若使用 Section Object ID,而最近的結果屬於其他區段,要求就會失敗。
Position along section
讀取目前 Endless Path 區段中的一個點。將 Dynamic Object A 設為其 Section Object ID,並輸入 Section position。只有擁有者 Object ID 並不足夠。
World X
供 Nearest world position 使用的場景世界水平座標,單位為公尺。正值 X 朝右。這不是螢幕像素座標,也不是距離 Object A 的距離;此值可來自其他物件的位置輸出。
World Y
供 Nearest world position 使用的場景世界垂直座標,單位為公尺。正值 Y 朝上。World X 和 World Y 合併使用時,會指定要搜尋附近的位置,而不是道路的新位置。
Section position
介於 0 到 1 的數值:0 是區段起點,0.5 是向前範圍的中點,1 是終點。此值代表沿區段主要方向前進的進度,而非曲線道路總長度的百分比。此模式需要有效的 Section Object ID。
圖像 — Change graphics 和 Graphics only
這些操作會在選擇 Graphics only 或啟用 Change graphics 時顯示。畫面只會顯示所選形狀的插槽;只有 Replace 會顯示圖像選擇器。Sample path 會隱藏所有圖像控制項。
Graphics only
變更所選圖像插槽,不會改變輪廓、山丘、道路寬度或碰撞設定。所有四種形狀類型皆可使用。每個支援的插槽都可分別選擇 Keep existing、Replace 或 Clear。
Change graphics
開啟後,編輯形狀時會一併變更圖像插槽。每個目標的形狀和要求的圖像會一併驗證及套用。關閉時則會保留所有圖像。Graphics only 一律顯示插槽控制項;Sample path 則絕不會變更圖像。
Keep existing
保留此插槽目前指定的圖像不變。其 Replace 選擇器中儲存的任何圖像都會忽略。若不想編輯某個插槽,請選擇此選項。
Replace
將圖像選擇器中選取的靜態 PNG 指定給此插槽。選擇器可使用 Dynamic graphic 輸入,但解析結果必須是支援的靜態 PNG;不支援動畫影格和循環。若未選取圖像或選取無效,要求會失敗,而非默默清除插槽。
Clear
移除此插槽的圖像指定。此操作不會刪除 Smart Shape、移除其輪廓或關閉其碰撞設定。結果仍須通過驗證。
Side and bottom graphics
顯示 Terrain 或 Box 的 Left、Right 和 Bottom 插槽控制項。這是展開控制項,不是用來啟用或停用這些圖像的開關。隱藏此控制項不會重設先前選擇的插槽操作;若要保留某個插槽不變,請使用 Keep existing。
Top
Terrain 和 Box 頂面邊緣使用的圖像。可獨立於 Middle 和其他邊緣插槽選擇 Keep existing、Replace 或 Clear。
Middle
Terrain 和 Box 用來填充內部的圖像。此插槽與表面和邊緣圖像分開。替換此插槽只會變更填充圖像,不會設定新的地面深度或輪廓尺寸。
Left
Terrain 和 Box 左側邊緣使用的圖像。使用 Side and bottom graphics 展開此選項。
Right
Terrain 和 Box 右側邊緣使用的圖像。使用 Side and bottom graphics 展開此選項。
Bottom
Terrain 和 Box 底部邊緣使用的圖像。使用 Side and bottom graphics 展開此選項。
Perimeter
Freeform 沿外部輪廓重複使用的圖像。此單一周界插槽取代 Terrain 和 Box 使用的方向性邊緣選項。
Fill
Freeform 用來填充輪廓內部的圖像。可獨立於 Perimeter 保留、替換或清除。
Road
Path 沿道路繪製的圖像。Path 只有這一個圖像插槽,不會提供個別的填充、側邊或底部插槽。
輸出、完成狀態與安全性
這些是傳回值和執行規則,不是額外的輸入欄位。Sample path 會提供 Section Index 和 Sample X/Y/Heading。
Target Reference
包含所指定確切擁有者或區段參照的輸出。若下一個操作必須保留相同範圍,請將此值傳給 Dynamic Object A。群組要求可能會傳回參照陣列。
Object ID
識別 Smart Shape 擁有者的輸出,即使 Object A 指定的是單一區段也一樣。若後續編輯仍須限定於區段,請使用 Target Reference 或 Section Object ID。群組要求可能會傳回擁有者 ID 陣列。
Terrain Object ID
相容性輸出,包含與 Object ID 相同的擁有者 ID,也適用於 Box、Freeform 和 Path。它不代表另一個 Terrain 物件或個別區段。
Section Object ID
包含經取樣的 Endless Path 區段,或成功的單一區段編輯所指定區段的輸出。一般的擁有者範圍編輯或多目標編輯不會傳回此值。區段 ID 是暫時性的:區段退役、物件重設或刪除,或場景/執行階段變更後,ID 就會失效。
Section Index
Sample path 要求成功時,生成區段在其 Endless Path 執行序列中的索引,從 0 開始。這是用來識別序列的數值,不是 Object ID,也不是以公尺為單位的位置。
Sample X
Sample path 要求成功時,取樣中心線點在場景世界中的 X 座標,單位為公尺。請與 Sample Y 一起使用。此座標不是相對於攝影機或 Smart Shape 的位置。
Sample Y
Sample path 要求成功時,取樣中心線點在場景世界中的 Y 座標,單位為公尺。請與 Sample X 一起使用,將另一個物件定位到道路上。
Sample Heading
Sample path 要求成功時,取樣點切線向前方向的世界角度:0° 向右,90° 向上。可使用負角度。這是沿道路前進的方向,不是 Path 延伸使用的相對轉向 Heading 輸入。
Status
編輯進行中時會顯示 modifying;編輯成功時顯示 applied;Sample path 成功時顯示 sampled;要求遭拒時則顯示 failed。完成後會執行連接的行為,包括失敗時。只有在顯示 applied 或 sampled 時,才應將其他輸出視為可用結果。
Error
Status 為 failed 時,會提供易讀的說明,例如類型不符、幾何形狀無效、區段正在使用、參照已過期,或 Endless 動作不受支援。成功後此欄位為空。再次嘗試前,請修正輸入或取得目前有效的區段參照。
完成狀態與安全性
此行為執行內容中的要求會依序處理,最多可有 16 個未完成要求;超過上限的要求會回報 failed,直到有可用容量為止。發出相依的變更前,請先等待要求完成。停用、重設、場景變更或拆除作業都可能取消待處理工作,且不會執行連接的行為。成功結果會在傳遞輸出前再次檢查,但其擁有者或區段之後仍可能消失;請勿將區段 ID 當成永久物件參照保留。

