速查 › 動畫 anims.big

動畫 anims.big

投球、揮棒、守備、跑壘的每一個動作,全部在一個 8.5 MB 的檔案裡。 這一區有個很特別的地方:730 個項目裡有 244 個是純文字,其餘是標準格式的目標檔 —— 所以你電腦上現成的工具就讀得動。

這一頁講的是原廠檔案

本站測試機的 anims.big 檔案日期是 2005 年 1 月, 沒有被改過(判斷方法見模型那頁)。 所以這頁描述的是 EA 出貨時的樣子。

先看規模

項目數字備註
檔案大小8.5 MBdata/anims/anims.big
項目數730 個244 個 .axt + 243 個 .ord + 243 個 .orl
動作庫(bank)243 個每個 bank 三個檔
動畫檔總數2,024 個由建置清單加總得出;其中 sd_dugupset_int02_03a 被兩個庫各列一次,不重複的名字是 2,023 個
壓縮0 個這個封裝檔完全沒有壓縮,跟遊戲裡其他地方都不一樣

上面每個數字都是把 anims.big 現場打開數出來的,不是引用他人資料。

多出來的那一個檔

244 個 .axt 對 243 個 .ord,多出來的叫 Banklist.axt。 它只有 42 個位元組,內容是一行字:

CLOSE_UP DEF_BANK FACIAL HANDBANK MIDDLE

243 個 bank 裡,只有這 5 個被列在清單上。 實測這 5 個正好就是動畫數量最多的前 5 名,一個不差。 未確認 但清單的用途是什麼,本站沒有查出來。

.axt:直接就是純文字

不用解壓、不用工具,記事本打開就能看(244 個 .axt 加起來只有 156,755 個位元組,佔整包的 1.75%):

[Version 0.03]
	1103890691	Dec 24 2004 04:18:11        這個 bank 何時打包

[Bank]
	CLOSE_UP                            bank 名稱

[Directory]
	D:/mvp2004/artwork/anims            當年的來源路徑

[Files] 84                              這個 bank 裝了 84 個動畫
	u_readyidle          1103876064	Dec 24 2004 00:14:24
	sb_strike04          1103875954	Dec 24 2004 00:12:34
	sb_strike03          1103875954	Dec 24 2004 00:12:34
	...
檢查 243 個 .axt結果
版本標記全部是 0.03
來源目錄全部是 D:/mvp2004/artwork/anims
打包時間範圍2 分 36 秒

243 個 bank 全部在 2 分 36 秒內打包完(本地時間 04:17:57 到 04:20:33)。 而裡面的動畫檔本身是四個小時前編譯的 —— 這段時間差的故事在平安夜凌晨的兩次建置

最重要的發現:.ord.orl 是同一個檔被切成兩半

先看 .ord 的開頭四個位元組:

7F 45 4C 46      = .ELF ← 這是標準的目標檔格式,不是 EA 私有格式

但如果你直接拿 ELF 工具去讀它,會失敗。原因是檔頭裡寫著 「section 表在第 342,176 個位元組」,而整個 .ord 只有 327,776 個位元組。 指到檔案外面去了。

把兩個檔接起來就對了

.ord 的長度 327,776 + .orl 的長度 14,640 = 342,416。 342,176 落在這個範圍內。

本站把 243 個 bank 全部接起來測試243 / 243 都變成可以正常解析的 ELF,section 名稱全部合法,一個例外都沒有。

接起來之後,裡面是這樣:

section裝什麼CLOSE_UP 的大小
.data動畫資料本體327,712
.shstrtabsection 的名字48
.strtab符號的名字80
.symtab符號表64
.rel.data重定位資料14,208

切割點是有規則的

.ord 的長度,剛好等於 .data 這一段結束的位置。 243 個 bank 全部符合,零例外。

換句話說,EA 把一個完整的目標檔從資料結束的地方切開: 前半段(資料)叫 .ord,後半段(各種表格)叫 .orl

這對你有什麼用

接起來之後,你電腦上現成的 ELF 工具就讀得動, 不必自己寫解析器。想看某個 bank 有哪些符號、資料多大、重定位表多長, 用系統內建的工具就有答案。

這在逆向裡是難得的好運:大部分遊戲資料都是廠商自己發明的格式, 這裡卻是業界標準。

ELF 檔頭透露的事

欄位243 個 bank 的值意思
e_type1可重定位目標檔(還沒連結成執行檔的中間產物)
e_machine8MIPS 架構
section 數6243 個全部一樣
符號數4243 個全部一樣

每個 bank 的四個符號裡,有兩個是看得懂的:

__EAGL_TOOLLIB_VERSION:::EAGL_TOOLLIB_VERSION-4
__AnimationBank:::CLOSE_UP

這裡要誠實

e_machine = 8 在 ELF 規格裡就是 MIPS,這是讀出來的事實

至於「為什麼 PC 版的遊戲資料是 MIPS 架構的目標檔」—— 合理的猜想跟同期主機平台有關, 推測 但本站沒有證據,不寫成定論。

整個遊戲有多少這種檔

上面講的是 anims.big。本站把原版全部 207 個封裝檔、29,816 個項目 逐一解開,看哪些的開頭是 7F 45 4C 46

封裝檔是 ELF 的項目裝什麼
data\models.big549球員模型
data\anims\anims.big243動作庫(本頁上面在講的)
data\stadium\*.big87 × 31 = 2,697球場
data\misc\miscmod.big14雜項模型
合計3,503

87 個球場封裝檔,每一個剛好 31 個

零變異。不是「大部分是 31」,是 87 個檔全部剛好 31, 一個 30 或 32 都沒有。

87 是檔數不是場地數:檔名去掉 daynite 之後只剩 58 個場地代號,其中 29 個日夜各一份、29 個只有一份 (astrdomemetrdomeolymdometropdome 這幾個巨蛋就在後面這半),29 × 2 + 29 = 87。

球場之間差很多 —— 有巨蛋、有露天、有 1900 年代的老球場 —— 可是模型檔的數量一模一樣。 這代表 EA 有一套固定的球場模型清單,每個檔照著填。 哪 31 個各是什麼,本站還沒對照出來

3,503 個裡面,只有 14 個是完整的

本頁上面說 .ord 的段落表指到檔案外面去,要接上 .orl 才完整。 把這個判斷套到全部 3,503 個身上:

段落表在哪幾個意思
指到檔案外面3,489要接上另一半
落在自己檔內14本身就是完整的 ELF

那 14 個全部在 data\misc\miscmod.big, 而那個檔的 ELF 項目剛好就是這 14 個 —— 換句話說:miscmod.big 裡 100% 是完整的,其他所有封裝檔 0%。

miscmod.big 裡那 14 個
aple.o   bern.o   bli1.o   bli2.o   lawn.o   moon.o   obj1.o
obj2.o   obj3.o   obj4.o   pla1.o   pla2.o   roof.o   tran.o

看名字像是場景裡的雜物(草皮、月亮、屋頂、植物之類), 但本站沒有把它們畫出來對照過,所以只講檔名長什麼樣。 內容未驗

這 14 個的價值在哪

它們證明「切成兩半」不是這個格式的規定。 同一款遊戲、同一個工具鏈、同樣是 MIPS 目標檔, 這 14 個就是整個放進去的。

所以拆開 .ord.orl 這件事, 是 EA 針對某些用途做的選擇,不是格式逼他們這麼做。 為什麼只有這一個檔例外,本站沒有答案

3,503 個全部是 MIPS

e_machine 這個欄位在 3,503 個裡面全部都是 8, 一個例外都沒有 —— 不只 anims.big 的 243 個, 球場、球員模型、雜項模型也全是。

上面那段「為什麼 PC 版的資料是 MIPS」的疑問, 範圍因此從動作庫擴大到整個遊戲的模型資料。 答案還是未解

243 個 bank 怎麼分

名稱bank 數動畫數說明
DEF_BANK11,052 一個 bank 就裝了全部 2,024 個動畫的一半以上,3.08 MB
CLOSE_UP184特寫鏡頭
MIDDLE150
FACIAL148表情
HANDBANK116
SIGB####66536 打擊與投球的姿勢庫SIGB 檔名裡是 b_ 開頭, SIGP 則對應投球 命名佐證
SIGP####59
N 開頭各系列113 NFHANDMGRNBDECK 等,多數只有 1~2 個動畫

125 個專屬動作庫,多數掛著球員名字

SIGB 66 個加 SIGP 59 個 = 125 個專屬 bank,共 536 個動畫檔。

(2026-09-05 訂正:這一格原本寫「125 位球員有自己的動作」,那是錯的。 把 125 個庫的動作檔名全部列出來看,通篇掛著球員名字的是 102 個; 另外 23 個裝的是通用姿勢與投法 —— SIGB0000SIGB0006 是共用的打擊擺動 (b_gwiggleb_bwiggleb_clwiggle 這種, 其中 SIGB0000 裡混了一個 b_jedmondshrtofirst_l)、SIGP0000SIGP0009 是上肩/側投/下勾/蝴蝶球這類投法通稱(p_stlosubmarinelop_loloknucklelo)、 再加 cooperstown0103 的泛用填充各兩組。)

打開其中最大的那個(SIGB0014,15 個動畫)會看到這些檔名: b_ichirowiggleb_ichirotobpreswingb_ichiroswinglos連準備動作的小晃動都單獨做了一個。

能改到什麼程度

你可能想做的事現況
知道某個 bank 裝了哪些動畫 完全可改 .axt 是純文字,直接讀
用標準工具檢視 bank 結構 完全可改 接起 .ord.orl 即可
改動作本身(揮棒姿勢、投球姿勢) 未解 .data 裡的動畫資料本站未解讀
幫新球員加專屬動作 未解 同上,且需要處理重定位表

誠實邊界

本站解出的是外層容器:bank 怎麼組織、檔案怎麼切、符號叫什麼。 .data 裡面那 327,712 個位元組實際代表什麼骨架、什麼影格, 本站沒有解讀

所以目前這一頁的價值是「看得懂結構」,不是「改得動動作」。

動作的名字讀得出來

每個動作庫(.axt)都是純文字,裡面就是一份動作清單。 而這份清單自己會驗算

每個庫都先宣告自己有幾個動作

[Files] 6
    b_jeterpractice       1103875574  Dec 24 2004 00:06:14
    b_jeterstepfwd        1103875574  Dec 24 2004 00:06:14
    b_jetertostance       1103875574  Dec 24 2004 00:06:14
    ...

[Files] 後面那個數字,跟底下實際列出來的行數比對: 243 個動作庫全部相符,零例外。

第 244 個 .axt上面講過的那個清單檔, 它沒有 [Files] 這一行,所以不參與這個檢查。

動作名字的前綴

把 243 個庫裡全部 2,024 個動作名字攤開, 會看到它們都帶著一個字母開頭的前綴:

前綴幾個動作推測是什麼
f_592守備
b_571打擊(下面有直接證據)
r_344跑壘
s_151
p_139投球(下面有直接證據)
c_48
u_19
h_16
合計1,880
兩個字母的前綴
例如 sb_
144
總計2,024 跟上面量到的動作總數一致

推測 「守備/打擊/跑壘」是從字母猜的(field、bat、run)。 b_p_ 這兩個有直接證據。

兩個前綴可以被完全證實

換打擊姿勢那一課量到: 打擊姿勢的編號對到 SIGB 開頭的庫、投球姿勢對到 SIGP

把那些庫打開看裡面的動作前綴:

幾個裡面的動作前綴
SIGB0000–SIGB006566 全部是 b_
SIGP0000–SIGP005859 全部是 p_

125 個庫,零例外。 打擊姿勢庫裡只有打擊動作、投球姿勢庫裡只有投球動作 —— b 是 bat、p 是 pitch,這兩個不是猜的。

244 個庫分成兩種

庫名開頭幾個是什麼
SIGB/SIGP125 打擊與投球的姿勢庫 —— 66 個打擊姿勢 + 59 個投球姿勢
其他 41 種名字
DEF_BANK、FACIAL、HANDBANK、 CLOSE_UP、N 開頭的一批…
119共用動作
合計244 其中一個是清單檔

本頁上面量到的「125 個專屬 bank」, 在換姿勢那一課被從完全不同的方向再量了一次 (66 + 59),兩邊撞到同一個數字

📌 重點整理

接下來