[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土


3楼猫 发布时间:2024-05-04 22:19:03 作者:RedstoneT Language

嗨,这一期我们不讲怪猎生态,和大家聊聊最近这几天折腾的事情,前后有很多乌龙还挺有意思,想到了就和大家聊一下,前半部分做一些科普后半部分分享故事。

最近玩的时候发现这游戏质量出乎意料的高,剧情和人物设定都很不错,伴生的角色

小仙姑许鸣雌也受到了我的喜欢。

游戏内是自带一个桌宠系统的,触摸互动和文案都挺不错,但碍于开启桌宠必须开启游戏有一段很长的动画,并且一直开着引起电脑负担(同时被好友发现玩黄油),我便由此萌生了提取Live2D单独作为桌宠的想法。

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第0张

游戏自带的桌宠过于复杂增加负担

获取游戏资源,必然会涉及到解包,而解包作为灰色地带一旦失当便会涉及法律,但仅作为学习用处交流不作为商业用途一般不会被追究,我们这里只是单纯提取游戏内的Live2D不作商业用途(叠甲),同时笔者并不鼓励大家无下限的深挖一些热门游戏,容易涉及纠纷引火烧身。

解包游戏数据并不困难,第一步是要找到制作游戏的引擎,从而对症下药,一部分游戏在开场时就会有游戏引擎的logo,比如寒霜引擎、虚幻引擎等等,大部分小体量独立游戏都是由Unity3D制作的,具体情况可以从游戏根目录了解~

比如Unity3D在游戏根目录都会有一个“UnityCrashHandler32.exe”文件(字面意思,正是处理崩溃的程序),《原神》、最近很火的《饿殍:明末千里行》也是由Unity制作的~

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第1张

本游戏就是由unity制作的

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第2张

饿殍:明末千里行

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

原神文件稍有不同但也能找到Unityplayer

包括广为使用的UE虚幻引擎也是比较有特色的,一般启动便有图标、画面光影华丽;

具体可以度娘一搜,一般都是有答案的,如果是独立小游戏可以翻找根目录寻找线索~

虽说其他的引擎做的游戏一般不包含Live2D等要素,这里只是做一个简单的科普,可以解包别的东西,包括但不限于音频、图片(立绘等)、模型(2D/3D)等等

都聊到这里了我们不妨简单看一看游戏目录包含的那些信息(不影响后文可以跳过);

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

《双修》的data目录

Plugins(插件):同于add-ons,本质上就是一个unity的“DLC”,用来达到某些unity本体无法达到的功能,(横向比较就类似于Python中的Import模块,比如导入了math模块就可以使用三角函数、圆周率等原本没有的功能)比如我们可以明显的看到制作者使用的是Live2DCubism制作的桌宠(排除了同样可以实现桌宠功能的Spine插件),这是最直接确定开发人员使用插件的地方,当然之后的文件类型也会间接引导我们指向特定软件!

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

Plugins下的子文件

Resources:如其名“资源”,Resources文件夹下的文件是用于动态加载的,并且在制作时这个文件夹所有文件都会被打包出去,所以一般来说一级目录的resources并不会特别大,当然,具体情况具体分析。

《双修》的目录里只有一个文件,直译便可了解其文件意义——“不履行的资源”,可以认为这个的文件是弃置的,非特别情况不用特别注意。

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

一个文件

StreamingAssets:如其名“流资源”,相当于一个不加密的resources文件夹;

il2cpp_data:il2cpp是一种编译器,能够使输出文件体量更小,在这个游戏中仅占13mb。

data.unity3D:最重要的一个文件,包含了大量的游戏模型音乐等资源,是运行的必须文件。

————————————————————————————————

说完文件我们就要开始解包了!

由于得知了游戏的引擎是unity,对症下药应该采用AssetStudio来进行翻录解包(类似的解包软件还有quickbms、umodel、noesisv等等,用来解包不同游戏引擎的游戏)

这里也用AS来演示~

进入后会见到如此一个面板

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

左边是一个数据库,右边是一个检视预览窗口,可以读取图片、视频、音频,可以检视内部文件信息

首先点击File-LoadFolder导入游戏根目录(注意是根目录steamapps/common/游戏名),得以瞥见所有可解包的游戏资源,我们从Scene Hierarchy(场景层次结构)转向Asset List(资源目录),可见文件非常非常多,手下这个游戏就有28693个文件,自寻无觅该怎起手?

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

随便翻阅下笔者发现制作者在制作时进行了明确的分类,大部分关键内容都有划分,所以我猜测Live2D相关的资源也包含在其中,不妨点击Container(容器)进行倒序,发现有Live2D的分类

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

根据翻阅,找到了很多角色的live2D,但大部分都是初步人物设定而非名字,初步可以判断游戏中的许鸣雌的原始设定是“占星师”

到了这里我喜出望外,便一股脑【全部导出】细细找寻,却没料到这一导使得提取进程耽误了近十个小时。

导出得到如下目录:

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

导出的目录

这里也很有必要解释一下每一个文件夹的含义;

Animator: 由Adobe Animate制作的动画文件,翻阅后发现很多.fbx文件

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

二级母目录

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

只有一个.fbx文件

笔者自学过blender,意识到.fbx也可能包括模型,但blender导入后并没有文件,一无所获;

虽然没有得到什么重要的文件,但是根据[许鸣雌.fbx]和[占星师.fbx]文件大小相同,可以确定许鸣雌和占星师指代的是同一个人~

AudioClip:音频文件夹,里面包含了很多游戏音频

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

的确有很多音频

Font:字体文件夹,没什么特别需要注意的

Mesh:直译为“网格",blender中的基础几何体一般都用网格创建,所以知道一般的建模本质都是网格类型的,简单看了一下并没有发现特别大的文件,都是简单的模型。

MonoBehaviour: 最关键的一部分,脚本交互,包括游戏内所有的互动等等的重要事件,显然与桌宠的互动也算是其中一部分,我尝试性的搜索了live2D、许鸣雌、占星师都没有得到结果,到这我就发现有些不对,里面所有的json文件都是同样的格式;【此处有伏笔】

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

都是一样的格式 大小为1kb

Shader:材质,用于渲染的内容,目前一般用不到;

Sprite:很难直译,经过查看是图片文件,所有游戏内出现的图片文件都出现在其中,包括加载按钮、立绘、CG、头像等等

Texture2D:2D纹理,内容和sprite没有区别,也都是游戏中出现的图片

TextAsset:最开始发现的那些live2D文件都在其中,我想应该是可以提取出来了

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

自以为轻舟已过万重山的我又遇到了难题,我把【占星师】相关的文件都拿了出来,在model3文件中得到了如下信息:

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

.modle

根据信息素养,这应当是一个相对路径的引用指引,相应的我找到了分散在多处的.png文件、.physics3、.cdi3、.motion3文件,根据model3中的信息,我建立了如下文件夹,并且修改了.json后缀使其符合指导文件格式;

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

但难题还是出现了,最重要的.moc3文件凭空消失了,根据资料显示,这个文件包含了所有的模型内容,所以理应是很大的文件,且完全不可能由手中的文件反推。

并且还有一个问题,.motion3中其他角色的前几个字母我可以理解,LS=老师、XSM=小师妹,但为什么许鸣雌的不是【ZXS】而是【DS】呢?【伏笔2】

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

导出文件夹最大的文件不过1mb

我查阅了上万个文件,没有任何一个文件符合我的要求,只得暂时放弃。

第二天我再次搜寻时无意间发现到了一个非常奇怪的现象:

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

AS中的画面

AS中最大的文件有整整28,000,000Byte(约26MB),且隶属于live2D、是MonoBehaviour类型,我连忙在导出文件夹的MonoBehaviour寻找这个名为”长角妖族“的文件;

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

仅仅1KB,没错,他导出后只有仅仅1KB,疑惑中的我注意到了AS中的一串小字

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

"Error while read type,read 44 bytes but expected 28023536 bytes"

读取出错,读取到44B文件,但预期有28023536B大小

到这一切就明了了——

”AS的默认导出只导出可读内容“

这解释了为什么导出的所有.json只有1kb并且内容格式完全相同!!!

恍然大悟的我找到了”占星师“这个文件,选择Export(导出)-Raw(未加工的)-selected assets(所选的资源),得到了一个”占星师.bat“的文件,我兴高采烈的将其改名为”占星师.moc3“,用cubismviewer打开,但现实浇我了一盆冷水:

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

无法用记事本打开,我似乎又遭遇了瓶颈,直到我在B站找到了如下解决办法:

”使用十六进制打开,删除前三行“

当时的我满脸问号

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

用十六进制打开看到ASIC字符中的.MOC3的我顿时释怀,按照教程删除前三行后修改结尾,我终于得到了这个想念已久的”占星师.moc3“。

至此,Live2D所有相关素材解包提取完毕!

.......吗?

购买live2dEX后进入了编辑模式......

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

Live2DViewerEX著名的live2d桌宠软件

接着出现了如下现象:

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

不是哥们!手怎么反了!!!!

很难想象当时我的心情多么崩溃,怎会如此!但更崩溃的还在后面,当我运行motion3文件时,有整整六个都发生了无端抽搐,只有一个Head_motion3.json的文件可以运行;【伏笔3】

于是我得出了如下结论:1.模型文件没有问题,因为有一个文件可以运行;2.motion或者贴图存在问题,但不可能是导出的问题,因为有一个可以运行;

不论我怎么导出,怎么带入,得到的结果都一样,只有1/7的成功运行,一筹莫展之际我又来到了AS,搜索DS希望能再用raw的办法再导出一次,于是我发现了如下情况:

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

惊奇的我发现有两套一模一样的文件!都是以DS_Default_xxxx.motion3.json存在的,我连忙对比Size,发现导出的有六个都是【大蛇】而非【占星师】容器下的动作脚本!!!

之前的伏笔终于在此回收,我提取出来的DS前缀指代的是”大蛇“!!!是因为制作组偷懒没有修改名字,才导致出现了两套名字一模一样的文件才导致了导出的混乱!

至此,我终于成功拿到了所有的文件,包括贴图、物理、模型、动作

吗?

没错,一切到这还没有结束!

还有一套完整的.json等我去编辑,如下

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

手动录入所有互动对话文本

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

寻找触摸区域并且将其关联

编辑过程中的优先度属实令我十分难受,高优先度的行为后面不能连接低优先度,否则难以触发,填写文本不能选择语言zhs,否则行为不能运行;

如果你亲自实操过一次live2D的制作可能就会理解这一套流程有多么复杂。V1.0还原了游戏中的对话,V1.1修正了很多优先度才得到勉强能用的程度(1.0的互动没有后文)。

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

比如有一次我测试文件时发现小仙姑一直在说”嘻嘻。“,不管怎么样都停不下来,文本框关也关不掉,就这么”嘻嘻“了十分钟,我才发现是把点击时动作写成了进入时动作所以鼠标一移动到模型身上就会触发摸头动作和文本而至于为什么只有嘻嘻是因为摸头的另外两句语音路径写错了,达成了这场非常荒谬的嘻嘻闹剧(太气人了!!!我焦头烂额她在那傻乐呵!!!)。

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

经过整整四天的Debug和修正我总算也是把游戏中桌宠的互动还原了90%以上,如今不仅可以完成游戏中的待机文本、互动,甚至我手动录入了总计109个观音灵签的签面来完成了抽签功能。

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

待机文本 隶属于Tick类型文件

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

抽签示例(点击两边穗子就可以)

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

V1.2已经上传(G+)

现在我也把最新的1.2版本放在了创意工坊!如果感兴趣可以去看看哟~

至此我的许鸣雌桌宠也算告一段落,最初的愿望得以实现,一切也都完成了!

吗?

或许在之后可以加入更多内容,包括手部捕捉,麦克风识别,人脸皮套识别,可玩度也不仅之于触摸文本,甚至可以衍生还原有立绘的约会剧情......

这些在短时间内很难实现,虽然完美还原的确很有成就感,但是翻找上万字的资料同样令人劳累,但是我想为了爱好等等付出精力和时间正是人生快乐的所在,这四天学到的东西或许并不会经常为以后的我所用,但从零开始的这次流程至少能让我在live2D方面学的更深一点罢。

最后送给大家一张Texture2D中特别可爱的CG原画来结束这篇文章~

[硬核]我把游戏角色变成桌宠的曲折故事:解包Live2D入门到入土-第3张

好可爱的猫猫小仙姑!

我相信很少有人会把这个文章看到最后哈哈哈哈,不过无妨,倘若你看到这里不妨点个赞吧~


© 2022 3楼猫 下载APP 站点地图 广告合作:asmrly666@gmail.com