我想打开具有 plist 和 ExportJson 文件的游戏的 png 文件中的纹理,但我无法做到

I want to open the textures in the png file of a game that has plist and ExportJson files, but I couldn't do it

提问人:Mehmet Mert 提问时间:11/16/2023 最后编辑:egleaseMehmet Mert 更新时间:11/16/2023 访问量:42

问:

我想在移动设备上检查我喜欢的游戏的纹理。据我了解,游戏纹理是用 cocos2d 制作的。 我以前反转过其他 2D 游戏的纹理,但我做不到,请帮忙。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>frames</key>
        <dict>
            <key>npc_alisa_arrange_black_01.png</key>
            <dict>
                <key>frame</key>
                <string>{{82,60},{22,32}}</string>
                <key>offset</key>
                <string>{-1,16}</string>
                <key>rotated</key>
                <false/>
                <key>sourceColorRect</key>
                <string>{{28,8},{22,32}}</string>
                <key>sourceSize</key>
                <string>{80,80}</string>
            </dict>
            <key>npc_alisa_arrange_black_02.png</key>
            <dict>
                <key>frame</key>
                <string>{{74,188},{22,30}}</string>
                <key>offset</key>
                <string>{-1,15}</string>
                <key>rotated</key>
                <false/>
                <key>sourceColorRect</key>
                <string>{{28,10},{22,30}}</string>
                <key>sourceSize</key>
                <string>{80,80}</string>
            </dict>
            <key>npc_alisa_cooking_black_01.png</key>
            <dict>
                <key>frame</key>
                <string>{{34,84},{22,36}}</string>
                <key>offset</key>
                <string>{-1,17}</string>
                <key>rotated</key>
                <false/>
                <key>sourceColorRect</key>
                <string>{{28,5},{22,36}}</string>
                <key>sourceSize</key>
                <string>{80,80}</string>
            </dict>
            <key>npc_alisa_cooking_black_02.png</key>
            <dict>
                <key>frame</key>
                <string>{{66,2},{22,38}}</string>
                <key>offset</key>
                <string>{-1,18}</string>
                <key>rotated</key>
                <false/>
                <key>sourceColorRect</key>
                <string>{{28,3},{22,38}}</string>
                <key>sourceSize</key>
                <string>{80,80}</string>
            </dict>
            <key>npc_alisa_cooking_black_03.png</key>
            <dict>
                <key>frame</key>
                <string>{{2,126},{22,36}}</string>
                <key>offset</key>
                <string>{-1,17}</string>
                <key>rotated</key>
                <false/>
                <key>sourceColorRect</key>
                <string>{{28,5},{22,36}}</string>
                <key>sourceSize</key>
                <string>{80,80}</string>
            </dict>

我尝试使用经典的纹理解包器,但没有成功。通常它们很容易打开,但我不断收到错误。

png plist

评论

0赞 Mehmet Mert 11/16/2023
顺便说一句,这个 plist 的一小部分和一个与 png 和 plist 同名的 exportjson 文件,我不确定这是否必要。
0赞 Mark Setchell 11/16/2023
也许您可以使用Google Drive或Dropbox或类似工具共享所有必要的数据。另外,您是否有一些屏幕截图可以显示事物的外观?
0赞 Mehmet Mert 11/16/2023
drive.google.com/file/d/1txbjPgUmt7-Cj4bT80jtxMxH8YHFIlwY/......
0赞 Mehmet Mert 11/16/2023
drive.google.com/file/d/1ZPWLaBgbfeRF4ZWUxO1iNbJ3EFqnSTo0/......
0赞 Mark Setchell 11/16/2023
我没有看到任何JSON文件...

答:

0赞 Mark Setchell 11/16/2023 #1

如果对 PNG 文件进行十六进制转储,则如下所示:

xxd npc_alisa.png | more

00000000: 0050 4e47 0d0a 1a0a 5000 000d 4948 4452  .PNG....P...IHDR
00000010: 0000 0100 0000 00f4 0803 0000 0043 d808  .............C..
00000020: ef00 0000 0467 414d 4100 00b1 8f0b fc61  .....gAMA......a

PNG 文件的“文件魔术”(又名签名)是:

89 50 4e 47 0d 0a 1a 0a

所以第一个字节被损坏了。你可以用十六进制编辑器编辑它,或者如果你像我一样是恐龙,用它来转储它为纯 ASCII,然后用于将第一个字节从 更改为 ,然后从纯 ASCII 重新组装二进制 PNG:xxdsed0089

它看起来像这样:

xxd -p npc_alisa.png | sed '1s/00/89/' | xxd -r -p > patched.png

如果您尝试使用该文件,则会出现错误,因为块的字段设置为这是一个巨大的数字,这将使 PNG 读者尝试读取 1342177293 字节并从文件末尾掉落。an 的正确长度是 13 个字节,所以应该是 .所以,我摆脱了可信赖的旧,并改变了它:lengthIHDR50 00 00 0dIHDRIHDR00 00 00 0dxxdsed

xxd -p npc_alisa.png | sed -e '1s/00/89/' -e '1s/1a0a50/1a0a00/' | xxd -r -p > patched.png

enter image description here


请注意,如果您没有/喜欢 和 ,则可以使用十六进制编辑器。这不是认可,我没有隶属关系,但这里有一个相当不错的在线,这意味着您不必在机器上安装任何东西,它也适用于倒霉的 Windows 用户。xxdsed