速查 › 兩套球員編號

兩套球員編號

每一位球員同時掛著兩個完全無關的號碼。 一個是四位數,決定他的大頭照與播報語音; 另一個是 c###,決定他的臉皮。 搞混這兩個,是改球員外觀最常見的第一個錯。

先說清楚這頁的數字是從哪一份遊戲量的

本頁的項目數、檔案數、覆蓋率,量的是一台裝過台灣模組的遊戲剛安裝好的原版數字小很多 —— 例如臉皮 504 對 894、大頭照 1,487 對 6,638、 語音號碼 1,673 對 4,343。

格式與結構的部分兩邊一樣,那是遊戲程式決定的; 會變的是「有幾個」。完整對照見 原版與這台機器差在哪

⚠️ 跟名單內容有關的數字,你的會不一樣

本站測試機的球員名單被模組換過,裝的是一份混了大聯盟與台灣球員的名單。

(2026-09-06 訂正:這裡原本拿檔案日期當佐證,寫「attrib.dat 檔案日期 2026 年 4 月」。 檔案日期不能當證據 —— 複製與同步都會動到它。現在量到的是 2026-08-29, 而它跟本站 2026 年 4 月那份備份裡的 attrib.dat sha256 相同, 代表被換掉的只有時間戳、內容一個位元組都沒改。「被模組換過」本身照舊成立, 那是從名冊內容看出來的,不是從日期。)

所以「幾位球員」「某某球員是幾號」這類數字,你自己跑會得到別的結果不會變的是格式 —— 表頭怎麼寫、每一格怎麼標編號、資料怎麼分隔,那是遊戲程式決定的。
⚠️ 會變的不只是數量,還有欄位的順序:本站實測 46 個欄位裡有 27 個在原版與社群名冊之間位置不同(skin_tone 從第 12 欄搬到第 38 欄,中間的欄位各前移一格)。所以永遠不要記欄號,要在執行時從表頭找欄位名

答案就寫在檔案第一行

球員資料檔的第一行是欄位表,兩個號碼各佔一欄:

10 playerattrib_face      ← 臉皮號碼(c### 的數字部分)
17 playerattrib_audioid   ← 球員本人的四位數號碼
18 playerattrib_photo     ← 這一欄不是編號

⚠️ 上面那三個欄號只對「剛安裝好的原版」成立

本站 2026-08-28 拿三份名冊逐欄比對,發現社群名冊的欄位順序不一樣

欄位剛安裝好的原版
(英文與中文相同)
社群名冊
(含本站測試機)
playerattrib_face1010
playerattrib_audioid1716
playerattrib_photo1817
playerattrib_skin_tone1238 ← 就是它搬家

46 個欄位裡有 27 個位置不同。原因是 skin_tone 從第 12 欄搬到了第 38 欄, 第 12 到 38 欄之間的每一欄都往前挪了一格(它後面還有 dittysalary 一直到 birthday 共 7 欄,所以不是搬到最後一欄)。face 在第 10 欄, 剛好落在挪動範圍之外,所以兩邊都一樣 —— 這也是為什麼只看一個欄位很容易以為沒事。

所以不要抄上面那三個數字。正確做法是打開你自己那份名冊的第一行, 照欄位名字找。本站每一支會讀名冊的腳本都是這樣做的,兩種排列都能用。

兩個陷阱,先講清楚

一、audioid 這個名字騙人。 它字面是「語音編號」,但它同時決定大頭照。 一個號碼兩個用途,欄位名只寫了其中一個。

二、photo 不是大頭照編號。 實測整份名冊只有三種值:1(2,908 人)、0(198 人)、2(141 人)。 它是開關,不是號碼。

看到欄位名就猜用途,猜錯的機率比想像高。以資料為準。

證明兩個號碼真的無關

如果兩套號碼其實是同一套(例如取後三碼、或差一個固定值),這一頁就不用寫了。 所以先證明它們毫無數字關係

拿十五位同時有大頭照、語音、臉皮三種素材的球員來看 (這十五組數字你重現不了 —— 它們量自本站測試機上那份 2009 年台灣之光名冊, 遊戲現在裝著的那份名單裡已經沒有這些人):

球員四位數
大頭照 + 語音
臉皮
上原浩治6107c873
倪福德6503c862
增菘瑋6465c119
李振昌3497c038
林哲瑄4631c496
林彥峰3494c183
林旺億3488c214
洪晨恩3493c423
田澤純一6203c813
羅嘉仁3500c691
羅國輝9146c167
詹智堯3429c229
郭嚴文3501c874
鄭凱文3509c882
鄭錡鴻3506c892

十五個對子,沒有一個對得上任何規律。 不是取後三碼、不是相減固定值、不是同一個數。

整份名冊也是同一個答案

不只這十五人。把整份名冊的 3,247 兩欄拿來比, face 剛好等於 audioid只有 27 列 —— 而這 27 列裡有 25 列是姓名空白、兩欄都寫 0 的預留列, 真的有名字又剛好相等的只有 2 位(Chris Rabago 907、Troy Stokes Jr 912)。

這裡說「列」不說「人」是有原因的:名冊第一列是 姓名兩欄都寫 Default範本列,不是球員; 另外還有 25 列是姓名兩欄都空白、hidden 寫 1 的預留列。 3,247 列裡有名字的是 3,222 列。算比例的時候要記得它們都在裡面。

大頭照與語音的檔案,都用這個號碼命名

四位數不只是大頭照的檔名。同一個號碼會出現在三個倉庫的檔名裡

倉庫檔名長相裝什麼
frontend\portrait.big6107.fsh大頭照
audio\cd\spch_pbp\pnamedat.big6107a.dat
6107c.dat
6107d.dat
播報員唸這個人的名字
audio\spch_pbp\pnamehdr.big6107a.hdr 等上面那些語音的檔頭

語音為什麼是 acd 三個,以及為什麼很多球員根本沒有語音檔, 見播報音訊那頁

這個對應的覆蓋率是多少

本站拿剛安裝好的原版對了一遍:

portrait.big 裡檔名是四位數字的圖1,487
名冊裡非 0 的 audioid1,300
兩邊都有的1,232(94.8%)
有號碼但沒有圖的68
有圖但沒有人用那個號碼的255

所以「照片檔名 = 球員的 audioid不是推測,是對得起來的。 剩下那 68 個沒有圖的,遊戲畫面上會顯示什麼,本站還沒實機看過; 至於那 255 張沒人用的圖是怎麼來的,未解本站沒有查出來 ——(2026-09-05 訂正:這裡原本寫「是名單換過之後留下來的」,那是編出來的成因。 這一格量的就是剛安裝好、名單沒被動過的原版,不能說是名單換過留下來的。)

900 是一道硬邊界

這是整頁最重要的一節。臉皮號碼不是想給幾號就給幾號 —— 它是有限的。

量到的數字
models.big 裡的 cNNN.fsh 檔案 894 個
範圍 c001–c900
c900 以上的臉皮檔0 個
名冊裡用到 900 以上的值15 個
901–915
那 15 個值蓋住多少球員 2,510 / 3,247
77.3%
分母是全部 3,247 列;只算有名字的 3,222 列是 77.9%
那 2,510 人裡有臉皮檔的0 人
face 在 1–900 的人有臉皮檔的711 / 712
99.9%
唯一的例外是 c219,名冊指派了它,models.big 裡卻沒有這個檔

所以規則是:

≤900 是專屬臉,≥901 是罐頭臉

face 小於等於 900 → 指向 models.big 裡一個真的臉皮檔,這個人有自己的臉。
face 大於等於 901沒有任何檔案,是遊戲內建的共用長相。

大部分球員用的是罐頭臉。(本站測試機 77.3%;剛安裝好的原版是 84.1% —— 模組加臉之後比例反而降了。)你在遊戲裡看到一堆人長得像,不是錯覺。

「901 以上沒有檔案」這句話很強,所以本站不靠任何解析器 —— 直接把 data\ 底下每一個檔案的每一個位元組掃過一遍, 找 c901.fshc915.fsh 這十五個檔名:

掃過        912 個檔 · 2.02 GB
c901 ~ c915  十五個全部 0 命中

對照組(證明掃描器沒壞):
c498.fsh  → models.big  ✔
c890.fsh  → models.big  ✔
c695.fsh  → models.big  ✔

上面這兩個數字是 2026-08-24 寫上站的當時量到的。 那之後測試機的 data\ 底下又多放了幾份備份資料夾(球場與語系檔各留了一份原版), 所以現在同一棵樹會數到更多檔案,你不會剛好數到 912 個檔。 結論(十五個全部 0 命中、三個對照組都命中 models.big)本站 2026-09-05 在現在這棵樹上重跑過一次(1,091 個檔、3.28 GiB),仍然成立。

為什麼一定要有對照組

本站第一次做這個檢查是用 grep,十五個全是 0 命中,看起來完美。 但對照組也是 0 命中 —— grep 對這種二進位檔會靜默失效,找得到的東西也回報找不到。

沒有對照組,就是拿一個壞掉的工具去背書結論。 任何「我找過了,沒有」的宣稱,都要先證明「我找得到已知存在的東西」。

⚠️ 「cNNN.fsh」這個檔名不是臉皮專屬的

本站原本以為「叫 c123.fsh 的就是臉皮」。不對。

frontend\coopunis.big(Cooperstown 經典球衣)也用同一套檔名, 裡面有 122 個 cNNN.fsh(c001–c122), 其中 c116.fshmodels.big 裡根本不存在

分辨的方法在檔案內部,不在檔名:

來自幾個內部標記
models.big(臉皮)894 全部帶 fa
coopunis.big(球衣)122 G357c0 / G357c1
一個 fa 都沒有

所以這頁講的 894,範圍是「已經裝在 models.big 裡的臉皮」, 不是「全遊戲叫這個名字的檔案」。兩者相差一個 c116

這一條是本站上線後才發現的。原本的寫法把「檔名唯一」當成不用檢驗的前提 —— 跟副檔名會騙人是同一類錯。

為什麼當年得「搶」別人的號碼

把上面兩件事接起來,就得到一個結論:

想給新球員一張專屬臉,你需要一個沒人用的 c### 空位

models.big 裡總共只有 894 個位子, 而且遊戲出貨時沒有任何 901 以上的臉皮檔

未驗 「能不能自己新增一個 c901.fsh 讓遊戲讀到」—— 本站沒有測過。已知的只有「原本沒有」,不是「不能有」。

所以幫一位台灣球員做臉,實際上是在做一件事: 找一個現有的號碼,把它改成新的人

📌 本站手上有一份 2009 年的名單,可以看見當年有多擠

你的遊戲不會有這個檔 —— 這是本站測試機上留著的一份 2009 年台灣模組的舊名單,跟當年那份說明書同一天的日期。 下面這組數字你重現不了,本站把它單獨標出來:

臉皮檔總數  = 894
球員指派    = 872
教練指派    = 24
合計指派    = 896   (兩邊沒有一個號碼重複)
其中有檔的  = 890   (c116 c125 c170 c177 c188 c219 名冊指派了,
                     models.big 裡卻沒有這個檔)
沒有人用的  = c695 · c703 · c831 · c870
飽和度      = 890 / 894 = 99.6%

894 個位子,只剩四個空的。

當年那份說明書的備註欄寫的是這種句子: 「把某位大聯盟投手的臉皮編號給予之」「移除某位球員並給予臉皮編號」 「共用弟弟的臉皮」。 那不是風格,是沒有空號可以用。

你自己的遊戲上量到的數字會不一樣 —— 現在這份名單用掉的位子比較少, 因為它更依賴罐頭臉。規則相同,擁擠程度不同。

一個數字就把「有多擠」講完了

上面那組 99.6% 是「還剩幾個空位」。但擁擠還有第二種量法, 而且這一種不必知道總共有幾個位子數同一個臉皮編號被幾位球員共用。

名冊球員用到的編號 被兩人以上共用的編號最多幾人共用一個
剛安裝好的英文原版2,921465 01
2009 台灣之光名冊(讀者重現不了) 3,222872 494
本站測試機現在的名單3,247699 132

EA 出貨的那份,一個共用都沒有。2,921 位球員、465 個臉皮編號, 一人一號,乾乾淨淨。2009 那份社群名冊有 49 個編號被兩人以上共用。 這是「號碼不夠用」最直接的證據 —— 不必聽誰說,也不必先知道 894 這個數字

共用最極端的兩個:

c038 李振昌(來源:shojah) · 現在的名單還指派著 c114 陳鴻文(來源:黃衫男子) · 現在的名單還指派著 c119 增菘瑋(來源:shojah) · 現在的名單還指派著 c130 蔣智賢(來源:shojah) · 現在的名單還指派著 c131 陳金鋒(來源:shojah) · 現在的名單還指派著 c167 羅國輝(來源:shojah) · 現在的名單沒有指派 c183 林彥峰(來源:黃衫男子) · 現在的名單沒有指派 c190 川上憲伸 Kenshin Kawakami(來源:黃衫男子) · 現在的名單還指派著 c192 相川亮二 Ryoji Aikawa(來源:黃衫男子) · 現在的名單還指派著 c214 林旺億(來源:黃衫男子) · 現在的名單沒有指派 c229 詹智堯(來源:台灣之光模組) · 現在的名單還指派著 c423 洪晨恩(來源:黃衫男子) · 現在的名單還指派著 c442 前川勝彥 Katsuhiko Maekawa(來源:冬季聯盟模組) · 現在的名單還指派著 c496 林哲瑄(來源:shojah) · 現在的名單沒有指派 c520 羅錦龍(來源:台灣之光模組) · 現在的名單還指派著 c678 黃偉晟(來源:黃衫男子) · 現在的名單沒有指派 c682 陳鏞基(來源:小豪前輩) · 現在的名單沒有指派 c683 野茂英雄(來源:沒有來源標記) · 現在的名單還指派著 c691 羅嘉仁(來源:shojah) · 現在的名單沒有指派 c695 2009 年那份名冊裡誰都沒有用到 c703 2009 年那份名冊裡誰都沒有用到 c773 Mark Prior(來源:MVP2005原版) · 現在的名單還指派著 c813 田澤純一 Tazawa Junichi(來源:黃衫男子) · 現在的名單沒有指派 c831 2009 年那份名冊裡誰都沒有用到 c862 倪福德(來源:shojah) · 現在的名單還指派著 c870 2009 年那份名冊裡誰都沒有用到 c873 上原浩治 Uehara Koji(來源:NPB8.4模組) · 現在的名單還指派著 c874 郭嚴文(來源:shojah) · 現在的名單還指派著 c882 鄭凱文(來源:shojah) · 現在的名單還指派著 c892 鄭錡鴻(來源:台灣之光模組) · 現在的名單還指派著 c001 c037 c073 c109 c145 c181 c217 c253 c289 c325 c361 c397 c433 c469 c505 c541 c577 c613 c649 c685 c721 c757 c793 c829 c865
c001 到 c900 這 900 個編號畫成格子,一格一個編號,左邊是每一列的起始編號。 (其中 894 個在 models.big 裡真的有檔案,缺的六號是 c116 c125 c170 c177 c188 c219。) 整片綠色就是「沒有空位」的樣子。 滑鼠移到亮色那 26 格會顯示是誰、來源是誰 —— 那 26 個就是二十六個資料夾那一頁講的那批收藏。 這張圖跟介面座標圖一樣是從量到的數字直接畫出來的, 不是手繪也不是截圖。
⚠️ 空心的四格(c695 c703 c831 c870)是把教練也算進去之後 誰都沒用到的;圖上的深色格子只算球員,所以深色格子比四個多。

怎麼自己查一位球員的兩個號碼

用記事本或任何文字編輯器打開 data\database\attrib.dat,搜球員的英文姓氏。 找到那一列之後,先回頭看第一行的欄位表, 確認你手上這一份的 playerattrib_faceplayerattrib_audioid 各是第幾欄(剛安裝好的原版是 10 與 17,社群名冊是 10 與 16), 再去看以那兩個編號開頭的兩格:

(社群名冊的排法:face 第 10 欄、audioid 第 16 欄)
...,10 183,...,16 3494,...

同一列在剛安裝好的原版裡,第二格會寫成 17 3494 —— 每一格的前綴數字是跟著欄號走的,所以照著欄位名找、不要照著數字找

這代表

臉皮是 c183models.big 裡的 c183.fsh)、 本人號碼是 3494(大頭照 3494.fsh、語音 3494a/c/d.dat)。

每一格都帶著自己的欄位編號當前綴,這是這個檔的通則 —— 見球員資料檔的真相
⚠️ 上面這一列是從那份 2009 名單抄下來的(就是上面十五人表裡的林彥峰), 拿來示範一列長什麼樣子;你自己那份名冊裡不會有 3494 這個號碼, 要查的是你自己搜到的那一列。

一個順手抓到的教訓

本站測試機上有 95 個依「球員名 + 編號 + 來源」命名的素材資料夾。 把資料夾名字上的編號資料夾裡面真正的檔名逐一比對:

素材一致
大頭照45 / 46
語音23 / 23
臉皮26 / 26

不一致的那一個:資料夾名字寫 4976,裡面的檔案是 4967.fsh。 去名單裡查,4967 才是對的 —— 而且當年的說明書也把同一個數字寫顛倒了。

資料夾名字只是給人看的便條紙

錯的是人打的標籤,遊戲讀到的檔案是好的。 兩邊對不上的時候,以裡面的檔案加上名單為準

這頁不能告訴你什麼

一件這頁不教的,三件本站沒有做到的事

一、這一頁不教你怎麼換臉皮,它只講號碼制度。動手的是另外兩課: 幫球員換一張臉(只改名冊那一欄, 指定某位球員改用哪一張現成的臉皮)、做一張新的球員臉皮 (把空位現在的貼圖匯出來、在原圖上改成你自己的圖,再匯回 models.big)。
二、901–915 這 15 個罐頭臉長什麼樣,本站沒有查出來。 只知道沒有對應的檔案。未解
三、四位數號碼是誰決定的、能不能自己指定,本站沒有驗過。 只證實了「改了那一欄,大頭照與語音會跟著換到哪個檔名」這件事的對應關係。
四、那 68 個有號碼卻沒有圖的人,遊戲畫面上會顯示什麼,本站沒有實機看過; 255 張沒人用的圖是怎麼來的,也沒有查出來。未解

(2026-09-06 訂正:第一條原本寫「本站沒有教你怎麼換掉一張臉皮…那需要 3D 模型與貼圖工具」。 那兩課後來做了,而且做一張新的球員臉皮是在匯出來的原圖上改 256×512 的 2D 貼圖,不必動 3D 模型工具。)

📌 重點整理

接下來