lovelive吧 关注:524,378贴子:10,615,800

技术宅告诉你如何获得【立绘】原图。

取消只看楼主收藏回复

一楼度娘。


IP属地:湖南1楼2017-04-12 21:15回复
    前段时间,楼主制作了一款基于wallpaper engine的lovelive动态壁纸。所以也算是花了一点时间在网上搜索sif的立绘资源。找着找着,自然找到了LLhelper的查卡器。于是愉快地从上面右键另存为图片,下载了需要的资源。最近想着往做好的壁纸里面追加一点立绘,发现一张一张从LLhelper下载太麻烦了。有没有什么别的办法呢?
    很快,我就想到,我需要的资源手机里不就有吗?——于是楼主开始了解包sif的大业。


    IP属地:湖南3楼2017-04-12 21:22
    回复
      要解包sif首先当然要能访问游戏安装目录的位置。iOS端太封闭,自认为没什么办法,于是向更开放的安卓端下手。
      首先,楼主获取了手机的root权限。具体过程我就不多说明了,安卓root还是很简单的。然后就可以通过re浏览器访问系统的根目录了。默认情况下,sif 的安装目录在./data/data/klb.android.lovelivecn目录下。
      整个复制出来大概有1.4GB。


      IP属地:湖南5楼2017-04-12 21:30
      回复
        打开这个文件夹,一番查看后,楼主确定所有的资源文件都在\klb.android.lovelivecn\files\external\assets文件夹下。

        里面一共就五个文件夹。第一个文件夹是一些动画资源;第二个文件夹就是图像资源;第三个文件夹里面就一个文件,不知道干嘛的;第四个文件夹是声音资源;第五个文件是UI资源。


        IP属地:湖南6楼2017-04-12 21:41
        回复
          既然全都复制出来了,我就先研究了一下里面的声音资源。打开sound文件夹,里面也分门别类的放了BGM,live的音乐,人物的语音,UI的声音等等。楼主惊喜的发现所有的声音文件都是以.ogg结尾的!而这个后缀就是一种声音文件格式的标志。难道sif的声音文件没有加密?

          果断双击播放——结果既没让我失望,同时也让我很失望。。。

          果然是加密的。只是使用了.ogg的后缀而已,里面装的根本不是.ogg格式的声音数据。


          IP属地:湖南7楼2017-04-12 21:47
          回复
            这一下吓得我赶紧打开了图片资源的文件夹。果不其然,图片文件也是经过加密的特殊格式。

            虽然我已经十分确定立绘资源就放在\assets\image\units文件夹下,但是拿着这一堆.imag和.texb格式的文件我一时间不知道如何是好。


            IP属地:湖南9楼2017-04-12 21:53
            回复
              于是,我带着问题找上了度娘——如何解码.texb文件。
              一番搜索下来,找不到任何线索。就在我准备放弃之时,我想到了谷歌娘——墙外应该有大神能解码这种文件。
              终于,在谷歌娘的帮助下,我在github上找到了这个东西:

              Universal LL!SIF Decrypter (通用LL!SIF解码器)
              与此同时,在同一个人(就是上图中的MikuAuahDark)的另外一个项目里我有找到了这个:

              TEXB manipulation app & library (TEXB操作库)于是赶紧把两个项目都下载到了电脑上。


              IP属地:湖南10楼2017-04-12 22:02
              回复
                下载下来的文件都是源代码,楼主虽然略懂编程,但还是看不懂这两个软件是怎样具体运行的。但是不知道软件的原理并不影响我使用它。经过一番研究,阅读大神留下的教程,我终于成功将两个软件编译了出来。得到了下面这两个软件:

                HonokaMiku.exe(果皇和公主殿下???)
                Itsudemo.exe(いつでも???)


                IP属地:湖南13楼2017-04-12 22:08
                回复
                  这两个软件都没有图形界面,需要在命令行下运行。
                  其中HonokaMiku是用来解码资源的,可以将加密的资源文件解码到未加密状态。
                  而Itsudemo则是用来转码.texb文件的。但转码的前提是.texb文件已经经过HonokaMiku的解码。它可以将.texb文件导出为.png格式。


                  IP属地:湖南14楼2017-04-12 22:15
                  回复
                    有了解码器,事情就好办了。当然不可能手动敲命令行,里面几万个文件呢。果断批处理脚本,遍历asset文件夹下所有的.ogg和.texb文件

                    把Auto.bat HonokaMiku.exe Itsudemo.exe全部放在asset的跟目录下,双击auto.bat开始运行。



                    IP属地:湖南17楼2017-04-12 22:25
                    回复
                      因为文件比较多,解码花费了几个小时的时间(大概是没有多线程优化,这么多独立的任务完全可以并行运算。)
                      但是功夫不负有心人,双击里面的ogg文件现在可以直接播放了,立绘也全部导出为了png格式。
                      楼主的解包之路至此也告一段落了。但事情似乎并没有这么简单?
                      预知后事如何,且听下回分解。


                      IP属地:湖南18楼2017-04-12 22:35
                      回复


                        IP属地:湖南19楼2017-04-12 22:46
                        回复
                          上回说到楼主解包了国服llsif的资源,但楼主并不就此罢休。
                          可以看到解包出来的立绘的文件名虽然有一定的规律,但这种规律并不是那么直观。不能很快的建立从文件名到相应的立绘的映射。如果能以卡牌编号来命名就再好不过了。但是具体要怎么操作呢?手动一个一个来?这是不可能的,一千多张立绘呢,而且现有的文件名也不是按卡牌编号的顺序排列的。不好对它们批量重命名。
                          这时,楼主又想到了LLHelper。


                          IP属地:湖南20楼2017-04-17 21:51
                          收起回复
                            之前楼主说过从LLHelper一张一张手动下载立绘是不现实的。但是写个程序自动批量下载呢?这总可以了吧!
                            而且LLHelper的查卡器里面肯定有一张从卡牌编号到立绘的映射表,只要在下载的时候通过这张映射表对下载的立绘进行重命名不就好了?
                            想到这里,楼主马上打开了LLHelper查卡器。点开了其中一张立绘来观察它的链接。要从网站上下载图片,首先要知道的就是图片的链接。但结果却让楼主大失所望:

                            立绘在LLHelper服务器上的存储文件名居然就是刚解包出来的原文件名!之前楼主也说了解包出来的文件名规律并不直观。找不到规律如何批量下载呢?毕竟楼主手上也没有一张写有所有立绘文件链接的表啊。


                            IP属地:湖南21楼2017-04-17 22:03
                            回复
                              但楼主仍不放弃。LLHelper一定有什么办法从卡牌映射到相应的立绘。
                              刚才的链接,是在LLHelper查卡器中右键点击“在新标签中打开图片”,地址栏显示的完整链接。

                              为了找到LLHelper从卡牌编号到立绘的映射,楼主点击了这个菜单最下方的“检查”选项。这不打开不要紧,打开之后可把楼主高兴坏了。马上就找到了LLHelper将卡牌编号映射到立绘图片的方法。

                              可以看到,每张立绘都有一个短链接。其中前边的一大串字符都是一样的。只有最后的两个数字不一样。而这两个数字,第一个数字是卡牌的编号,而最后一个数字只有1或者0两种情况,其中1代表觉醒之后的立绘,而0代表没有觉醒的立绘。如果是特典卡或者其它只有觉醒状态的卡牌,不论结尾是0还是1都会指向那唯一的一张立绘。而且从鼠标悬停在链接上之后显示的示意图来看,这个短连接指向的就是立绘的原图。


                              IP属地:湖南22楼2017-04-17 22:19
                              回复