七分鐘 › 做臉皮
七分鐘學會製作臉皮並匯入遊戲
大頭照是資料頁上那張平面照片;臉皮是球場上那顆 3D 頭。兩個是不同的東西、不同的檔案。七分鐘先學最快的做法:把球員指去用另一張現成的臉。
⏱ 七分鐘怎麼分配
| 做什麼 | 分鐘 |
|---|---|
| 搞清楚臉皮跟大頭照的差別 | 1 |
| 查球員現在用哪張 | 1 |
| 挑一張要換的 | 2 |
| 預覽並寫入 | 2 |
| 進遊戲確認 | 1 |
前置
- 已安裝的 MVP Baseball 2005
- Python 3.7 以上
- 下載 mvp_swap_face.py
🛟 動手之前:先完整備份整個遊戲資料夾
把整個遊戲資料夾複製一份到別的地方, 包括裡面存放紀錄的資料夾。不要挑檔案,整包複製最省事也最保險。
「紀錄」是指這些(它們跟遊戲檔混在同一個資料夾裡):
Support\MVP Baseball 2005\—— 遊戲自己建的, 裡面是設定(MVPOptions_Options.sav)與手把設定 (controller.cfg)。剛安裝好時沒有這個資料夾,玩過才出現。- 王朝、老闆模式、名單與玩家檔案的存檔(
*_Franchise.sav、*_Owner Mode.sav、*_Rosters.sav、*_Profile.sav)—— 沒有固定的資料夾名,你或你裝的模組包叫它什麼它就叫什麼。找不到就用這一行找:
dir /s /b "〔你的遊戲資料夾〕\*.sav"
find "〔你的遊戲資料夾〕" -name "*.sav"
上面第一行 Windows、第二行 Mac。 本站每一支工具都會自己備份它要動的那一個檔, 但那只保得住那一個檔 —— 整包備份保的是「你玩到現在的一切」。 完整做法看備份與還原 SOP。
👉 你要做的事
先查這位球員現在用哪一張臉。
⚠️ 名冊裡是英文拼法,打中文查不到。這裡用陳金鋒當例子 —— 他在原版遊戲裡就叫 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
決定要換成哪一號。
遊戲裡本來就有好幾百張臉。最省事的做法是找一位長相接近的球員,查出他的臉皮編號,直接拿來用。
⚠️ 編號一定要是你這份 models.big 裡真的有的。
1 到 900 的專屬臉編號如果不在裡面,這支腳本加了 --apply 會直接停手不寫入,
不是印個警告就放行;連 models.big 都讀不到的時候也一樣擋。
本站在兩份剛安裝好的原版上量到 504 張臉皮
(英文版與中文版,models.big 都是 172,992,803 位元組),全部落在
c001 到 c606;測試機那份裝過模組的(561,891,312 位元組)是
894 張,c607 到 c900 就占了 294 張。
抄一位現有球員的編號比較保險,但也不是保證:測試機那份名冊裡就有 1 位球員
指著 models.big 沒有的 c219。要確定,先跑一次不加任何選項的總覽,
它會把「指向不存在臉皮」的人列出來。
預覽,然後寫入。
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 張臉全部落在
c001 到 c606),照抄再加 --apply 會被腳本擋下來,
attrib.dat 一個位元組都不會被寫到。請換成上一步查到的、你這份遊戲裡確實存在的編號。
✅ 怎麼知道成功了
--find顯示的編號變成新的- 進遊戲看球員在球場上的臉
❌ 出錯處理
| 症狀 | 怎麼辦 |
|---|---|
| 臉沒變 | 有些畫面會快取。退出遊戲重開再看 |
腳本說「models.big 裡沒有 cXXX 這張臉」 | 那個編號在你這份 models.big 裡不存在。加了 --apply 也不會寫入,檔案沒被動過、也不會產生備份,不必還原。改挑一個存在的編號 |
腳本說「找不到 models.big」 | 路徑指錯了(要指遊戲安裝資料夾,它的下一層才是 data)。這時候換 1 到 900 的專屬臉又加了 --apply,腳本一樣會停手不寫入。路徑指對再跑一次 |
| 變成沒有臉 / 破圖 | --restore 還原,換一個編號。這不會是「專屬臉編號不存在」造成的:1 到 900 不在 models.big 裡時,腳本在寫入前就擋掉了。剩下的可能是填了 901 以上的通用臉編號、或填了 0(本站沒有逐號驗過它們在遊戲裡各長什麼樣) |
| 想做一張全新的 | 那要用另一支腳本,見下面的完整課程 |
⚠️ 這一課到哪裡為止
七分鐘只夠「換成現成的」。從一張照片做出全新的 3D 臉皮是另一件事:要處理 DXT1 壓縮、要對齊 UV。本站有完整的一課跟一支腳本在做這件事,但那不是七分鐘的量。
想弄懂為什麼
- 幫球員換一張臉 —— 完整版
- 做一張新的球員臉皮 —— 從零開始那條路
- 模型與臉皮 models.big