(文章)

摺疊車 3D 配置器的開發拆解

拆成四層做:模型切法、規則攔截、資料來源、配置帶走。最難的是折疊動畫與頭管零件的牽制,效能則是每個決定的前提。

磨人開發團隊・2026-10-15

目錄

開發團隊替 LIDROP 做的線上 3D 配置器,客人在畫面上換什麼,底下那台 3D 整車就立刻換什麼。H6 這台車可換 15 個部位、15 種車架顏色,另有 Pro、Ultra 兩個等級和四種風格。

開發團隊把配置器拆成四層:模型的切法、規則的攔截、資料的來源、配置的帶走方式。最費工的是第一層的折疊動畫與頭管零件,效能則貫穿四層。下面逐層講做法,以及這樣做的理由。

螢幕錄影:尺寸標註、爆炸圖與逐件檢視零件。
圖 13D 配置器拆成四層,難處多半在層與層的接縫
第一層
第二層
第三層
第四層
配置器
1
配置器模型的切法主車加每個部位一支檔,靠零件名稱綁定
2
配置器規則的攔截裝不上的組合先說明原因,再切成可行的組合
3
配置器資料的來源規格以後端資料庫為準,前端不寫死
4
配置器配置的帶走方式配置卡、QR 碼、規格 PDF

第一層:模型的切法

畫面底層常駐一整台 3D 車,上面疊一層透明的選配介面。主車檔只含車架和空的掛點,每個可換的部位各是一支獨立模型,共用同一個座標,直接疊成整車。換款式時不載新檔,只依零件名稱(業界叫節點名)的前綴,把該顯示的顯示、該隱藏的隱藏。

工程師把四層厚板一層一層疊起來

零件名稱是模型和程式之間的合約

零件能跟著車架折疊,靠的是名稱規則:程式每一幀都依零件名稱,把零件綁到主車骨架上。名稱因此就是模型和程式之間的合約。建模師交付新模型時,上架前要先拿零件名稱比對綁定規則,對得上才放進去。

第二款車共用同一套綁定計算,做法是先把這款車的零件名稱還原成 H6 的規範名稱。

折疊動畫:裝備不同,折疊前後的高度就不同

折疊動畫最難的地方,是沒有固定的終點。裝備與配線一換,折疊前後的高度和動畫的停點都跟著變。H6 的主車模型裡有四段折疊動畫:四款頭管分成兩組,每組再分裝與不裝加固腳架。

換的裝備跟著改變的事
輪徑與輪胎305 輪折疊高 635 mm,349 輪折疊高 665 mm,展開的把手高度差 28 mm。地面依輪胎最低點重新貼齊。
頭管款式四款分兩組,各播一段折疊動畫。9° 與 15° 的把手離地高度差 50 mm。
方向輪可升降的款式較高,80 幀的折疊動畫播到第 55 幀就要停,再折車身會壓進輪子。
加固腳架折疊後才放下。裝上時,主車與鏈條都改播另一段折疊動畫。
騎士包掛在座墊下方,折疊時座墊的下降幅度有上限,否則會壓進包裡。
螢幕錄影(日文版):一鍵折疊,車體以動畫收合;打開尺寸標註後,折疊與展開兩種狀態的長寬高同步標示。

所以折疊的終點由當下的裝備決定,不能在程式裡寫成固定值。已經折好時換方向輪,車身會在 0.45 秒內平滑補到新的終點,主車與鏈條走同一段程式,不會斷開。座墊在折疊時自動往下收,展開後回到客人原本設定的高度。

鏈條有自己的骨架與折疊動畫,照該款車架的折疊路徑製作,兩款車不能共用。折疊後兩輪收到同一側,旋轉中心要重新對準整車的可見範圍,轉動時車身才留在畫面中央。

頭管:上面的零件互相牽制

折疊頭管是整台車牽連最多的部位。手握、剎把、變速前撥,以及選配的控制器、儀表、前燈與頭管包,都裝在頭管上。四款頭管的高度與把型不同,其中兩款就差 6.9 cm,換一款頭管,上面的零件全部要換位置。

圖 2換一款頭管,車頭零件、線與折疊動畫同時改變
  1. 客人換一款頭管共四款
  2. 程式依款式決定三項對位點、線與折疊組
  • 手握、剎把、前撥與選配前件
    整組搬到新的對位點同一個對位點帶著全部零件
  • 煞車線、變速線
    改顯示另一條線每款頭管都有預先擺好的線
  • 主車折疊
    改播另一組折疊動畫四款頭管分成兩組

開發團隊以一款頭管為基準,其餘三款各放一個對位點,裝在頭管上的零件都相對這個點計算位置。同一個對位點帶著好幾件零件,數學上無法只挪其中一件;要單獨微調,原則上回到模型修改,不在程式裡疊補丁。

線是例外。煞車線與變速線的彎曲路徑隨頭管而變,沒辦法整條搬過去,所以每款頭管都有預先擺好位置的線:煞車線分線剎與油壓,四款共 8 條;變速線四款各 1 條,電子變速沒有變速線。程式只依頭管、煞車與變速的選擇,顯示對應的那一條。驗收時逐頂點量線與剎把的距離。

鏈條先載好,切車款重新載入整頁

鏈條是唯一換一次就整顆重新載入的部位,換齒數就等於換一支模型。所以進場就預先載好同車款的全部鏈條,之後只切換、不卸載。

切車款則是重新載入整頁,把記憶體真正釋放。3D 的改動以真機驗證為準,因為自動化測試環境算繪 3D 並不穩定。

客製模式的實際畫面(日文版):底部一列是可換的部位,這裡選到輪胎,面板列出粗細與胎紋。
客製模式的實際畫面(日文版):底部一列是可換的部位,這裡選到輪胎,面板列出粗細與胎紋。

第二層:規則的攔截

零件不是都能同時裝上。LIDROP 裝不上的組合,由一張規則表攔下:客人點下去,畫面先說明原因,確認後自動切成可行的組合,例如 E-Bike 只能裝在 Pro。規則放在前端而不是資料庫,因為資料庫的條件只能寫成「其餘分類選了什麼」,表達不了「依尺寸對應」。

圖 3裝不上的組合先攔下並說明原因,確認後才切換
點選
攔下
說明
確認
切換
客人
配置器
1
客人點到裝不上的零件
2
配置器規則表攔下裝不上的組合先擋住
3
配置器說明原因
4
客人確認
5
配置器自動切換例:E-Bike 只能裝在 Pro

規則裝和拆兩個方向都要測

「A 需要 B」是最常見的規則,選了 A 就得有 B。這類規則要判斷「這次點的是哪一件」,才分得出客人是在裝還是在拆。型別檢查看不出這種邏輯對不對,只有實際點過才知道,所以裝和拆兩個方向都要測。

第三層:資料的來源

選項的名稱、規格、重量、縮圖都是資料。LIDROP 的規格最早由 Excel 整理,現在以後端資料庫為準,另放一份靜態備援。後台只能改名稱、縮圖、重量和規格,部位數量由模型決定,要多一個部位得先有新模型。

成員把一張張卡片歸進大櫃子的抽屜

同一份程式碼產出國際站與中國站,介面有繁中、簡中、英、德、日、韓六種語言。選項名稱的翻譯只認後端資料庫的六語欄位,後台有即時警告與稽核腳本,缺翻譯不用等客人看見才發現。

前端不寫死規格,抽不到就顯示「—」

前端不寫死規格常數,名稱、重量、速別、齒數都從資料來。抽不到速別或齒數時,配置卡顯示「—」,不拿預設值頂替。配置卡和規格 PDF 會被客人帶走,空白比印錯好。

圖 4前端不寫死規格,同一份程式碼依資料產出國際站與中國站

資料來源

  • 後端資料庫規格以此為準,含六語欄位
  • 靜態備援另放一份
規格

前端

  • 同一份程式碼介面有六種語言
依資料產出

站台與客人帶走的文件

  • 國際站
  • 中國站
  • 配置卡
  • 規格 PDF

抽不到時配置卡的速別、齒數顯示「—」,不拿預設值頂替。

尺寸框和官方數字要分開

畫面能標出車的尺寸。顯示的數字以官方公布值為準,畫出的外框則用模型幾何再手動微調,兩者分開。

使用者自己填的資料

適配分析依身高、腿長、臂長驅動 3D 騎士,標出關節角度與前後輪重量分配。

拖動身高,3D 騎士即時換身形,膝、髖角度與前後輪重量分配跟著更新。

肢長不好量,所以有「用照片填入肢長」:姿態辨識模型跑在使用者自己的裝置上,模型檔由開發團隊自己放,照片不離開裝置。身高填錯,數學上擋不住,所以結果一律可改,並明說是估計。文案守一條原則:只揭露,不推薦,不打分、不標紅黃綠、不寫「建議調整」。

第四層:配置的帶走方式

配置卡有三視角整車圖、逐件規格與重量、QR 碼和規格 PDF。用另一支手機掃 QR 碼,會開出同一台車。

專屬配置卡(日文版):三視角、QR 碼、複製連結,以及依位置搜尋附近經銷商的按鈕。
專屬配置卡(日文版):三視角、QR 碼、複製連結,以及依位置搜尋附近經銷商的按鈕。

連結要短,QR 碼才拍得動

整套配置要塞進網址。最直覺的做法是轉成 JSON 再用 base64 編碼,網址會超過一千字元,QR 碼密到手機拍不動。去掉可以推導的前綴,只留緊湊字串,約 120 字元。

圖 5去掉可推導的前綴後,網址從超過 1,000 字元縮到約 120 字元
  1. JSON 加 base64超過 1,000 字元QR 碼密到手機拍不動
  2. 去掉可推導的前綴
  3. 緊湊字串約 120 字元

貫穿四層的前提:效能

3D 配置器的效能排在功能之前。整車由十幾個部位的模型疊成,折疊與換件時零件每一幀都要依骨架重算位置,而且手機也要開得起來。畫面一卡,選配流程就斷了。LIDROP 實際用上的做法如下:

  • 首屏下載量分輪盤點。建置後讀取所有資源請求,依副檔名分類,每一輪只動執行期用不到的位元組。第一輪從約 57 MB 降到約 43 MB,第二輪降到約 37 MB;後續版本再由 36.5 MB 降到 32.5 MB,其中 3D 模型檔約占 80%。
  • 壓縮格式看下載加解碼的總時間。檔案最小的格式不一定最快,也不一定最省記憶體,每種編碼都從原始檔重壓再比較,數字放在3D 模型優化前後對照。
  • 純色材質不用高解析度貼圖。解碼後逐張檢查,整張純色的貼圖縮成 4 × 4,畫面不變。
  • 車架顏色的貼圖選到才載入,開場不全部預載。
  • 車靜止時停止算繪,轉動、折疊、換色時才喚醒。
  • 手機維持 1K 貼圖;桌機鏡頭拉近才換成 4K。

量法與預算的完整流程,另見Web 3D 效能工程。

付款前先看見成品的另一個例子,見訂製招牌的實景預覽。

不適合的情況

以下是開發團隊的判斷。這幾種情況,不做配置器比較合理:

  • 只想讓網站好看。配置器的工夫幾乎都在四層的接縫,視覺只占一小部分。
  • 產品單純,一張照片就講得完。沒有可換的零件,3D 只是多一道載入。
  • 選項少到型錄就夠。幾個顏色、幾個尺寸,一頁型錄比配置器清楚,也不用維護模型與規則。
  • 沒有可信的規格資料來源。資料還散在各人的 Excel、版本不一致時,先整理資料。配置器會把錯誤直接印在客人帶走的配置卡上。

評估前先備好的三樣

想評估做 3D 配置器,先備好這三樣:

  1. 完整的選項清單,註明哪些零件互相排斥。
  2. 每個選項的規格資料,以及誰負責維護。
  3. 3D 模型的來源:已有建模檔,或需要從頭建模。

備好之後到聯絡頁留下產品與現有資料的簡述,開發團隊會先看選項與資料,判斷四層各缺什麼。要比較廠商時,可請廠商就這四層逐層說明做法,另一篇軟體外包廠商的評估表有更多判斷方式。

(聯絡)

Start a project.

三個步驟,取得可判斷的做法與預算區間。

  1. 01預約第一場會議:選擇時段,不需要完整規格。
  2. 02線上諮詢 15 至 30 分鐘:取得做法方向、預算區間與時程草案。
  3. 03檢視素材後,約 3 至 5 個工作天提供報價單暨交付規格明細表。
信箱
hello@polish-design.com.tw
通訊地址
(104) 台北市中山區植福路191-1號3F

預約第一場會議

週一至週五 16:00–18:00線上 30 分鐘

先選時段,再用 Google 帳號或信箱確認,預約完成可加入行事曆。

選擇時段

或先送出資料

還沒想好時段,可以先留下專案內容,專人以信箱回覆。送出後也能接著預約。

補充資料(選填):服務項目、目前階段、現有連結、得知管道

資料僅用於本次專案評估。

ISO/IEC 27001:2022 證書

(Certificate)

ISO/IEC 27001:2022

驗證機構
ARES International Certification
驗證範圍
互動沉浸式 3D 系統之開發流程,及網路與基礎設施之維運與管理。

到驗證機構網站查證