跳到內容

Shortest Path

透過點的 Distribution 找到起點和終點之間的最短路徑來生成路徑。

演算法透過以下方式計算最短路徑:

  1. Input Path 的給定位置開始。
  2. Distribution 中搜尋鄰近點。預設情況下是最接近的 10 個點,但也可以基於 Search Distance
  3. 選擇最接近終點位置的鄰近點並移動到它。
  4. 循環步驟 2 和 3,直到路徑到達終點位置。

使用 Text Shape 生成多條最短路徑。

Common Attributes +

Input Shape - 連接一個 Shape 以從中生成起點和終點位置。

Count - 設定要生成的路徑數量。

Start Travel - 設定 Shortest Path 起點沿 Input Shape 的位置。如果 Count 大於 1,連接一個 Behaviour 以變化每條路徑的位置。

End Travel - Shortest Path 終點沿 Input Shape 的位置。如果 Count 大於 1,連接一個 Behaviour 以變化每條路徑的位置。

Use Search Radius - 預設情況下,使用最接近的 10 個點來計算最短路徑——勾選 Use Search Radius 後,可以使用 Search Radius 進行更精細的控制。

Search Radius - 設定搜尋「最短路徑下一步應行進到的點」的最大半徑。

Use Levels - 勾選時,確定使用 Input Shape 的哪個層級來建立起點/終點位置。

Level Mode - 選擇影響網格層級的哪個/哪些層次。

  • Custom… - 手動設定 Custom Level
  • Text (Lines) - 與 Text Shape 一起使用,將影響每個
  • Text (Words) - 與 Text Shape 一起使用,將影響每個單詞
  • Text (Characters) - 與 Text Shape 一起使用,將影響每個字元

如果使用包含字串 TEXTText Shape 作為 Input ShapeLevel Mode 可用於確定起點/終點位置從何處建立/建立到何處。例如,如果設為 Text (Characters),起點和終點必須都位於每個單獨字母(TEXT)上,而如果設為 Text (Words),起點和終點可以沿整個單詞的任何位置生成。例如,起點可以位於第一個 T 上,而終點位於 X 上的某個位置。

Custom Level - 設定自訂層級。

Points Distribution - 選擇一個 Distribution 來為最短路徑演算法建立搜尋點。

Shortest Path 支援 Viewport 設定 中的 Draw Debug Information 選項,可用於預覽 Points Distribution 中的點。

  1. 建立一個 Ellipse
  2. 將其 Radius 設為 200,200
  3. 建立一個 Shortest Path
  4. 連接 ellipse.id→shortestPath.inputShape。
  5. 將 Shortest Path 的 Count 設為 20
  6. 右鍵按一下 Start Travel 屬性,選擇 Add Behaviour > Random
  7. 將 Random 的 Maximum 設為 1
  8. 變更 Shortest Path 上 Random Distribution 的 Seed 值。

可以使用 Mask Distribution 確保只有 Shape 內部的點才會被考慮用於最短路徑。