解包《巧克力与香子兰1》的时候,不知道动态立绘怎么处理

Request Help求助
25-12-2024 - 14:08
火花X
25-12-2024 - 14:08

各位大佬。我用KrkrExtract1.0.3.1解包emotewin.xp3之后,提出来了很多.psb文件,测试后可以用garbro打开,里面是两个bmp图片文件。KrkrExtract1.0.3.1也同时把这些bmp文件一并提了出来。

另外,我使用KrkrExtract1.0.3.1中的反编译功能整出来了.tjs文件,每一个psb文件配一个tjs文件。tjs文件中似乎是记录着各种XYZ坐标和动作的代码(本人没学过编程,但至少英语还是看得懂的)。但接下来就不知道该怎么办了。是有专门的应用可以查看,导出么?

我之前在哔哩哔哩上问过,有个up主推荐了Ulysses-FreeMoteToolkit-v4.0.1,但经过测试它可以查看《爱上火车Last~run》提取出来的psb文件,但查看不了《巧克力与香子兰1》的。而且《爱上火车》储存psb文件的emotedx.xp3文件用KrkrExtract1.0.3.1解包时如果开启反编译就会闪退。我猜测是因为这二者不是一种psb文件。

已经在浏览器上搜索过了。目前没看到解决办法。下了个E-mote free movie maker也不知道怎么用。

所以有办法查看《巧克力与香子兰1》的动态立绘的方法么?

Topic status:Normal
1112
listder
=> 火花X
Replied To @ 火花X

tjs中不可能存在坐标文件,坐标文件一半存在pdb或者txt,freemote工具会把psb中的坐标文件转换成json

pbd2json可以参考 https://github.com/TUdHQQ/pbd2json

txt2json可以参考

https://github.com/TUdHQQ/kfc/blob/main/txt2json.cpp

最近没什么时间,等我过段时间看看,另外如果你可以提供参考文件的话我会很感激的(

25-12-2024 - 15:36

listder
=> listder
Replied To @ listder

顺带如果可以使用非国内盘的话我会更感激的()

25-12-2024 - 15:37

火花X
=> listder
Replied To @ listder

那可能是我看错了。我是真的不懂编程

总之,我把文件上传到网盘里了。mega网盘可以么?这是其中一个人物的a立绘文件。

https://mega.nz/file/SUQUHCCY#5NP1JawP7aRZMlosXllXZJGjUpWCd3W9kkQhCJSgQ5o

26-12-2024 - 13:23

listder
=> 火花X
Replied To @ 火花X

首先garbro可以解包,根据提示迅速定位相关源码

https://github.com/crskycode/GARbro/blob/master/ArcFormats/Emote/ArcPSB.cs

从第63的KnownKeys可以推断密钥为970396437为uint类型

然后尝试freemote添加-k参数读取

报错

>>PsbDecompile -k 970396437 dx_e-mote3.0メイプル私服a.psb
FreeMote PSB Decompiler
by Ulysses, [email protected]
18 Plugins Loaded.

Decompiling: dx_e-mote3.0メイプル私服a
FreeMote.PsbBadFormatException: Exception of type 'FreeMote.PsbBadFormatException' was thrown.
   at FreeMote.PsBuild.PsbDecompiler.Decompile(String path, PSB& psb, Dictionary`2 context, PsbType psbType)
   at FreeMote.PsBuild.PsbDecompiler.DecompileToFile(String inputPath, PsbExtractOption extractOption, PsbImageFormat extractFormat, Boolean useResx, Nullable`1 key, PsbType type, Dictionary`2 contextDic)
   at FreeMote.Tools.PsbDecompile.Program.Decompile(String path, Boolean keepRaw, PsbImageFormat format, Nullable`1 key, PsbType type, Dictionary`2 context)
Done.

我认为这可能是freemote的一个bug,你可以向他们提一个issue

所以如果想合成立绘你就得啃garbro的源码(

稍微看了一眼tjs,还真的有可能是存储坐标文件的,这我还是头一回见

(不过怎么感觉是json转了tjs

26-12-2024 - 15:09

Comments
KUN
listder Commented to listder
总之加TODO了,或许哪天有空了就写个小工具吧,qwq
KUN
火花X Commented to listder
那我先期待着了。
另外再问一下,我提issue的时候都应该怎么描述?或者上传什么文件?我也是真没办法了。以我的编程水平,看个报错都要一行一行查。
而且我连freemote—master都不会用。只能用FreeMoteToolkit。
KUN
listder Commented to 火花X
你直接将你的日志和上述日志填上,然后清晰的描述问题,必要时向开发者提供部分文件(
KUN
火花X Commented to listder
其实还有一个问题。你是直接将psb用freemote读取的么?如果不是,或者你用了别的东西就当我没说。
我之前应该是提到过,那个psb文件用garbro浏览可以发现里面只有两个图片文件。没有任何其它的有关坐标或者动作的文件。所以这个psb不是freemote能直接运行的psb文件。
我之前用过freemotetoolkit打开过,但它显示可能被加密。我怀疑是因为里面只有图片,才导致的失败。
当然,如果你不是这么干的话,就当我没说。
不管怎么样,非常感谢。
KUN
listder Commented to 火花X
上文说过了,尝试使用密钥解密()
KUN
火花X Commented to listder
这么说,这个psb文件里应该还储存着除了图片之外的文件么?
我其实还没搞清楚这个psb文件到底是什么呢。只是单单因为《爱上火车》的psb文件不能解开。也不能直接用garbro浏览,却可以用freemote运行,而这个正好相反,我才觉得它们不是一种文件。
KUN
火花X Commented to 火花X
其实,如果我问得有点多了的话,我可以自己先查查。
KUN
listder Commented to 火花X
是,包含立绘的各种信息,这些是合成立绘的关键
KUN
火花X Commented to listder
好的。大概明白了。我自己又去试了一下freemote里的psbBuild,把图片和tjs文件拖进去之后窗口直接关闭了。
那我就再自己研究研究了。非常感谢。
Ulysses
=> 火花X
Replied To @ 火花X

不知道这哥们说提问提到哪里去了?

打不开的原因确实是需要key,早期的PSBv2是需要key才能解密的。大佬给你说的key也不对。

具体key是什么我现在有点忘了,你可以去网上搜搜,到处都有。或者等你下次会来提问了的时候告诉你。

或者你可以直接解3代,我记得3代是没key的。

总之加TODO了,或许哪天有空了就写个小工具吧,qwq

大佬不愧是大佬,我只能说这个难度可不小,你加油。其实FreeMote对此已经有个半成品的功能,但这功能我也早就放弃了。

这是个动画引擎,静态地合成顶多合成初始状态,甚至初始状态也不一定对,因为实际的第一帧可能也已经变形过的,静态拼图不实现deformer的话只能恢复出没变形的。

10-01-2025 - 07:49

listder
=> Ulysses
Replied To @ Ulysses

感谢作者回复,才知道原来我key找错了

呜呜呜,我一个连C#都看不明白的怎么敢称自己为大佬呢

11-01-2025 - 18:06

火花X
=> 火花X
Replied To @ 火花X

我的天,作者都来了?

前几天一直在准备考试,实在没找到时间。真是惭愧。

感谢作者的建议。不过至于三代的解包,我手上暂时没有资源。可能要等到这周考完试回到家里才行。目前手上只有一代。

15-01-2025 - 11:56

Comments
KUN
火花X Commented to 火花X
说个题外话,关于unity引擎的游戏的apk解包各位能指条路么?
不用明确的,给个网站什么就行。别的不麻烦各位了。
火花X
=> 火花X
Replied To @ 火花X

我有啥问题干脆一块问了吧。下一次看帖子说不定就是周末了。其实也不一定。

我在网上下了个E-mote free movie maker,能用来播放么?还是说除非我能去一点一点把代码里的坐标之类的爬出来,否则不可能?

15-01-2025 - 12:53

cupfox

1009

=> 火花X
Replied To @ 火花X

15-01-2025 - 13:16

火花X
=> cupfox
Replied To @ cupfox

额,这是什么

16-01-2025 - 11:42

Ulysses
=> 火花X
Replied To @ 火花X

我在网上下了个E-mote free movie maker,能用来播放么?

不能。EMT编辑器只接受mmo格式(也就是EMT的工程格式),PSB是mmo导出的运行用格式。

要【观看】或者【截图】EMT PSB有两种方式:

  1. 用FreeMoteViewer打开解密后的PSB。解密PSB用.\EmtConvert -k 742877301 xxx.psb 。key是我在网上搜的,应该没啥问题。(3代和0代应该是不用解密的,你可以自己尝试,FMV能直接打开的就不用解密。)FMV打开之后可以播放其中的timeline也就是一个个动作,观赏是足够了。但截图功能还很原始,分辨率不高,要高清点只能把窗口尽可能拉大。以后如果有时间会重写一个功能更全的FMV。不过作为社畜,一般是没空的。
  2. 用EmtMake把PSB还原成mmo,再用EMT编辑器打开。EMT编辑器的图片导出功能应该更好用一些(我没用过导出功能,但看其他人是这么操作的)。但是,把PSB还原成mmo其实是十分复杂的(怀念那段不上班的日子……),目前EmtMake的很多地方实现是不准确的,所以并不是每个PSB都能还原成正确的mmo,EMT编辑器加载错误的mmo后会报错退出,即使能加载了,也不一定100%正确(可能缺斤少两),这个只能随缘。

16-01-2025 - 15:26

火花X
=> Ulysses
Replied To @ Ulysses

我刚才试了一下,我的0代的资源也需要解密。

3代的储存格式是.int,而且文件名都是pcm,psz之类的,我不知道用什么工具解。这个怎么办啊?

17-01-2025 - 12:55

kohaku