七分鐘 › 做臉皮

七分鐘學會製作臉皮並匯入遊戲

大頭照是資料頁上那張平面照片;臉皮是球場上那顆 3D 頭。兩個是不同的東西、不同的檔案。七分鐘先學最快的做法:把球員指去用另一張現成的臉

⏱ 七分鐘怎麼分配

做什麼分鐘
搞清楚臉皮跟大頭照的差別1
查球員現在用哪張1
挑一張要換的2
預覽並寫入2
進遊戲確認1

前置

🛟 動手之前:先完整備份整個遊戲資料夾

把整個遊戲資料夾複製一份到別的地方包括裡面存放紀錄的資料夾。不要挑檔案,整包複製最省事也最保險。

「紀錄」是指這些(它們跟遊戲檔混在同一個資料夾裡):

dir /s /b "〔你的遊戲資料夾〕\*.sav"
find "〔你的遊戲資料夾〕" -name "*.sav"

上面第一行 Windows、第二行 Mac。 本站每一支工具都會自己備份它要動的那一個檔, 但那只保得住那一個檔 —— 整包備份保的是「你玩到現在的一切」。 完整做法看備份與還原 SOP

👉 你要做的事

1

先查這位球員現在用哪一張臉。

⚠️ 名冊裡是英文拼法,打中文查不到。這裡用陳金鋒當例子 —— 他在原版遊戲裡就叫 Chin-Feng Chen,2005 年他真的在道奇隊(不過遊戲的原版名冊把他放在小聯盟的 Las Vegas 51s,不在道奇的大聯盟名單裡)。剛安裝好的原版裡他用的是通用臉face=906),EA 沒有給他專屬臉 —— 本站測試機上他之所以有一張 c607,是社群模組後來加上去的。EA 給他的專屬品是大頭照,不是臉皮:原版 portrait.big 裡的 1598.fsh。曹錦輝是 Chin-Hui Tsao
(王建民 2005 年才上大聯盟,沒趕上這款遊戲,所以查不到他。)

Windows:

python mvp_swap_face.py "〔你的遊戲資料夾〕" --find Chin-Feng

Mac / Linux:

python3 mvp_swap_face.py "〔你的遊戲資料夾〕" --find Chin-Feng
2

決定要換成哪一號。

遊戲裡本來就有好幾百張臉。最省事的做法是找一位長相接近的球員,查出他的臉皮編號,直接拿來用。

⚠️ 編號一定要是你這份 models.big 裡真的有的。 1 到 900 的專屬臉編號如果不在裡面,這支腳本加了 --apply直接停手不寫入, 不是印個警告就放行;連 models.big 都讀不到的時候也一樣擋。 本站在兩份剛安裝好的原版上量到 504 張臉皮 (英文版與中文版,models.big 都是 172,992,803 位元組),全部落在 c001c606;測試機那份裝過模組的(561,891,312 位元組)是 894 張c607c900 就占了 294 張。 抄一位現有球員的編號比較保險,但也不是保證:測試機那份名冊裡就有 1 位球員 指著 models.big 沒有的 c219。要確定,先跑一次不加任何選項的總覽, 它會把「指向不存在臉皮」的人列出來。

3

預覽,然後寫入。

Windows:

python mvp_swap_face.py "〔你的遊戲資料夾〕" --set Chin-Feng 773

Mac / Linux:

python3 mvp_swap_face.py "〔你的遊戲資料夾〕" --set Chin-Feng 773

確認之後加 --apply

⚠️ 上面那個 773 只是示範用的數字。 剛安裝好的原版裡沒有 c773(本站量到的 504 張臉全部落在 c001c606),照抄再加 --apply 會被腳本擋下來, attrib.dat 一個位元組都不會被寫到。請換成上一步查到的、你這份遊戲裡確實存在的編號。

✅ 怎麼知道成功了

❌ 出錯處理

症狀怎麼辦
臉沒變有些畫面會快取。退出遊戲重開再看
腳本說「models.big 裡沒有 cXXX 這張臉」那個編號在你這份 models.big 裡不存在。加了 --apply不會寫入,檔案沒被動過、也不會產生備份,不必還原。改挑一個存在的編號
腳本說「找不到 models.big路徑指錯了(要指遊戲安裝資料夾,它的下一層才是 data)。這時候換 1 到 900 的專屬臉又加了 --apply,腳本一樣會停手不寫入。路徑指對再跑一次
變成沒有臉 / 破圖--restore 還原,換一個編號。這不會是「專屬臉編號不存在」造成的:1 到 900 不在 models.big 裡時,腳本在寫入前就擋掉了。剩下的可能是填了 901 以上的通用臉編號、或填了 0(本站沒有逐號驗過它們在遊戲裡各長什麼樣)
想做一張全新的那要用另一支腳本,見下面的完整課程

⚠️ 這一課到哪裡為止

七分鐘只夠「換成現成的」。從一張照片做出全新的 3D 臉皮是另一件事:要處理 DXT1 壓縮、要對齊 UV。本站有完整的一課跟一支腳本在做這件事,但那不是七分鐘的量。

想弄懂為什麼