KID RACE · 功能查詢與操作指南
讓企劃看懂「世界彎曲」

11 類效果總覽 · 每個欄位的意思 · 正式專案的四值操作

先知道這件事:本專案目前固定 Classic Runner/Z Positive/ID 1。日常請改設定資產的四個數值,重新開局套用。

Curved World 地景彎曲:企劃操作說明

查核日期:2026-11-04(Asia/Taipei)|整理:COORD/主控整合

適用專案:E:\Project\KiddieRides\kid_race_client。本文是現有功能的查詢與操作說明,不是新增玩法需求或實作核准。

1. 這個功能是做什麼的?

附圖的 Curved World Controller 是「世界彎曲效果控制器」。它讓原本筆直、平坦的道路與地景,在畫面中看起來向左、向右、向上、向下彎,或呈現小星球、捲曲、扭轉的視覺效果。

可以把它想成:遊戲仍沿著原本的直線賽道運作,呈現給玩家的風景則經過彎曲處理。 遠處的彎曲通常比近處明顯。

原廠也將它定義為「繪製畫面時改變模型頂點位置」的效果,而非把原模型永久改造成彎曲模型。原廠功能說明

2. 最重要:套件選單與本專案的可用範圍不同

比較項目 附圖顯示的套件能力 正式專案目前的接法
彎曲種類 11 類、合計 31 個方向版本 固定 Classic Runner/Z Positive
控制群組 Bend ID 1~32 固定 ID 1
日常調整位置 控制器 Inspector 的各種參數 Assets/Rider/Resources/RiderWorldBendSettings.asset
套用時點 一般控制器可自動更新,亦可交由程式更新 每次準備新一局時讀取設定
哪裡看效果 取決於套件及相機接法 正在比賽的主遊戲相機;選擇頁、Scene 視窗及其他相機保持不彎
保存方式 取決於修改的是場景、預製物件或執行中的物件 在停止 Play 時修改設定資產並保存;重新開局套用

附圖的物件名稱「World bend controller」與本專案程式建立的物件同名。程式會在準備比賽時建立它,結束/釋放該局時清除。 這能解釋為什麼不應把它當作長期設定的主要入口;但本次沒有連接當時的 Editor,不能只靠截圖證明該物件的即時狀態。

本專案還保留原工程的特殊修改:負責畫面彎曲的共用檔案直接指定 ClassicRunner_Z_Positive/ID1。因此,只改 Bend Type 或 Bend ID,不能保證遊戲就會換成對應效果,甚至可能失去原本的彎曲。其他種類需由工程確認並調整材質、繪圖程式及控制流程,不能當作企劃目前已可直接切換的功能。

以上由本機的控制程式及繪圖來源確認,並非只照套件介紹推測。詳見第 10 節來源。

3. 企劃日常操作:先看這四個值

在 Unity 下方的 Project 視窗依序打開 Assets → Rider → Resources,選取 RiderWorldBendSettings。右側 Inspector 會顯示以下四項。

設定名稱 白話意思 怎麼調 目前檔案保存值
Horizontal Strength 前方道路向左/向右彎的強度 負數向左、正數向右;0 不左右彎。絕對值越大越明顯 -2.2
Vertical Strength 前方道路向下/向上彎的強度 負數向下、正數向上;0 不上下彎。絕對值越大越明顯 -1.8
Horizontal Offset 往前多遠後,才開始左右彎 0 從基準點前方開始;越大,近處保持筆直的範圍越長 0
Vertical Offset 往前多遠後,才開始上下彎 與上項相同,但獨立控制上下彎曲的起點 0

上述左右與上下解釋適用於本專案目前的 Z Positive 前進方向及一般遊戲視角,不能直接套用到所有其他模式。

數值限制與單位

建議操作順序

  1. 先停止 Play,記下四個原值。本次查到的是 -2.2、-1.8、0、0;若之後有人改過,應以操作當下的值為還原依據。
  2. 選取 RiderWorldBendSettings。先只改一個數字,才能判斷差異來自哪裡。
  3. 保存專案資料(例如選單 File → Save Project),再進入遊戲並開始新一局。
  4. 在 Game 視窗看比賽主畫面。選車/選關頁和 Scene 視窗不彎,是目前設計的正常結果。
  5. 觀察近處車道、前方障礙、可拾取物與道路是否容易辨認。記錄主題、四個值及觀察結果。
  6. 需要再調時停止 Play,修改、保存,再開新一局。不要只按暫停期待設定重新讀取。
  7. 試調完若不採用,填回開始前記下的四個值、保存,再以新一局確認。

本輪僅製作操作說明,沒有代為執行上述改值或 Play 測試。

想得到什麼畫面,先改哪一項?

以下是便於理解的試調提案,未經本次遊戲實測,也不是量產推薦值。

想要的效果 可先嘗試 預期差異
左彎減輕 Horizontal Strength 由 -2.2 改為 -1.0 左彎仍存在,但減弱
只保留上下彎 Horizontal Strength 改為 0 不再額外左右偏移;上下仍照原值
往右彎 Horizontal Strength 先試 +1.0 前方逐漸往右偏
遠處不要往下沉 Vertical Strength 改為 0 移除上下彎曲;左右仍照原值
近處維持直線,遠一點才彎 對應 Offset 由 0 先試 10 該方向前 10 個世界單位不彎,之後開始彎
比較完全筆直的畫面 兩個 Strength 都改為 0 移除本功能帶來的左右及上下彎曲

「向上彎」只改呈現方式,不會讓車子真的爬坡;「向右彎」也不會自動讓道路生成右轉關卡。

4. 附圖 Bend Type:11 類選項逐一說明

下表說明完整套件的效果概念及對應欄位。除了 Classic Runner/Z Positive,本專案尚未接通其他種類供企劃直接切換。 類比用來理解外觀,並非宣稱已具備相同玩法。

英文選項/中文理解 畫面會呈現什麼 選擇後可調什麼 方向子選單
Classic Runner/跑酷式遠景彎曲 近處較直,越遠越向左右或上下偏,適合表現遠方道路延伸 Pivot Point;Horizontal 的 Size/Offset;Vertical 的 Size/Offset X Positive、X Negative、Z Positive、Z Negative
Little Planet/小星球式地景 從中心往周圍彎,像站在小星球上;不是自動生成完整球體 Pivot Point;Curvature 的 Size/Offset X、Y、Z
Cylindrical Tower/圓柱塔式彎曲 在水平側向形成像繞柱面的曲率;不是自動建立可繞行的圓柱塔關卡 Pivot Point;Curvature 的 Size/Offset X、Z
Cylindrical Rolloff/圓柱滾落式彎曲 沿指定軸的兩側向上下捲落,看起來像地面越過圓筒;與只作用於單側的 Classic Runner 不同 Pivot Point;Curvature 的 Size/Offset X、Z
Spiral Horizontal/水平螺旋彎曲 道路在水平面向側邊捲成弧線,像平面繞彎 Pivot Point;Rotation Center;Angle;Minimum Radius X Positive、X Negative、Z Positive、Z Negative
Spiral Horizontal Double/雙段水平螺旋 軸向兩側各有一組水平彎曲,可以分別調整 Pivot Point;兩組 Rotation Center、Angle、Minimum Radius X、Z
Spiral Horizontal Rolloff/保留中央直線的水平螺旋 中央保留不捲曲區域,兩端用共用角度與半徑條件向水平方向捲曲 Pivot Point;Rotation Center;Angle;Minimum Radius;Rolloff X、Z
Spiral Vertical/垂直螺旋彎曲 道路在垂直面捲起或翻落,像側面看的大弧線 Pivot Point;Rotation Center;Angle;Minimum Radius X Positive、X Negative、Z Positive、Z Negative
Spiral Vertical Double/雙段垂直螺旋 軸向兩側各有一組垂直彎曲,可以分別調整 Pivot Point;兩組 Rotation Center、Angle、Minimum Radius X、Z
Spiral Vertical Rolloff/保留中央直線的垂直螺旋 中央保留不捲曲區域,兩端用共用角度與半徑條件向垂直方向捲曲 Pivot Point;Rotation Center;Angle;Minimum Radius;Rolloff X、Z
Twisted Spiral/扭轉螺旋 景物沿指定旋轉軸逐漸扭轉,並可疊加左右/上下彎曲,像扭轉的走廊 Pivot Point;Axis;Curvature、Horizontal、Vertical 各自的 Size/Offset X Positive、X Negative、Z Positive、Z Negative

X、Y、Z、Positive、Negative 是什麼?

X/Y/Z 是 Unity 世界的座標方向,並不是畫面按鈕的左/右/上/下。一般可先把 X 理解為場景左右,Y 為高度,Z 為場景前後;相機轉向後,畫面方向仍可能不同。

在 Classic Runner 與單側 Spiral 等模式中:

Positive 不是「向右彎」,Negative 也不是「向左彎」。它們主要選擇哪一側的場景接受處理,實際彎向還與強度、旋轉中心等參數有關。

沒有 Positive/Negative 的版本不能理解成「無方向」:Cylindrical、Double、Rolloff 類會處理指定軸兩側;Little Planet 的字母則選擇球面式彎曲的方位。應按對應模式理解,不能把所有字母都當成車子前進方向。

5. 附圖 Inspector 欄位解說

上半部:Unity 通用欄位

畫面欄位 是什麼/可調整什麼 本功能的使用提醒
World bend controller 物件名稱,可用來在 Hierarchy 找到它 名稱不是彎曲參數;本案程式建立同名物件
名稱左邊勾選框 整個物件是否啟用 停用會影響控制器運作;日常比較筆直畫面可改兩個 Strength 為 0
Static Unity 對靜態物件的設定 不是固定彎曲效果的開關,日常調參不需要修改
Tag/Layer 物件分類與分層 不是選擇哪些地景跟著彎的群組設定
Transform → Position 控制器物件在場景中的位置 不能直接當成 Pivot Point。此控制器一般讀取獨立的 pivot 欄位;本案每次繪圖前還會由程式指定 pivot
Transform → Rotation/Scale 控制器物件旋轉與縮放 不等同彎曲角度、彎曲強度或世界大小
Curved World Controller 左側勾選框 控制元件是否啟用 不要拿它代替正式設定資產中的四個參數

元件內:識別與基準點

欄位/區塊 白話說明 可怎麼操作與注意事項
Curved World Method Identifier 「要控制哪一種效果、哪個群組」的標題 標題本身不能調
Bend Type 彎曲種類及方向 詳見第 4 節。本案固定 Classic Runner/Z Positive
Editor 按鈕 打開 Curved World 的套件管理視窗 用來查控制器、材質、繪圖設定等;不是套用效果或儲存按鈕。包含會改寫資產的工具,日常四值調整不需使用
Bend ID 同一類彎曲的控制群組編號 套件標示 1~32。控制器與對應材質/繪圖程式必須接到同組才有效;不是關卡編號、強度或難度。本案固定 1
Pivot Point 彎曲計算的基準點區塊 可指定物件,或直接填世界座標
Pivot Point → Transform 指定一個場景物件作為基準點 指定後隨該物件世界位置更新,下面 Position 會鎖住;不代表所有效果都隨其旋轉或縮放
Pivot Point → Position 沒有指定 Transform 時,直接填 X/Y/Z 是世界座標。本案由程式寫成 (0, 0, 玩家 Z),每次繪圖更新,手動改值會被取代
Create 尚未指定 Transform 時出現的按鈕 建立基準點物件並自動指定;初始世界位置取自控制器物件。會新增場景物件,本案日常調參不需要按

Bend Settings:Classic Runner 的兩列

每列其實有 Size 與 Offset 兩個數值;截圖選單蓋住了右半邊。

列名 Size Offset
Horizontal 左右彎曲的強度。Z Positive 下負數左、正數右 左右彎曲延後開始的距離
Vertical 上下彎曲的強度。Z Positive 下負數下、正數上 上下彎曲延後開始的距離

套件控制器的 Size/Offset 是一般小數輸入欄,並沒有自動套上本案設定資產的 -3~3/非負限制。日常應遵守第 3 節的正式入口及限制,不要因控制器可以輸入更大值,就視為本案支援。

Additional:更新方式

欄位 勾選的意思 本專案現況
Disable In Editor 沒有按 Play、處於編輯狀態時,不顯示這個控制器的彎曲;不是停用正式遊戲 程式建立控制器時設為 true。Scene 視窗的隔離還由本案相機流程額外控制
Manual Update 交由其他程式決定何時更新控制器,而不是控制器自己每幀自動更新 本案設為 true,主遊戲相機開始繪圖時才更新,畫完後清回中性狀態。不是叫企劃每次按某個手動更新按鈕

若在本案任意取消 Manual Update,可能讓控制器自行更新與相機隔離流程互相干擾,不屬於日常畫面強度調整。

Inspector 最下面的 Add Component 是 Unity 新增元件入口,不是增加另一種彎曲效果的專用按鈕。

6. 切換其他模式後,新增欄位代表什麼?

本節用於理解套件及與工程溝通;不是本案其他模式已完成接線的證明。

欄位 白話說明 數值與操作注意
Curvature → Size Little Planet/Cylindrical 類的曲率強度;Twisted Spiral 中則控制逐漸扭轉的強度 前幾類以正負改變彎向、絕對值改變強度。Twisted 的意義不同,不能一律當成「多少度」
Curvature → Offset 對應曲率開始作用的位置/保留區域 在雙側曲率類,圍繞基準點保留中央範圍;在單側扭轉類,延後開始扭轉。不是所有模式都與 Classic Runner 完全相同
Rotation Center → Transform/Position 螺旋旋轉中心的位置;中心與道路的相對位置會影響彎向及半徑 指定物件後 Position 鎖住,改移動該物件;不指定物件時直接填世界座標。Create 會新增並指定物件
Rotation Center #1/#2 Double 模式兩側各自的旋轉中心 各有自己的 Angle 與 Minimum Radius;可獨立調整兩端,不是增加第二名玩家
Angle 螺旋彎轉的角度,以度為單位 Inspector 不允許小於 0,沒有另設最大值。90/180/360 是角度概念,不表示本案已驗證這些值;彎向還取決於旋轉中心所在側
Minimum Radius 螺旋彎曲半徑的下限 越小允許彎得越緊;越大限制最小圈的大小。它是半徑下限,不是直接決定所有物體的半徑。Inspector 限制為非負
Rolloff 中央不捲曲區域往兩端延伸的距離 不是模糊、透明淡出或動畫時間。以 Z 版為例,中心 Z 前後各保留 Rolloff,中央總長 2 × Rolloff;越大,兩端開始捲曲的位置越遠。Inspector 限制為非負
Axis (Transform) Twisted Spiral 的扭轉軸取自指定 Pivot 物件的前方向 此模式下旁邊自訂向量不能編輯。需指定合適 Pivot;未指定時不要假設它一定會採用預期方向
Axis (Custom) 直接填寫 X/Y/Z 扭轉軸向量 用來指定方向,不是物件位置;向量長度不會由此模式自動歸一化
Axis (Normalized) 自訂軸向量先換算為長度 1 再使用 保留方向、去掉長度差異;不要填 (0,0,0)。編輯器對近乎零的軸會顯示紅色提示

Angle、Minimum Radius 或 Rolloff 的「可輸入 0」只是欄位限制,不表示各種零值組合都有正常畫面。螺旋計算有半徑、角度相關的除法,正式採用前需另外驗證邊界值。

7. 「強度」與「從多遠開始」的差別

以本案現在的 Classic Runner/Z Positive 為例:

Size 改的是開始彎之後有多彎;Offset 改的是先直走多遠才開始彎。

前方景物離基準越遠,位移按距離的平方增加。例如距離變成 2 倍,額外彎曲位移約為 4 倍,不是 2 倍。這也是遠景看起來特別容易大幅偏移的原因。

給需要精確對照的人:水平與垂直各自計算 d = max(0, 景物世界 Z - 玩家世界 Z - 對應 Offset);額外位移為 對應 Strength × 0.001 × d²,水平加到世界 X、垂直加到世界 Y。這是畫面繪製的座標變化,不是碰撞座標變化。

示例:水平 Strength = -2.2、Offset = 0,前方 10 單位的額外水平位移是 -0.22,20 單位是 -0.88。若 Offset 改為 10,前方 10 單位仍不偏移、20 單位才偏移 -0.22。以上是程式公式計算,不是本次遊戲測試數據。

8. 常見問題與排查

現象/疑問 優先確認
改了設定,但這局沒反應 四個值只在新一局準備時讀取,需重新開局
Game 比賽畫面會彎,Scene 卻是直的 目前相機隔離設計如此,應從比賽 Game 畫面判斷
改了控制器,下次又變回去 執行中的控制器會被清除/重建;長期設定應改資產檔
改 Bend Type 或 Bend ID 沒出現新效果 本案共用繪圖來源固定 Classic Runner/Z Positive/ID 1,需要工程接通其他模式
改控制器最上面的 Position,看不到效果跟著走 Transform 不是獨立 Pivot 欄位;本案又會每次重寫 pivot
為何 Tag/Layer 沒有決定哪棟建築會彎? 彎曲取決於材質採用的繪圖程式及對應控制群組,不是控制器物件的分類標籤
道路彎了,道具或角色卻沒一起彎 需檢查材質是否支援並接到相同效果。交工程排查,避免自行批次替換材質
左彎變強後,遠處道路/障礙不易辨認 先減弱水平強度或加大對應 Offset,再以相同主題比較近中遠景
景物彎入畫面卻突然消失 可能涉及相機事先剔除畫面外物件的範圍;本案已有擴大判定範圍的處理,仍需提供位置與情境給工程確認,不能單憑此現象判定原因
道路看起來上坡,車子怎麼沒有抬頭? 功能只改視覺,沒有自動改角色姿勢、地面高度或碰撞
能不能每隔幾秒自動換彎向? 套件可由程式控制,但目前這四值按每局讀取。自動變換需另做流程設計與實作,現況不能當作已有功能
能不能每個主題不同、每位玩家不同? 本案目前共用指定的設定資產,沒有在這個入口提供主題/玩家分開配置。套件具備分組控制概念不等於本案已做好對應流程
套件說支援手機,是否就符合 RK3288 的 30 FPS? 不能據此判定。目標 Android 機台仍需量測;本次沒有實機效能結論

9. 企劃調整記錄與確認方法

每次可以直接記成一列,方便工程與美術重現:

日期/操作者 主題/相同觀察位置 水平強度 垂直強度 水平 Offset 垂直 Offset 觀察/是否採用
待填 待填 待填 待填 待填 待填 待填

建議比較同一主題與相近距離的畫面,分別確認:近處車道是否清楚、遠處障礙與道具是否可辨識、玩家與道路是否一致彎曲、暫停恢復有無跳變、重新開局是否讀到設定。設定保存後,重新開啟專案再檢查四值,才能確認沒有只改到暫時存在的物件。

這些是後續操作時的確認方法,不是已通過的測試結果。

10. 查核依據與技術對照

本次正式專案分支 prototype,讀取時提交 b0f507cc3b1b9620c847fa18a55bf7a8d449526c,開始調查時工作區乾淨。Unity 版本為 2022.3.76f1;本案文件及套件資訊記載 URP 14.0.12。匯入的 Curved World 來源版為 2023.3,本專案包裝版本 0.1.0。網路上的新版文件只作功能背景,欄位與限制以本機這份程式為準。

以下路徑均相對於 E:\Project\KiddieRides\kid_race_client。網頁版附有可展開的來源核對表與原始附圖。

本文內容 本機來源/定位
既有地景功能、每局套用、相機隔離 Documentation/WORLD_BEND.md
四值的範圍、有效性及程式初始值 Assets/Rider/Runtime/RiderWorldBendSettings.cs:欄位與 IsValid
當前檔案的實際保存值 Assets/Rider/Resources/RiderWorldBendSettings.asset
建立同名控制器、固定模式/ID、手動更新、pivot 追蹤玩家 Z Assets/Rider/Runtime/RiderWorldBend.cs:Bind、Apply、BeginCamera、EndCamera、Clear
每局讀取設定的時點 Assets/Rider/Runtime/RiderGame.cs:PrepareRun、ReleaseRun
31 種方向版本、欄位及更新行為 Packages/com.kidrace.curved-world/Scripts/CurvedWorldController.cs:BEND_TYPE、UpdateShaderdata、ManualUpdate
Inspector 文案、欄位顯示與輸入限制 Packages/com.kidrace.curved-world/Editor/Script Editors/CurvedWorldControllerEditor.cs:OnInspectorGUI、Draw_PivotPoint、Draw_AngleAndRadius、Draw_Rolloff、Draw_PivotPointAxis
方向子選單的實際組成 Packages/com.kidrace.curved-world/Editor/Utilities/EditorUtilities.cs:GetBendTypeNameInfo、BuildBendTypesMenu
本案寫死 Classic Runner/Z Positive/ID 1 的來源 Packages/com.kidrace.curved-world/Shaders/Core/CurvedWorldTransform.cginc
平方位移、Double 兩側、Rolloff 中央區域、Twisted 扭轉算法 Packages/com.kidrace.curved-world/Shaders/Core/Core.cginc:各模式對應函式
套件來源版與本案相容修改 Packages/com.kidrace.curved-world/README.md、package.json
原廠隨包手冊 Packages/com.kidrace.curved-world/Documentation/Manual.pdf:第 6~14 頁、23~24 頁、30~38 頁(按 PDF 頁碼)

外部參考:原廠功能說明、原廠在 Unity 論壇的功能展示、Unity Asset Store 套件頁。不以商品頁現行版本取代本案匯入版本。

本次已確認與未驗證的界線

文件紀錄

2026-11-04|COORD/主控整合:初次整理附圖 11 類選單、各參數與方向子選項,補充本專案固定模式限制、四值設定入口、套用時點、試調提案及查核來源。屬現況說明文件,未變更產品需求。