七分鐘 › 做臉皮
七分鐘學會製作臉皮並匯入遊戲
大頭照是資料頁上那張平面照片;臉皮是球場上那顆 3D 頭。兩個是不同的東西、不同的檔案。七分鐘先學最快的做法:把球員指去用另一張現成的臉。
⏱ 七分鐘怎麼分配
| 做什麼 | 分鐘 |
|---|---|
| 搞清楚臉皮跟大頭照的差別 | 1 |
| 查球員現在用哪張 | 1 |
| 挑一張要換的 | 2 |
| 預覽並寫入 | 2 |
| 進遊戲確認 | 1 |
前置
- 已安裝的 MVP Baseball 2005
- Python 3.7 以上
- 下載 mvp_swap_face.py。下載後先把它搬進專用資料夾
MVP_Tools(第 0 課操作六)。再打開檔案總管,進到MVP_Tools,點一下最上面的網址列,把字刪掉改打cmd按 Enter,後面的指令都在開出來的這個視窗打(Mac 開終端機先打cd ~/MVP_Tools)
🛟 動手之前:先完整備份整個遊戲資料夾
把整個遊戲資料夾複製一份到別的地方,
包括裡面存放紀錄的資料夾。紀錄也可能放在遊戲資料夾外面:
「文件」裡的 Documents\MVP Baseball 2005,那一個要另外複製。
怎麼整包複製、紀錄(王朝、名單、設定)的兩個位置各在哪、找不到怎麼找: 看備份與還原 SOP 的「整包複製」。
👉 你要做的事
先查這位球員現在用哪一張臉。
⚠️ 名冊裡是英文拼法,打中文查不到。這裡用陳金鋒當例子 —— 他在原版遊戲裡就叫 Chin-Feng Chen,2005 年他真的在道奇隊(不過遊戲的原版名冊把他放在小聯盟的 Las Vegas 51s,不在道奇的大聯盟名單裡)。剛安裝好的原版裡他用的是通用臉(face=906),EA 沒有給他專屬臉 —— 本站測試機上他之所以有一張 c607,是社群模組後來加上去的。EA 給他的專屬品是大頭照,不是臉皮:原版 portrait.big 裡的 1598.fsh。曹錦輝是 Chin-Hui Tsao。
(王建民 2005 年才上大聯盟,沒趕上這款遊戲,所以查不到他。)
Windows:
python -I mvp_swap_face.py "〔你的遊戲資料夾〕" --find Chin-Feng
Mac / Linux:
python3 -I 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 -I mvp_swap_face.py "〔你的遊戲資料夾〕" --set Chin-Feng 773
Mac / Linux:
python3 -I mvp_swap_face.py "〔你的遊戲資料夾〕" --set Chin-Feng 773
確認之後加 --apply。
⚠️ 上面那個 773 只是示範用的數字。
剛安裝好的原版裡沒有 c773(本站量到的 504 張臉全部落在
c001 到 c606),照抄再加 --apply 會被腳本擋下來,
attrib.dat 一個位元組都不會被寫到。請換成上一步查到的、你這份遊戲裡確實存在的編號。
✅ 怎麼知道成功了
--find顯示的編號變成新的- 進遊戲看球員在球場上的臉
❌ 出錯處理
| 症狀 | 怎麼辦 |
|---|---|
| can't open file '…mvp_*.py' | 命令視窗跟腳本不在同一個資料夾。
打開放著那個 .py 的資料夾(照第 0 課操作六搬過的話就是 MVP_Tools),在網址列打 cmd 按 Enter,用新開的視窗再跑一次(Mac 用 cd 切過去,例如 cd ~/MVP_Tools)。
還是一樣的話,是檔名對不上:瀏覽器可能在檔名後面加了 (1),把它改成跟指令裡一模一樣 |
| 臉沒變 | 有些畫面會快取。退出遊戲重開再看 |
腳本說「models.big 裡沒有 cXXX 這張臉」 | 那個編號在你這份 models.big 裡不存在。加了 --apply 也不會寫入,檔案沒被動過、也不會產生備份,不必還原。改挑一個存在的編號 |
腳本說「找不到 models.big」 | 路徑指錯了(要指遊戲安裝資料夾,它的下一層才是 data)。這時候換 1 到 900 的專屬臉又加了 --apply,腳本一樣會停手不寫入。路徑指對再跑一次 |
| 變成沒有臉 / 破圖 | --restore 還原,換一個編號。這不會是「專屬臉編號不存在」造成的:1 到 900 不在 models.big 裡時,腳本在寫入前就擋掉了。剩下的可能是填了 901 以上的通用臉編號、或填了 0(本站沒有逐號驗過它們在遊戲裡各長什麼樣) |
| 想做一張全新的 | 那要用另一支腳本,見下面的完整課程 |
⚠️ 這一課到哪裡為止
七分鐘只夠「換成現成的」。從一張照片做出全新的 3D 臉皮是另一件事:要處理 DXT1 壓縮、要對齊 UV。本站有完整的一課跟一支腳本在做這件事,但那不是七分鐘的量。
想弄懂為什麼
- 幫球員換一張臉 —— 完整版
- 做一張新的球員臉皮 —— 從零開始那條路
- 模型與臉皮 models.big