替换 Destiny Child 中的角色模型 (下)

上一篇文章《替换 Destiny Child 中的角色模型 (上)》中介绍了替换 Destiny Child 的角色模型,不过条件有些特殊,需要目标皮肤中的文件数量小于或等于被替换皮肤中的文件数量。实际上一般商城皮肤的贴图都会比 S 皮肤多一张,所以接下来介绍如何替换这种皮肤……

写在前面

目前由于未知 pck 包内文件的实际文件名是一种怎样的存储方式,所以无法给 pck 包添加文件,只能在其基础上修改/删除文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
PCK = {
id: 'PCK\0',
version: byte[4],
count: int32,
table: FILE[count]
}
FILE = {
dummy: byte[8], // 可能为文件名的 hash,但不可读
flag: byte,
offset: int32,
size: int32,
originalSize: int32,
less: int32
}

这次拿巴里来做实验

  • 找到 c318_01.pckc318_10.pck,都解压出来会发现与 c318_01 相比 c318_10 目录中的文件要多出一个 0006.png
  • 此时我们需要做一个决定,删除 c318_10 目录中的一个文件,用 0006.png 去替代

打开 0004.json,可以根据文件名猜测如下
0000.mtn0001.mtn0002.mtn 分别对应 c318_10_attack.mtnc318_10_hit.mtnc318_10_idle.mtn,也就是攻击被击空闲三种动作文件。
0003.moc 对应 character.dat 为 live2d 模型文件
0005.png0006.png 对应了 texture_00.pngtexture_01.png

  • 知道各个文件分别是什么作用以后,发现除了 0001.mtn (c318_10_hit.mtn) 以外删除其他文件似乎都有大问题。于是接下来删除 0001.mtn,并把 0006.png 重命名为 0001.png
  • 接下来把 c318_10 目录下除了 0004.png 以外的文件复制到 c318_01 目录下
  • 修改 c318_01 目录下的 0004.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
--- a/0004.json
+++ b/0004.json
@@ -2,19 +2,19 @@
"version": "Sample 1.0.0",
"model": "character.dat",
"textures": [
- "texture_00.png"
+ "texture_00.png", "c318_01_hit.mtn"
],
"motions": {
"attack": [
{
"file": "c318_01_attack.mtn",
"fade_in": 0,
"fade_out": 0
}
],
"hit": [
{
- "file": "c318_01_hit.mtn",
+ "file": "c318_01_attack.mtn",
"fade_in": 0,
"fade_out": 0
}

效果展示

暂无,回到家补图……