首页 畅享游戏,快乐生活!
手机版
扫描查看手机站

碧蓝航线拼图-碧蓝航线拼图亲自动手衣食无忧

时间:2023-03-24 16:03:23 编辑:azu

亲自动手衣食无忧。

需要碧蓝航线的精致的舰娘钢材有机体自然要出手解包咯。

碧蓝航线拼图-碧蓝航线拼图亲自动手衣食无忧

碧蓝航线拼图-碧蓝航线拼图亲自动手衣食无忧

最先,碧蓝航线是采用unity游戏制作引擎制作出来的,就必须得有一个用以破译unity数据信息文件(暂且那么叫把)的东西了——

UnityStudio:

下载详细地址:https://github.com/Perfare/AssetStudio/releases;

提议下载32位,64位系统能够兼容问题。32位不可以向上兼容

下载好啦unitystudio缓解压力,寻找unitystudio.exe,双击鼠标打开

缓解压力

出去的是这样的一个页面:

好啦,之后就可以用这个app解数据文件了。

处理掌握包难题,这个时候就要文件了。

登录官方网站,下载安装文件

下载进行,解压安装包。

打开缓解压力目录下的assetsAssetBundlespainting

就可以见到绝大多数以舰娘的拼音命名文件,(舰娘拼音字母后带_h表明婚纱礼服,带数字的表明肌肤,带_tex也是有原画的文件)。

另一部分的原画文件是升级包,在手机上面的Android/date/com.bilibili.azurlane/fires/AssetBundles

手机模拟器都是同一部位。

随后,尽量把这种文件运送到电脑。(例如手机连电脑复制来,手机模拟器像mumu放进分享文件夹里边)

如今,数据文件就做好准备。

逐渐破译数据信息

打开unitystudio,点一下左上方的file,点一下loadfile。

在弹出对话框中寻找缓解压力目录下的assetsAssetBundlespainting

挑选含有_tex的文件打开。

这儿以贝尔法斯特为例子。

啥都没有是否,然后点击上边的assetlist,还是没。

3个文件,正中间-mesh后缀名的是原画破译参数值

type为Texture2D的图片比较大

type为Sprite的图片比较小

各自点一下,会到右侧发生对应的信息内容。

数据文件破译进行。

从现在起导出来

点击export,挑选allasset导出来所有

随后我选择储存在桌面上(还可以没放桌面上)

导出来完成后,unitystudio会打开导出来的文件夹,可能形成三个文件夹分别为

Mesh

Sprite

Texture2D

随后看见一个ps了没有,准备准备逐渐拼图图片把

自然还有一种高档的实际操作——载入-mesh.objw文件,让计算机替你还原

打开MAIN.py键入beierfasite

随后回车键

还原。(自然,我自己写的这个的复原图有断块)

以下是MIAIN.py的代码。(必须有pygame适用)

#coding=utf-8#!python3v=[None]vt=[None]f=[]mod=0try:name=raw_input("输入您船舶的拼音字母(包含肌肤,改,婚纱礼服),和保证mesh文件和png文件和流程在同一目录下

")exceptNameError:name=input("输入您船舶的拼音字母(包含肌肤,改,婚纱礼服),和保证mesh文件和png文件和流程在同一目录下

:")

withopen(name'-mesh.obj','r')asinfo:forinformininfo.readlines():ifinform=="g"name"-mesh

"orinform=="g"name"-mesh_0

":mod=1continue

ifmod==1andinform[0]=="v"andinform[0:2]!="vt":give_v=inform[2:-1].split("")[:]v.append([int(give_v[0].strip()),int(give_v[1].strip())])

ifmod==1andinform[0:2]=="vt":give_vt=inform[3:-1].split("")vt.append([float(give_vt[0]),float(give_vt[1])])

ifmod==2andinform[0]=='f':give=inform[2:-1].split("")f.append([int(give[0].split("/")[0]),int(give[1].split("/")[0]),int(give[2].split("/")[0])])

v_x=[]forainv[1:]:v_x.append(a[0])v_x_max=max(v_x)v_x_min=min(v_x)

x_distance=v_x_max-v_x_min

v_y=[]forainv[1:]:v_y.append(a[1])v_y_max=max(v_y)v_y_min=min(v_y)

y_distance=v_y_max-v_y_min

importpygame

forainrange(len(v)-1):v[a1][0]=abs(v[a1][0])

body_part=[]img=pygame.image.load(name".png")img_up=pygame.transform.flip(img.copy(),False,True)

width=img.get_width()height=img.get_height()pic=pygame.Surface((x_distance,y_distance,),flags=pygame.SRCALPHA,depth=32)forindexin(range(int(len(f))))[::2]:a=[v[f[index*1][0]],v[f[index*1][1]],v[f[index*1][2]]]b=[vt[f[index*1][0]],vt[f[index*1][1]],vt[f[index*1][2]]]c=[v[f[index*1][0]],v[f[index*1][1]],v[f[index*1][2]]]bilt_place=(min([c[0][0],c[1][0],c[2][0]]),min([c[0][1],c[1][1],c[2][1]]))x=int(min([b[0][0],b[1][0],b[2][0]])*width)y=int(min([b[0][1],b[1][1],b[2][1]])*height)wide=int((max([a[0][0],a[1][0],a[2][0]])-(min([a[0][0],a[1][0],a[2][0]])*1)))high=int((max([a[0][1],a[1][1],a[2][1]])-(min([a[0][1],a[1][1],a[2][1]])*1)))cut_size=pygame.Rect(x,y,wide,high)cut=pygame.transform.rotozoom(pygame.transform.flip(img_up.subsurface(cut_size),False,False),0,1)place=(x,y)body_part.append([cut,bilt_place])

forbodyinbody_part:pic.blit(body[0],body[1])pic=pygame.transform.flip(pic,True,True)pygame.image.save(pic,"out-"name'.png')

热门文章

推荐专题

更多>>

游戏推荐

更多>>