用Myst4Viewer看了一下patch.m4b里面的字幕文件,发现字幕文件也是有一定的层次结构的。
+ y6 L$ v; y0 n: D" j; j层次如下,字幕ID, 对应的语音文件ID, 后面是和语音文件对应的一组字幕,每句字幕还包含显示的起始时间。 # ~, A7 Y$ }0 b- J J
) v" Y' `/ T0 ~$ V" f) B& ?
抓图如下 % F3 q; z+ j3 i
5 S5 j5 h3 s! j' D' h8 B! g' x
% c& [8 y* R" f( K0 v# T--------------------------------------------------
( _. _0 y1 e/ _9 ~2009.12.19 更新
& z8 @1 G, k i6 |' T/ q& x分析了一下字幕文件patch.m4b中的english.m4b中的bin文件的格式。
! L, ^9 ]2 Q4 q/ Y4 @; {格式如下,都画在图片上了。其中1-5是代表5句字幕的定义信息,
- w9 h1 i- b6 A! S+ R5 v. Q8 X+ |$ T最后4个字节定义了字幕的长度。
/ c& ?+ l% ^1 ~. Q$ V |1 c% H X 3 y+ ?" W( ? R2 ~ Z
-------------------------------------------------- 6 u* j* Q/ C6 Q
2009.12.21 更新 - h& W2 y) w B. v
字幕文件里面有一个特殊的文件main_menu_ui.bin。
8 E* m# c0 Q9 X' _# r: ]估计游戏主菜单上的一些字幕都保存在这个文件里。 : n. D9 d& n" @% C% _
大致分析了一下,格式也比较简单,下面是这个文件的格式。 & ^; B) H4 ~" z S; B7 e
到0x2A为止都是一些固定的信息,从0x2B开始是一组一组的字幕信息,结构如下。
e. x8 J. f2 p: r) ], l+ Y/ k& K5 \- f) U
4字节 字幕ID长度 3 l. R% h" N+ j% |6 a* M
n字节 字幕ID " `5 _2 R3 t1 L' I
4字节 字幕长度 ( `% ^; G! V# u5 \, X$ q; B4 j
n字节 字幕
. d4 T: {1 o! ^( V8 j7 z. Q5 Y
) ^2 _ g4 z1 m6 W( ]1 _分析清楚了这个结构就很容易可以导出这个文件里的字幕了。 |