JSG12 戰鬥陀螺 — 完整企劃書
TM 小曹 · v0.1 草案(2026-07-22)· 核心機制以 mechanics.md/cp0-briefing.md 為 SSoT,本文件會持續迭代

JSG12 戰鬥陀螺

鬥陣陀螺 / Top Brawl · 2P 即時對戰體感遊戲 · 一個核心動作(搖動手環)
類型 體感競技 / 2P 對戰
核心操作 持續搖動手環維持能量
核心數值 能量 = 轉速 = 生命;傷害另算
CP0 2026-07-16 已開完
CP1 2026-08-14
CP2 2026-09-11(功能確認)

1遊戲核心

2P 即時對戰體感遊戲。玩家持續搖動手環維持陀螺能量——搖越猛,陀螺轉速越快、也越耐打。兩顆陀螺在碗式競技場中依真實陀螺物理(碗底向心力 + 切向驅動力)自主移動、正面對撞掉血,搶奪場上能量球(吃球回能量、滿格吃球觸發「爆衝」)。

開局有三選一抽卡(三張命名陀螺:攻擊型 / 耐力型 / 充能型),策略只在開局幾秒,對戰中零額外操作——v1 只有一個核心動作(搖動)、一個最小機制。

📌 能量=轉速=生命;攻擊傷害另算
這是本作最容易被誤解的一點:同一個 Energy 數值同時驅動「移動速度/自轉快慢」與「還能撐多久」;但打人多痛不是直接看當下能量,而是由固定的碰撞公式決定(見「核心機制」分頁)。2026-07-16 CP0 拍板移除「能量差加成」後,能量高不再直接等於打得更痛,只等於更耐打、蓄大招更快、跑得更快。

2設計哲學

🕹️ 一個核心動作

全程只有「搖動手環」一個操作輸入;大招(Burst)、爆衝(Overdrive)、衝刺(Dash)三個獨立系統皆由程式依能量或搖動強度狀態自動觸發,不加第二顆操作鍵,避免手環偵測訊號互相干擾。

⚖️ 能量=轉速=生命;傷害另算

同一能量值驅動移動與存活;攻擊傷害走固定的碰撞公式與守方防禦結算,能量差不再是傷害來源。

🌀 簡化物理勝過真實模擬

對撞/移動走「碗式速度場」簡化模型(非真 rigidbody),研究真實戰鬥陀螺 gyroscopic precession 物理後得出的移動模型,兼顧手感與工程成本。

🎚️ 調味不翻盤

三張命名陀螺數值差異只影響手感節奏(攻擊/耐力/充能傾向),不做出「這張卡就是強」的失衡。

🛡️ 防滾雪球

削甲走固定值(不隨大招放大)、爆衝破表有上限、大招回落地板都是刻意設計的防線。2026-07-16 CP0 補上最後一塊:能量差對撞加成整條移除(試玩證實它是滾雪球主因)。

3單局流程(遊戲流程總覽)

JSG12 沒有專屬大廳(v2.6 上架,大廳已於 v2.5 廢除),玩家在平台層選完模式/連線後直接進入下列流程:

單局完整流程
平台層 pre-game
模式選擇+藍牙連線
開局抽卡
三選一,2P 同步各自操作
倒數+發射
3→2→1→GO!拋竿決定力道
對戰
HUD 持續顯示,零額外操作
終結演出
力盡倒下/轟飛終結/擊碎終結
結算頁
戰報式,鈕3→重新選卡
🔁 對戰中「零額外操作」的具體意思
玩家只需要持續搖手環;大招/爆衝/衝刺三個系統全部由程式依當下數值自動判定觸發,沒有第二顆按鍵。暫停走 _shared/pause.md,結算走 _shared/result-screen.md(雙人流程:回藍牙列表/再次挑戰/重新選卡)。

4三張命名陀螺(開局抽卡)

同一卡池三張,2P 各選一張(可選同張=Mirror Match)。策略只在開局選卡,對戰中零額外操作。完整數值見「核心機制」分頁。

攻擊型
赤獄戰斧 Crimson Axe
「一擊制勝,脆但兇」
攻擊倍率
1.25
防禦係數
0.05
護甲上限
35
擊飛抗性
0.85
耐力型
玄武磐盾 Basalt Aegis
「穩如泰山,越打越硬」
攻擊倍率
0.9
防禦係數
0.3
護甲上限
100
擊飛抗性
1.35
充能型
紫電迅雷 Volt Tempest
「反應飛快,搶先蓄力」
攻擊倍率
1.0
防禦係數
0.12
護甲上限
≈51
擊飛抗性
1.0
能量增益
×1.3
⚠️ 已知平衡問題(2026-07-16 CP0 試玩觀察)
衝能型(紫電迅雷)偏強——充能快→先搶第一波優勢,幾乎必勝。能量差加成移除後預期會緩解但未驗證,平衡調試列 CP1 前企劃/程式待辦

5里程碑

里程碑日期交付內容
CP02026-07-16設計確認簡報,三方對齊機制/程式/里程碑(已完成)
CP0→CP1 開發期7/20 ~ 8/7核心玩法 ET 移植、開局抽卡 UI 實裝、鏡頭系統程式骨架、美術模型/場景色模
CP12026-08-14核心玩法可玩+雙手環穩定度初驗+3 卡陀螺建模/戰鬥盤背景色模+鏡頭系統程式骨架完成
CP1→CP2 開發期8/17 ~ 9/4UI 對戰 HUD 正式視覺、美術 Timeline 終結特效/演出(三支動畫)
CP2(功能確認)2026-09-11三種終結+大絕/彈出 timeline 完整演出+鏡頭系統整合+UI 正式視覺+全套音效
Alpha9/11 ~ 9/25QC 測試 + 全員修正

完整任務列表見甘特圖 Google Sheet 開發組分頁;詳細決策脈絡見 games/JSG12-battletop/decisions.mdoverview.md

核心機制

移動物理 · 能量系統 · 對撞傷害結算 · 傷害疊加規則 · 三大獨立系統

1移動物理 — 碗式速度場模型(v3)RD

不是 AI steering,是速度場驅動的簡化物理模型——研究真實戰鬥陀螺 gyroscopic precession(進動)物理後定案。每顆陀螺只有「位置 + 速度向量」,沒有「朝向 + steering force」。

碗底向心力 + 切向驅動力(俯視示意)
arena center 1P gravity(向心力) orbitStrength(切向力) 合加速度 r
向心力隨 rNorm²(離中心距離的平方)增強——越靠場地邊緣,被推回中心的力道越強;切向驅動力隨能量比例增強(能量越高、繞行動力越強)。兩者合成後,陀螺會自然沿場地邊緣「繞圈」而非直衝中心。
// 完整移動公式(來源:ArenaSim.MoveTop)
r(離場地中心距離) = |position(位置向量)|
rNorm(正規化半徑) = r / arenaRadius(場地半徑 6)
inward(朝中心單位向量) = -position / r

gravity(碗底向心力強度) = bowlGravity(碗底向心係數 160) × rNorm²
orbitStrength(切向繞行力強度)
  = orbitForce(切向力係數 40) × lerp(minPowerFactor(0.3), 1, clamp(Energy/100, 0, 1))

acceleration(合加速度)
  = inward × gravity
  + tangent(切向單位向量) × orbitStrength
  + seekPull(能量球/爆衝追擊力)
  + jitter(隨機擾動,最大 perturbation=1)

velocity(新速度) = velocity(舊速度) + acceleration × dt
maxSpeed(當幀速度上限) = moveSpeedMax(最高移動速度 22) × lerp(minPowerFactor, 1, clamp(Energy/100,0,1))
velocity *= 1 - drag(阻力係數 2.2) × dt
position(新位置) = position(舊位置) + velocity × dt

速度上限對照

能量狀態能量範圍速度上限
一般0 ~ 1006.6 ~ 22
爆衝(Overdrive)150(瞬間設定)最高 33

超出場地半徑(6)時位置夾回場緣,速度依牆面法線反射後乘 wallBounce(0.6)

為什麼 1P/2P 會自然對撞

1P 順時針、2P 逆時針起始相位不同 → 自然正面交會碰撞,不靠「AI 判斷該不該撞對方」。能量球微引力(orbAttraction)取代主動搶球邏輯,隨機擾動(perturbation)破對稱避免死鎖。

自動追蹤邏輯(不是完整 AI)

狀態追蹤目標拉力公式
一般狀態最近的能量球seekPull = normalize(球位置−自己位置) × orbAttraction(8)
能量 ≥ 90%(觸發前)最近的能量球(增強)拉力再乘 orbSeekMul(2.2) → 實際 17.6
爆衝期間預測對手攔截點aimPosition = 對手位置 + 對手速度 × leadTime(≤0.5s)seekPull = normalize(aimPosition−自己位置) × chaseForce(35)
🌀 移動邏輯:繞圈 vs 直衝(2026-07-09 會議已對齊)
會議結論是保留有限度的繞圈,靠 dash/追能量球打破死循環,不是改成純直衝——這正是現有設計的精神(向心力+切向驅動力造成自然繞圈,dash 與追球打破循環)。原型走過兩輪失敗(「碗式同心圓」永不交會、「平盤反追尾」仍會追尾死鎖),查真實物理後才找到「非追蹤、靠對稱性破缺自然交會」的模型。

2能量系統 — 注入與衰減

單一 Energy 同時代表轉速與生命;攻擊傷害沒有直接乘當下能量,而是走固定的碰撞結算公式(見下節)。

語意數值來源效果
轉速同能量值正規化驅動移動速度、視覺自轉速度
攻擊傷害collisionDamageburstDamageattackMul當下能量不直接乘進傷害;能量優勢只體現在更耐打、較快蓄到大招、移動速度較高
生命同能量值歸零=停轉=輸(力盡倒下)
// 手環輸入 → 搖動注能(來源:TopState.Tick)
gyroMagnitude(三軸角速度合成幅值) = sqrt(x² + y² + z²)
normalizedShake(正規化搖動強度)
  = clamp((gyroMagnitude - deadzoneMdps(靜止死區 300)) / (maxGyroMdps − deadzoneMdps), 0, 1)
responseShake(回應曲線後強度) = normalizedShake ^ responseGamma(回應曲線次方 0.6)
smoothingK = 1 - exp(-dt / smoothingSec(平滑時間 0.12s))
smoothedShake += (responseShake - smoothedShake) × smoothingK

// 注能與自然衰減
n(能量比例) = clamp(Energy / energyCap(100), 0, 1)
t(末段進度) = clamp((n - 0.95) / 0.05, 0, 1)
gainFactor(注能效率) = lerp(1, 0.35, t ^ 1)   // 越接近滿格,注能效率越低

搖動注能量 = shakeGain(15/秒) × gainFactor × gainMul(卡牌倍率) × clamp(shakeIntensity,0,1) × dt

decayRamp(衰減時間倍率) = 1 + max(0, battleAge − 25) × 0.06   // 局齡越久衰減越快
自然衰減量 = decayRate(4/秒) × decayMul(卡牌倍率) × decayRamp × dt

Energy(新能量) = Energy(舊能量) + 搖動注能量 − 自然衰減量

📉 為什麼滿格前會「越搖越沒用」

能量比例超過 lateGainStart(95%) 後,注能效率沿次方曲線降到 lateGainMin(35%)——避免玩家一路瘋狂搖到滿格後毫無節奏起伏,也讓「滿格蓄大招」有一段自然的減速前搖。

⏱️ 為什麼局越久衰減越快

對戰滿 25 秒後,自然衰減倍率每秒 +0.06——這是 2026-07-09 會議「搖多少都給,但衰退速度隨時間加快」的落地方案,保證長局收斂、不會兩人一路互相耗到天長地久。搖動注入端本身不隨局長降低。

📊 上下限
一般狀態夾在 0~energyCap(100);爆衝期間上限為 100×capMul(1.5)=150Energy ≤ 0 時停轉落敗。

3對撞傷害結算 — 完整 8 步驟

判定時機:物理接觸偵測(0.95 距離內 + 0.45 秒冷卻)觸發,不是週期性計時器。A、B 兩顆陀螺同時互打,各自跑一次全套下列流程:

基礎傷(雙方均攤,固定值)
基礎傷 = collisionDamage(7.13)
每次撞擊必定發生,跟能量、卡牌都無關的固定起手傷害。
能量差加成 — 已停用
collisionDiffFactor(0.15)× |己方能量 − 對方能量| → 強制設為 0
2026-07-16 CP0 拍板移除:先贏第一撞者靠能量差持續放大形成斬殺循環(試玩證實「誰砸中第一下基本就贏」)。欄位保留可逆、步驟編號保留②不重排,避免下游引用錯位。
大招加成(若攻方 Armed)
攻方造成的傷害 += burstDamage(57.02)
只有攻方處於「大招已蓄力」狀態才加;威力接近基礎對撞傷害的 8 倍。
攻擊倍率
血量傷害 = (① + ③) × 攻方 attackMul(卡牌攻擊倍率)
乘的對象是「基礎傷+大招加成」的合計,不是分開各自乘。
防禦減傷(守方未破防才生效)
實際扣血 = 血量傷害 × (1 − 守方 defense)
已破防則跳過本步,直接吃全額。
削甲量(獨立公式)
削甲 = chipPerHit(3.92)× 攻方 attackMul
不含③大招加成、不看守方 defense——固定值天生不滾雪球。2026-07-14 簡化前的舊公式三種攻守組合算出來全落在 3.4 上下(攻方倍率與守方減傷互相抵銷),收成單一固定值後行為等值、且「幾撞破防=armorHp÷削甲」可直接口算。
破防判定
護甲 −= 削甲;護甲 ≤ 0 → Shattered=true(永久失去 defense,修不回)
破防當下這次的血量傷害額外 += shatterBonus(14)——「爆甲瞬間多痛一下」。
擊飛判定
最終血量傷害 ≥ knockThreshold(15)× 守方 knockResist → 觸發擊飛
跟破防是兩件互相獨立的事——護甲沒破一樣可能被擊飛。
🔒 固定值 vs 動態變數
全域固定常數collisionDamageburstDamagechipPerHitshatterBonusknockThreshold(雙方共用,只有改 config 才會變)。卡牌固定常數attackMuldefensearmorHpknockResist(開局選卡定死)。逐幀動態變數EnergyArmorArmedShattered

4實戰算式範例(真實數值,非示意)

情境:1P 用赤獄戰斧(attackMul 1.25/defense 0.05/護甲 35),能量 70,這次剛好帶著大招(Armed);2P 用玄武磐盾(attackMul 0.9/defense 0.3/護甲 100),能量 50,沒有大招。兩人護甲都還是滿的。

步驟算給 1P 的傷害(別人打 1P)算給 2P 的傷害(1P 打 2P)
① 基礎傷7.137.13
② 能量差加成已停用,+0已停用,+0
③ 大招加成2P 沒大招,不加1P 帶大招:+57.02 → 64.15
④ ×攻擊倍率×玄武磐盾 0.9 → 6.42×赤獄戰斧 1.25 → 80.19
⑤ ×(1−defense)×(1−0.05)=0.95 → 6.10×(1−0.3)=0.7 → 56.13
⑥ 削甲(獨立公式)3.92×0.9 ≈ 3.533.92×1.25 ≈ 4.90
⑦ 破防?護甲 35−3.53=31.47,未破防護甲 100−4.90=95.10,未破防
⑧ 擊飛?6.10 < 15×0.85=12.75,否56.13 ≥ 15×1.35=20.25,是,2P 被擊飛
💥 結果
1P 能量 70−6.10=63.90,但因為 1P 這次放了大招,能量會被壓回 burstFloor(60);2P 能量 50−56.13 算出來是負的,直接夾在 0——2P 這局輸了。因為 2P 的護甲全程沒破(95.10/100 還很厚),這場終結會判定成轟飛終結擊飛演出,不是擊碎終結。

這個案例同時示範了:能量差已不再影響傷害、大招怎麼一擊斃命、防禦與削甲是兩條分開算的公式,以及「擊飛」不需要破防也會觸發。

5傷害疊加規則總表 — 哪些會疊加,哪些不會

這是全文件最容易混淆的一塊,統一列成矩陣:橫軸是各種傷害/效果來源,縱軸是它們「會不會」疊加或吃到其他加成。

傷害來源 吃③大招加成 吃④攻擊倍率 受⑤defense影響 觸發⑥削甲 算入⑧擊飛判定基準
① 一般對撞基礎傷 ✔ 是(若攻方 Armed) ✔ 是 ✔ 是 ✔ 是(獨立公式) ✔ 是
③ 大招加成(Burst) — 本身即大招 ✔ 是(隨①一起乘) ✔ 是(隨①一起乘) ✘ 否(削甲不吃大招) ✔ 是
⑦ 破防加成(shatterBonus) ✘ 否 ✘ 否 ✘ 否(破防後已跳過 defense) — 不適用 ✔ 是(併入該次最終傷害)
衝刺 Dash(12) ✘ 否 ✘ 否 ✔ 是 △ 是(同幀與一般對撞雙觸發時只算一次) ✔ 是(用自己算出的 12×(1−defense) 比對)
② 能量差加成 已全域停用=0,不參與任何計算(DEC-JSG12-029)
Combo 連續對撞加成
v2+ 候選,CP1 後評估
✘ 否(比照削甲防滾雪球慣例) ✔ 是(若上線,隨①一起乘) ✔ 是(若上線) ✘ 否 ✔ 是(若上線)
✅ 疊加的組合(會滾雪球,但都有防線)
  • ①基礎傷 + ③大招加成 → 一起乘④攻擊倍率、一起吃⑤防禦減傷
  • ⑤防禦減傷後的傷害 + ⑦破防當下的 shatterBonus(一次性)
  • Dash 若同幀也觸發一般對撞:兩筆血量傷害分開結算疊加(但削甲只算一次)
🚫 刻意不疊加的組合(防滾雪球設計)
  • 削甲⑥永遠不吃③大招加成、不看⑤守方 defense(固定值天生不滾雪球)
  • Dash 傷害不接③大招加成、④攻擊倍率、②能量差(三個獨立系統各管各的)
  • 能量差加成②已全域停用,不會出現在任何算式裡
  • Combo(若上線)只加在①基礎傷,不疊加③大招——避免連撞+大招疊在一起爆表
⚠️ 同幀雙觸發去重(Dash + 一般對撞同時發生)
同一次接觸若同時滿足一般對撞判定與 Dash 命中判定,兩筆血量傷害仍分開結算疊加(維持既有行為),但削甲只結算一次——否則一次接觸削 7.84,玄武破防口算會從 26 撞砍半成 13 撞,破防節奏全變。湧現效果:Dash 那一下剛好削破護甲時,12 + shatterBonus(14)=26 ≥ knockThreshold(15)→「Dash 破防順便擊飛」自然發生,不需額外規則。

6三大獨立系統對照 — 大招/爆衝/衝刺

三者觸發條件、效果數值完全獨立,只有大招與爆衝共用同一顆 Armed 開關(觸發爆衝會順便蓄好大招,但兩者的觸發條件跟數值效果毫無關係)。

⭐ 大招(Burst / ARMED)

觸發:能量自然搖到滿格(100)/或觸發爆衝的同一瞬間

觸發後進入「蓄好大招」狀態(HUD ★ARMED),等下一次對撞才釋放,不會馬上生效。釋放後對敵方額外造成固定 burstDamage(57.02)(會再乘攻擊倍率)。自己的能量打完後 clamp 到 burstFloor(60)——不是歸零,鼓勵持續搖、反覆衝頂再放。用完立刻重置,要重新蓄一次。

🔥 爆衝(Overdrive)

觸發:能量球滿格吃(能量 ≥ cap × 90%)

能量直接設到 cap×1.5=150(瞬間設定)。durationSec(5秒)內:移動追擊力增強(chaseForce)、搶球引力增強(×2.2)、攔截提前量開啟。結束後依 overflowDecay(80/秒)快速衰退回一般上限。爆衝本身不直接加傷害——CP0 移除②能量差加成後,「破表能量間接打更痛」的傷害槓桿已消失,戰術價值收斂為①更耐打的血量緩衝、②追擊/搶球物理增強、③順便蓄好大招三項。

⚡ 衝刺(Dash)

觸發:瞬間搖動強度上升緣偵測(跳過 0.85 門檻)

觸發看的是瞬間搖動強度,跟能量值高低無關。扣固定 energyCost(8)能量 → windupSec(0.35s)蓄力凍結(此時不受傷,HUD「⚡蓄力」)→ dashSpeed(30)直線衝向對手 durationSec(0.25s)cooldownSec(2s)冷卻。瞄準但不追尾:瞄準座標在蓄力結束、真正發動那一幀才鎖定,對手有完整視覺 tell 可先走位。

🔗 Armed 開關共用,但數值完全獨立
「觸發爆衝的同一瞬間會順便把 Armed 設為 true」——這是唯一的耦合點。除此之外,大招管「下次對撞多打一筆固定傷害」、爆衝管「能量瞬間衝高+移動追擊力增強」、Dash 管「瞬間搖動強度驅動的直線衝刺」,不要混用這三個詞

7防禦層 — 護甲/破防/擊飛

呼應線下賽制(Beyblade X 官方積分制擊飛/爆裂概念,原創命名不沿用官方 IP)加的加戲層,勝負判定仍唯一是能量歸零

參數只負責備註
defense只保血(⑤防禦減傷)破防後永久失效,修不回
armorHp只決定幾撞破防armorHp÷3.92 口算:赤獄 9 撞/紫電 13 撞/玄武 26 撞(對上赤獄再 ÷1.25)
knockResist只管擊飛門檻與 defense/armorHp 互不影響
shakeRepairRate搖動回甲速率目前刻意設 0(不開),破防前護甲修不回
護甲狀態演進
護甲滿
defense 正常生效
每次對撞削甲
chipPerHit × attackMul
護甲≤0?
破防 Shattered
+shatterBonus 14;defense 永久失效
被撞血量歸零
擊碎終結(大演出)
🚀 擊飛與破防是獨立判定
單次最終受傷 ≥ knockThreshold(15)× knockResist =擊飛——護甲沒破一樣可能被擊飛,兩者互不依賴。

8三種終結判定

依歸零時距最後被撞 < 0.6 秒分流:

終結觸發條件演出終結字卡(英文)
力盡倒下自然力盡(能量 < 12% 開始傾角進動搖晃,歸零後傾倒躺平)安靜特寫,不定格STILL SPINNING
轟飛終結被撞歸零、未破防拋物線飛出碗外+翻滾+落地彈跳KNOCKED OUT
擊碎終結破防後被撞歸零hit-stop+特寫+輸家碎片爆裂,依贏家卡牌換終結特效TOTAL CRUSH
🤝 DRAW(平手)
雙方同時歸零=平手,判定獨立於上表三種終結之外(不觸發任何一種終結類型的字卡/特效),只顯示「DRAW」。

鏡頭與演出

程式控制鏡頭 · Timeline 腳本化演出 · 撞擊分級表 · 慢動作

1兩種鏡頭觸發方式

演出結束後陀螺位置的處理方式完全不同,這是理解本節的關鍵。

程式控制Timeline 控制
觸發條件5 個「數值跨過門檻」事件+1 個平時基準鏡頭撞擊事件觸發(終結/彈出/大絕)
演出後陀螺位置維持原場地位置,繼續打轉不保證相同,通常結尾重置
流程鏡頭切換+跟隨,無額外分鏡撞擊觸發 → timeline 過場 MG → timeline 演出 → 結局或重置
技術方向空物件讀 Quaternion.LookRotation 算朝向,Cinemachine Orbital Follow 跟隨;Quaternion.Slerp 平滑轉向過場素材分階段交付:CP1 黑畫面淡入淡出佔位,CP2 換正式 motion graphic
分工歸屬RD 跟撞擊判定綁在一起,走一般開發排程美術(仁琪)自主範圍,非 RD 待辦;前置依賴僅「陀螺白模」,不需等 UV/貼圖
⚠️ 別加太多鏡頭
鏡頭切太頻繁會打斷節奏——實際工作量能否塞進 CP1 仍由 RD 評估排程,但「做不做」已定案。

2CP1 程式鏡頭預覽規格(2026-07-21,6 組 Preset)

Jacfitness_Clientresearch/JSG12_BattleTop 分支已建立獨立鏡頭預覽台、6 組 preset、純運算測試(12/12 通過)。目前只完成角度/構圖驗證,尚未把正式 duration、cooldown 與事件觸發接進對局 Update。

GameplayWide
GameplayWide
平時對戰/特寫結束後 — 完整交代競技場與兩顆陀螺
tilt 45°size 8.00
DashClash
DashClash
雙方同時 Dash 並發生接觸 — 低角度雙主體碰撞特寫,兩顆陀螺合計約佔畫寬 60~75%
tilt 70°size 1.45
ArmorBreak
ArmorBreak
Shattered 由 false 轉 true — 焦點向被破防者偏移 70%,攻擊者保留為次要主體,VFX 不可蓋掉輪廓
tilt 72°size 1.30
OverdriveEntry
OverdriveEntry
OverdriveTimer 由 0 轉正 — 啟動者單主體低角度特寫,沿移動方向預看 0.4 單位
tilt 70°size 1.40
WobbleWarning
WobbleWarning
能量第一次跌破 wobbleStartNorm — 前兆中景,從低能量陀螺外側安靜推近,不震屏、不 hit-stop
tilt 63°size 4.40
NaturalFallFinal
NaturalFallFinal
自然力盡傾倒進度約 88% — 最後一刻單主體極近特寫,側倒投影較小所以比 Overdrive 再縮近
tilt 70°size 0.95

構圖參考總覽

6 組鏡頭構圖總覽對照
⚠️ 現狀 vs 規劃提醒
「可截圖」不等於「正式對局已完成」——研究分支目前刻意沒有把 duration、cooldown 與正式事件觸發接進 BattleController.UpdateWobbleWarning(低能量前兆)與 NaturalFallFinal(傾倒約 88% 最後一刻)是兩個不同時間點,不可共用同一觸發點。

3鏡頭邊界(甜甜圈範圍限制)

場地上方設一個圓形(甜甜圈狀)範圍,限制程式控制鏡頭的活動邊界,避免特寫鏡頭跟隨陀螺移動時飛出場景外。鏡頭主體追隨「當下要拍的陀螺」(例如雙方 dash 互撞時,優先追隨先碰撞到的一方),在圓形邊界半徑內自由跟隨移動。

MVP 範圍(CP1)
單一角度、單一跟法先實裝;上側俯視/側視角都保留候選但不強制同時做。
CP2 擴充
多角度切換等豐富化留到 CP2,不卡 CP1 的 MVP 排程。

4Timeline 控制(腳本化演出)

適用場景:終結演出(碎裂)、彈出場外演出、能量滿必殺技撞擊(大絕)。

Timeline 演出流程
撞擊觸發
timeline 過場
motion graphic
timeline 演出
結局 or 重置位置
📦 過場素材分階段交付(DEC-JSG12-012)
CP1 先用黑畫面淡入淡出佔位,讓 RD 提前把觸發/演出/reset 邏輯跑通,不用等美術 MG 完稿;CP2 才換成正式 motion graphic。排版規格見 Figma TransitionWipe_Spec

三支 Timeline 演出交付清單

Timeline對應機制數量負責檢查點
終結動畫(碎裂)擊碎終結3 個(依贏家卡牌換特效)仁琪CP2
彈出場外演出轟飛終結1 個仁琪CP2
大絕(能量條滿的撞擊)大招/Burst 命中3 個(依卡牌)仁琪CP2

5大絕 Cut-in — 陀螺渲染+招式字卡

大絕 timeline 第一拍=cut-in,並兼任大絕過場(斜帶蓋版滑入即擦除轉場,不疊共用 wipe)。

大絕演出時序
Burst 命中
hit-stop
Cut-in
蓋版滑入兼過場,陀螺渲染+招式英文字卡
爆裂演出
重置位置回對戰

三卡招式名(中英對照,2026-07-16 拍板 DEC-JSG12-027)

HELLBLAZE VERDICT
獄炎斷罪斬 · 赤獄戰斧
BASTION QUAKE
玄武鎮天壓 · 玄武磐盾
VOLT TEMPEST RUSH
紫電神速擊 · 紫電迅雷

英文大字=固定圖片資產,全球統一顯示英文(不進多國表);下方中文招式小字幕=TMP 動態文字,進多國表,英文語系拿掉不顯示。內容沿用 BT-022 正式陀螺 3D 資產做特寫渲染輸出 ×3(不另畫插畫立繪)。ARMED 蓄力期間不播 cut-in。

6撞擊演出分級表

逐行核對 BattleController.cs 七處呼叫點後收斂,拆成三層——不能全部一視同仁交給 RD「延用或微調」

層 1:純打擊震動手感 RD 可直接延用

分級觸發時機震屏 ShakeHit-stop(秒)特寫拉近火花粒子
普通對撞一般碰撞,無擊飛/大招0.3514 顆/1.0
Dash 互撞Dash 命中0.80.124.2/0.4536 顆/1.5
擊飛單次受傷超門檻0.90.124.4/0.430 顆/1.4
大招/破防Burst 或 Shatter 觸發1.20.253.4/0.660 顆/1.9

分級邏輯對齊格鬥遊戲慣例:普通不頓保流暢 → 擊飛輕頓 → 大招/破防重頓+受擊抖動。

層 2:原型現狀是程式控制,正式規劃轉 Timeline 美術範圍,數字僅供節奏參考

分級觸發時機原型現狀(僅供節奏參考)
轟飛終結被撞出場Shake 1.1/HitStop 0.18/CloseUp 5.2,1.5(拉遠讓飛出全程進畫面)
擊碎終結破防後歸零Shake 1.6/HitStop 0.55+慢動作0.5/CloseUp 4.2,1.9(不推太近,卡牌特效要進畫面)
大絕能量滿必殺技撞擊目前跟「大招/破防」共用層1程式參數,尚未拆出獨立演出

層 3:鏡頭預覽已完成,正式觸發接線仍需開發

DashClashArmorBreakOverdriveEntryWobbleWarningNaturalFallFinal 的角度、焦點與畫面尺度已在研究分支預覽驗證,可供 RD 落地時直接對照——但 duration、cooldown 與正式事件觸發仍需接進對局 Update。

7慢動作機制(2026-07-20 拍板)

特寫鏡頭的慢動作機制程式與美術完全分開,不混用

模式控制方可調範圍
程式控制模式純程式控制不開放美術手調時間點
Timeline 模式程式提供可掛在 Highlight 區塊的慢動作腳本+兩個觸發點(開始/結束),預設開啟美術只調倍速參數、自行決定觸發時機

規格:淡入淡出 10~15 幀、1.0x → 0.2x(也支援硬切);「進特寫前播慢動作撞擊 vs 進入後才慢」屬表現形式,兩案皆可行由美術選。

美術素材

風格定調 · 授權風險排除 · 可用資源 · CP0 美術資源清單
9
陀螺建模(3 卡×3 部件)
2
場景(戰鬥盤/背景)
18
特效項目(綠豆)
12
音效項目(鏡)
3
Timeline 演出(仁琪)
3
教學影片(飯茄)

1美術風格定調(已驗證,可沿用)

原型美術版(分支 feat/beyblade-x-art)對標 Beyblade X 視覺語言,全 code-gen(守公司「美術走 code 生成」原則)。

赤獄戰斧
#FF4D2E
玄武磐盾
#4F9AFC
紫電迅雷
#9B5CF6
1P 隊色
#FC4F7A
2P 隊色
#4F9AFC

💡 配色/發光

HDR + Bloom(threshold 1.0,只有 HDR>1 的元素發光)+ Vignette,深色底盤 + 霓虹強調色。

🎬 鏡頭演出

hit-stop(撞擊瞬間 timeScale 定格)+ 撞點特寫急推 zoom-in + 震屏,全部走 unscaled time(慢動作中演出照跑)。完整觸發清單見「鏡頭與演出」分頁。

✨ 火花/衝擊

金屬火花(stretched-billboard,HDR 白熱→橙、重力墜落),依事件分級(普通對撞/擊飛/大招·擊碎三種強度)。

🏟️ 場地

六角紋深色地板(藍黑底+內建 emissive 發光六角線條)。亮度階層鐵律:環境 < 場地 < 陀螺(環境只在畫面邊緣 vignette 區活著,不搶戲)。

💡 打光

舞台聚光(正上方直下打)+ 底盤隊色光暈(誰是誰一眼懂)+ 方向光壓低當補光——自發光會把立體形狀吃掉,改走有方向性的燈光讀出形狀。

🏆 終結演出舞台調光

三種終結各自的舞台調光(撞擊瞬間全場壓暗只留中央聚光)+ 觀眾席相機閃光燈波次 + 依贏家卡牌換終結特效(烈焰處刑/重壓碎擊/紫電轟擊)。

三卡三視覺識別

🪓
赤獄戰斧
三利刃造型 · 赤紅烈焰尾流
🛡️
玄武磐盾
厚重寬盤造型 · 玄玉厚重尾流
紫電迅雷
發光能量珠造型 · 紫電流光尾流

尾流速度越快越誇張(高速加開火焰效果)。

2⚠️ 不可沿用的 demo 素材(商標/授權風險)

🚫 本節最重要的事
原型 demo 版用的美術素材(3D 陀螺模型、場館模型)有商標/授權風險,一個都不能沿用進正式開發。這五顆模型連同貼圖在 forge 交接時已排除,沒有Jacfitness_ClientJacfitness_Art 的正式交接分支,只留在 research 分支的 Reference 資料夾當「demo 長怎樣」的視覺參考。
檔案實際來源問題
三卡陀螺模型(赤獄戰斧用 Meteo L-Drago、玄武磐盾用 Guardian Driger、紫電迅雷用 burstkit)SketchfabMeteo L-Drago/Guardian Driger 是官方 Beyblade(Takara Tomy)角色複製模型,即使上傳者標 CC 授權也不代表有權散布這些設計;burstkit 原型團隊自己標註「非 CC0、不隨綠燈出圈」
場館外殼(stadium_casing)「Beyblade Stadium」by theoplayz31(CC-BY)授權雖是 CC-BY,模型名稱本身沾了品牌
場館環境(env_arena)「Sci-fi arena」by Fermit0(CC-BY-NC非商用授權,法律上不能出現在會出貨的商業產品

正式美術請重新設計三顆陀螺造型與場館,或從下方「可用資源」清單挑選乾淨素材。

3可用資源(CC0,已查證,可商用)

完整查證記錄與更多備選見 jsg-prototype-forge/prototypes/jsg12-battletop/art-resources.md(三輪獨立調研交叉驗證)。

🗿 3D 模型
Meshy「beyblade」標籤系列(20+ 顆,CC0,AI 生成原創非官方 IP)——⭐ 若要 3D 模型化陀螺,這是唯一乾淨來源,需人工逐顆挑品質。
判斷:程序化生成(primitive 組合 + URP metallic/emission)仍是最務實方案,換裝成本趨近零,正式開發可能不需要真的做 3D 掃描模型。
✨ 撞擊/火花 VFX
Kenney – Particle Pack(CC0,fire/smoke/magic/spark/electricity)
OpenGameArt – Spark effect/Ring Explosion/Explosion 50幀(皆 CC0)
Hit Impact Effects FREE/Cartoon FX Remaster FREE/Unity Particle Pack(Asset Store 免費 EULA,URP 相容)
🏟️ 場景/環境材質
OpenGameArt – Glowing Hexagon(CC0,藍黑深色底 + 內建 emissive 發光六角線條,原型已採用這個方向)
Poly Haven – Metal Plate 系列(CC0,完整 PBR)
🌈 Shader
URP 內建 Volume(Bloom/Vignette,零安裝)
Unity Toon Shader UTS3(官方,Unity Companion License)
Anime-Speed-Lines by MirzaBeig(Unlicense,公有領域,Beyblade X 同款放射狀速度線)

4模型

內容細項數量負責人時間檢查點
陀螺設計品杰1W
陀螺建模結晶輪盤3 個品杰1+3WCP1
陀螺建模鋼鐵輪盤3 個品杰1+3WCP1
陀螺建模軸心3 個品杰1+3WCP1
📅 甘特圖排程現況(2026-07-14 讀取)
資料參考 7/6~7/10(已完成)→ 設計 7/13~7/17(進行中)→ 白模 7/20~7/24 → UV+貼圖 8/3~8/14。

5場景

內容數量負責人時間檢查點
戰鬥盤1 個飯茄4W+1WCP1 色模 + CP2
背景1 個飯茄4W+1WCP1 色模 + CP2
❓ 待確認(美術原表已列為待討論項)
大決撞擊的場地效果?結局的場地效果?——目前仍無下文(ISS-050)。

甘特圖排程現況:資料參考 7/6~7/10(已完成)→ 戰鬥盤白模 7/13~7/24(進行中)→ 戰鬥盤/背景製作 7/27~8/7。

6特效(綠豆)

內容細項數量時間檢查點
碰撞火花1 個4WCP1
能量球黃點1 個4WCP1
運行軌跡3 個4WCP1
旋轉特效1 個4WCP1
停頓時蓄力特效3 個4WCP1
衝刺時火花3 個4WCP1
暴衝模式狀態尾流3 個4WCP1
滿能量的尾流3 個4WCP1
破防碎裂演出1 個4WCP1
防護罩狀態(表現尚未破防)敵方我方2 個4WCP1
破防後冒煙1 個4WCP1
擊飛特效1 個4WCP1(「擊飛!」浮字動態移字卡動態列)
終結特效配合 timeline3 個4WCP2
大決特效配合 timeline1 個(3 個)4WCP2
彈出場外特效配合 timeline1 個4WCP2
timeline 轉場1 個4WCP2
浮字動態「擊飛!」「破防!!」2 個字卡動態列(8/31~9/4)
終結字卡動態三層堆疊進退場+招式名字卡動態3+1 個字卡動態列(8/31~9/4,上游字卡設計 8/28 交付)
✍️ 字卡分工總則(比照 JSG11 v0.12 拍板,見 DEC-JSG12-010)
凡帶字的浮字/字卡——文字(typography/字型/排版)= UI(JSG12 現況 TM+AI)動態(進退場/動畫/粒子)= VFX(綠豆)。擊飛/破防浮字、三終結字卡皆適用本原則,不再是「UI 還是 VFX」的模糊地帶。
📦 素材交付方式分軌(2026-07-20 拍板 DEC-JSG12-034)
戰鬥浮字(擊飛!/破防!!)維持 TMP 動態文字+多國表;終結字卡層1大字+DRAW+cut-in 招式字卡改為 UI 出的固定英文圖片資產,不進多國表、全球統一英文,只有終結字卡層2「1P/2P WINS」維持 TMP 動態文字。

7音效(鏡)

內容細項數量時間檢查點
BGM1 首4WCP1
音效終結音效(配合 timeline)3 個3WCP2
音效大決音效(配合 timeline)3 個3WCP2
音效彈出場外音效(配合 timeline)1 個3WCP2
音效撞擊音效1 個3WCP2
音效吃到能量球1 個3WCP2
音效停頓時蓄力音效1 個3WCP2
音效衝刺撞擊音效1 個3WCP2
音效進入暴衝模式的提示音1 個3WCP2
音效能量條滿的提示音1 個3WCP2
音效破防碎裂演出1 個3WCP2
音效擊飛音效1 個3WCP2

BGM 切換比照 _shared/pause.md_shared/result-screen.md 現行規範:對戰中不換 BGM,勝負才切換。

📋 甘特圖缺項(ISS-050 待美術補排)
終結/大決/彈出場外音效(配合 timeline,共 7 個)——音效區尚未排入甘特。

8動畫/Timeline(仁琪)

內容細項數量時間檢查點
timeline終結動畫(碎裂)3 個4WCP2
timeline彈出場外演出1 個4WCP2
timeline大絕(能量條滿的撞擊)3 個4WCP2
🚀 實際排程比原排提早(2026-07-14 讀取)
Timeline 資料參考 7/6~7/17 → 三個演出原排 7/27~8/14,實際 7/13 已開工(白模期先起步,前置依賴僅「陀螺白模」,不需等 UV/貼圖)。「動畫先、特效音效後」的依賴序美術端已自行排出(動畫 ~8/14 → timeline 特效 8/3~8/7 → timeline 音效 8/17~8/21)。
🐢 慢動作工具交接(2026-07-20 拍板 DEC-JSG12-032)
Timeline 內慢動作=程式給 Highlight 掛載腳本+開始/結束觸發點,美術自調倍速(1.0x→0.2x,淡入淡出 10~15 幀);程式出教學文檔+Unity 匯出。

9教學影片(飯茄,2026-07-16 新增,DEC-JSG12-026/028)

內容細項數量檢查點
教學影片射擊(拋竿動作)1 支已排甘特(8/17~9/4)
教學影片轉動陀螺(搖手環注能)1 支同上
教學影片技巧(Dash/大招/吃球)1 支同上

放教學頁公版 Slot_Teach 影片區(16:9)。UI 素材(HUD 四態 icon/對戰 HUD 正式視覺/字卡落地)=他部門 UI 人力支援(DEC-028,人選待定),TM 備功能示意。

UI / UX 流程

開局抽卡 · 倒數發射 · 對戰 HUD · 浮字與字卡 · 結算頁

1Figma 設計稿

JSG12 目前為低保真 wireframe 階段(版面/流程/文案已定,配色與字型走遊戲美術風格但尚未套正式視覺稿)。下方畫面清單的截圖皆為 Figma 即時匯出,非示意圖。

JSG12 戰鬥陀螺(jsg_design 主設計頁)
檔案編號:Kra16tMbARMXT2mp5QVPDc · 頁面節點編號:17665:2「JSG12_戰鬥陀螺」
✅ 對戰 HUD/終結字卡/結算頁/Cut-in/浮字規格皆已建 wireframe;共用元件收在 _Components_JSG1217812:2)——master 改一次,所有畫面 instance 自動同步
開啟 Figma →
2P選角_戰鬥陀螺_JSG12(app_flow 檔)
檔案編號:pL3ojpKePQmPg0oenQC8Ef · 節點編號:2623:140
開局抽卡畫面——沿用 T_CharSelect_2P_Portrait 公版母版 clone+detach,數值 bar 已元件化(Bar/TrackBar/Fill
開啟 Figma →
📌 節點對照表
完整 frame/component 節點編號見 references/figma-map.md「JSG12-battletop」章節;教學頁節點見同表「Tutorial」章節。畫面清單的截圖皆用 scripts/figma_export.py 透過 Figma REST API 即時匯出,非本機快取的舊圖。

2UX 流程總覽

📌 JSG12 沒有「JSG 大廳」
預計 v2.6 上架,此時 v2.5 的大廳廢除已經生效——不需要設計/實作任何專屬大廳畫面。玩家在平台層選完遊戲卡、模式、藍牙連線後直接進 JSG12 對戰內容,結束後回到平台層,中間沒有「JSG12 自己的主選單」這一站。
完整 UX 流程
平台層 pre-game
模式選擇→藍牙連線
開局抽卡
三選一,2P 各選
倒數+發射
3→2→1→GO!
對戰
HUD 持續顯示
終結演出
結算頁
走平台共用 v2.2

暫停:對戰中觸發,走 _shared/pause.md v2.1(回藍牙列表/再次挑戰/回主選單)。

3畫面清單(JSG12 自製範圍,含 Figma 即時匯出截圖)

全部為低保真 wireframe(版面/流程/文案定案,正式配色/字型/icon 待美術),透過 scripts/figma_export.py 直接從 Figma REST API 匯出。

1開局抽卡 Draft2623:140
開局抽卡 Draft
輸入觸控點選(非手環手勢),本地雙人共用同一台螢幕
版面1P/2P 立繪選格(左右)+中央陀螺卡池(3 張,單一池)
互動雙方同步各自獨立操作,非輪流制;每張獨立確認鎖定(三態按鈕)
套用 _shared/character-select.md 公版,Mirror Match 開放,無時間限制;數值 bar(攻擊倍率/護甲/能量增益/抗擊飛)已元件化,循環反白哪張即時更新
2倒數(3→2→1→GO!)17812:32
倒數畫面
倒數3→2→1→GO! 混合制,3/2/1 期間顯示拋竿示意提示
GO!拋竿偵測窗口開啟+2P 同步起跑訊號
Bg/BattleArena instance 滿版全亮+中央大字倒數數字+「準備拋出你的陀螺!」提示(DEC-JSG12-022)
3發射力道揭曉17701:15
發射力道揭曉
力道 UI揭曉式:拋出瞬間兩側大 % 數字定格+放大強調,隊色 1P 粉/2P 藍
備註發射力道=拋竿動作(比照 JSG03 釣魚甩竿),2P 同時拋,峰值定格保留顯示至發射演出期間
LaunchUI_B_拋竿揭曉版——原「A 版進度條」隨拋竿制自然淘汰(沒有連續值可跟)
4對戰 HUD(持續顯示)17665:3
對戰 HUD
玩家標籤1P(粉)/2P(藍)隊色標籤,貼在各自面板卡片正上方
玩家面板卡深色背板包住能量條(分層+隊色主條)、護甲行、gyro 搖動強度細條+陀螺立繪(貼齊三條血條加總高度),左右**真鏡射**對稱——血條 fill 錨點在外側、標籤在內側、卡片下緣緊貼內容不留白
狀態標籤大招蓄好★ARMED(金)/Dash蓄力⚡(閃電)/Dash衝刺(雙箭頭)/爆衝(火焰)——四顆懸空跨在面板卡頂緣(一半露出、一半嵌入),1P 由左至右 ARMED→蓄力→DASH→爆衝,2P 鏡射後反序 爆衝→DASH→蓄力→ARMED
暫停鈕畫面右上角(跟其他 JSG 單人遊戲擺放邏輯一致),深色不透明膠囊+「暫停」小標,只是入口圖示,選單走 _shared/pause.md v2.1 公版
其他Dash 冷卻圈掛載於陀螺本體(世界座標,隨陀螺移動,非固定 UI 錨點,同戰鬥浮字系統慣例);陀螺立繪目前灰盒佔位,待 BT-022 正式 3D 渲染資產交付
螢幕內另示範戰鬥浮字「擊飛!」「破防!!」與 Dash 冷卻圈掛載陀螺示意位置(皆世界座標,非固定 UI 錨點,2026-07-22 版面修訂)
5大絕 Cut-in(赤獄戰斧示例)17729:2
大絕 Cut-in HELLBLAZE VERDICT
結構斜帶蓋版滑入(卡牌代表色,非隊色)+陀螺特寫渲染區+招式英文大字
時序Burst 命中 → hit-stop → cut-in(兼過場)→ 爆裂演出 → 重置位置
HELLBLAZE VERDICT/獄炎斷罪斬;另兩卡示意見 CutIn_Demo_BastionQuake(17807:14)/CutIn_Demo_VoltTempestRush(17807:23)
6終結畫面 · 擊碎終結17665:30
終結畫面 擊碎終結 TOTAL CRUSH
觸發破防後被撞歸零
字卡TOTAL CRUSH(層1英文大字)→擊碎終結(中文小字幕)→1P/2P WINS(層2勝方)
已對齊 FinishCard_Spec(17714:2)正式規格:Black 140px #FF4D2E 描邊14+陰影
7終結畫面 · 轟飛終結17807:2
終結畫面 轟飛終結 KNOCKED OUT
觸發被撞歸零、未破防
字卡KNOCKED OUT(黃,同擊飛浮字字族)→轟飛終結→1P/2P WINS
8終結畫面 · 力盡倒下17807:8
終結畫面 力盡倒下 STILL SPINNING
觸發自然力盡(能量歸零,未被撞)
字卡STILL SPINNING(無描邊無陰影,維持安靜定位)→力盡倒下→1P/2P WINS
9結算頁 · 戰報式17712:2
結算頁 戰報式
結構勝負宣告(大字+立繪特寫+終結 badge)→對比戰報(平均搖動強度/最大單擊傷害/吃球數)→小字(時長+卡名)
按鈕回藍牙列表/再次挑戰/重新選卡(退回開局抽卡)/分享(佔位)
JSG12 無 1P 模式無排行需求,不設分數欄位(DEC-JSG12-020)
10教學頁(頁1/射擊)2703:819
教學頁 頁1 射擊
結構T_Tutorial_JF 公版 3 頁精簡版
頁1射擊:拋竿動作教學影片(此為文字版示意,影片待飯茄交付)
頁2/3轉動陀螺(搖手環注能)/技巧(Dash/大招/吃球)

4對戰 HUD 狀態標籤四態

狀態原型顯示文字正式版 icon型態觸發時機
大招蓄好★ARMED金色★徽章+脈動發光持續(掛到釋放)能量搖到滿格或爆衝觸發瞬間
Dash 蓄力⚡蓄力閃電 icon 充能閃現瞬時 0.35swindupSec 蓄力凍結期間,此時不受傷
Dash 衝刺>> DASH!雙箭頭拖尾 icon 閃現瞬時 0.25s蓄力結束、真正衝刺期間
爆衝 Overdrive(原型無)火焰 icon 徽章(橙紅)持續 5s滿格吃球觸發,移動追擊力/搶球引力提升
⚠️ 四態同時出現的擁擠風險
Overdrive+ARMED 並掛+Dash 閃現:CP1 實測後優先縮 icon/訂排列規則,不砍態。

5戰鬥浮字系統(瞬時顯示)

單次觸發、飄字後消失,出現在受擊陀螺上方(世界座標,非固定 UI 錨點)。

擊飛!
KNOCKBACK! · 單次受傷 ≥ knockThreshold×knockResist
破防!!
BROKEN!! · 護甲歸零那一刻
項目擊飛!破防!!
字級(@1920×1080)72px84px(強度升一級)
Fill#FFD91A 黃#FF8A1E 橙
Stroke#241430 10px 外描邊#241430 12px 外描邊

分工:文字排版=UI(TM+AI),浮字進退場動態=VFX(綠豆)。兩浮字互斥不疊發。

6終結字卡三層堆疊

強度依「擊碎 > 轟飛 > 力盡」遞減:

擊碎終結(最強)轟飛終結(中)力盡倒下(安靜)
層1 大字(英文,固定圖片)TOTAL CRUSH Black 140px #FF4D2EKNOCKED OUT Black 120px #FFD91ASTILL SPINNING Bold 56px 白 85%(無描邊無陰影)
中文小字幕(TMP,進多國表)擊碎終結轟飛終結力盡倒下
層2 勝方(TMP,真正在地化)1P/2P WINS Black 96px 隊色(粉/藍)
🌐 多語言取捨
層1 大字圖片+DRAW 大字全球統一顯示英文(比照格鬥/對戰遊戲 KO/FINISH 演出字慣例),未來若要出其他語言版本需重新出圖;中文小字幕與層2 WINS 走真正在地化,TMP 進多國表。

7結算頁四鈕文案

鈕位文案備註
鈕1回藍牙列表JSG 共用區文案
鈕2再次挑戰同樣兩張卡直接重開
鈕3重新選卡JSG12 專屬——退回開局抽卡畫面(DEC-JSG12-011)
鈕4分享佔位鈕,功能未上線,全遊戲統一
JSG12 戰鬥陀螺 — 完整企劃書
製作:TM 小曹 · 受眾:程式(RD/演算法)/美術/UI
SSoT 原始碼:games/JSG12-battletop/(mechanics.md/cp0-briefing.md/ui-layout.md/art-sound.md)· 本文件為 v0.1 草案,會持續迭代