立绘提取
首先找到碧蓝航线立绘所在的位置。
立绘在sdcard0/Android/data/com.bilibili.azurlane/files/AssetBundles中
参考:https://www.bilibili.com/read/cv2832458
目录结构解释:
文件夹名称 | 作用 |
---|---|
/activitypainting | 活动人物 |
/aircrafticon | 游戏飞机资源 |
/battlescore | 得分画面 |
/bg | 游戏背景(含剧情背景) |
/boxprefab | 游戏素材(箱子,水雷……) |
/chapter | 游戏地图 |
/char | 人物Q版模型 |
/chargeicon | 商店里的图标 |
/chargo | 装备外观? |
/clouds | 云 |
/clutter | 公告之类的图片 |
/commanderhrz | 指挥喵出征半图 |
/commandericon | 指挥喵头像 |
/commanderrarity | 喵窝UI |
/commanderskillicon | 指挥喵技能 |
/commandertalenticon | 指挥喵阵营增益BUFF图标 |
/commonbg | 活动、商店、公告中背景之类 |
/cue | BGM |
/dailylevelicon | 每日日常 |
/dailyui | 点击特效 |
/effect | 特效素材 |
/emblem | 军衔 |
/emoji | 表情 |
/enemies | 活动特殊敌人 |
/equips | 装备 |
/eventtype | Q版小人 |
/extra | 阴影 |
/font | 字体 |
/furniture | 家具 |
/furniture | 家具图标 |
/helpbg | Help图片 |
/herohrzicon | 技能图片 |
/item | 游戏画面特效 |
/levelmap | 地图 |
/live2d | live2d动态 |
/loadingbg | 载入图片 |
/lotterybg | 活动相关 |
/map | 地图相关数据 |
/mapres | 地图其他(像海,天空等等) |
/medal | 奖章 |
/memoryicon | 回忆图标 |
/newshipbg | 新船背景 |
/numbericon | 数字 |
/painting | 立绘 |
/paintingface | 立绘头像 |
/prints | 阵营图片 |
/props | 物品资源 |
/puzzla | 活动收集相册之类 |
/qicon | Q版头像 |
/sfurniture | 特殊家具 |
/shipdesignicon | 科研船头像 |
/shipmodels | Q版照片 |
/shiprarity | 船的稀有程度 |
/shipyardicon | 立绘卡片 |
/skillicon | 技能图标 |
/squareicon | 立绘方块图像 |
/strategyicon | 游戏中一些图标(防空标识) |
/tecfateskillicon | 科研船技能 |
/template | 模板 |
painting是立绘文件夹,将painting复制到电脑中,方便操作,大家可以根据自己的需求复制相应的文件夹
立绘解包
解包需要一个工具, AssetStudio。
链接如下:https://github.com/Perfare/AssetStudio/releases
github访问比较慢,可以访问github国内的镜像站,浏览器会报警告,不用在意,继续访问就好。
链接如下:https://kgithub.com/Perfare/AssetStudio/releases
下载后打开
加载文件
立绘文件是以
_tex
结尾的文件,其他文件是索引文件
导出全部文件
导出后
导出后会出现四个文件夹,只需要
Mesh
与Texture2D
文件夹,其他的文件夹可以删除。
Texture2D
中是图片文件,Mesh
中是以.obj
结尾的坐标文件,可以用记事本打开。
例:
图片合成
图片合成会很麻烦,可以用PS自己拼接,或者写代码让系统处理,分享一个合成的工具,链接:https://kgithub.com/yukinotech/AzurLanePaintComposite/blob/master/%E6%89%B9%E9%87%8F%E5%90%88%E6%88%90%E7%AB%8B%E7%BB%98(%E7%A2%A7%E8%93%9D%E8%88%AA%E7%BA%BF).vbs
下载后在命令行中使用,这个小工具虽然是2019年的,但是现在还可以用。
例:c:\Users\Administrator\Desktop\碧蓝航线\AzurLanePaintComposite-master\AzurLanePaintComposite.exe c:\Users\Administrator\Desktop\碧蓝航线\Texture2D\22.png c:\Users\Administrator\Desktop\碧蓝航线\Mesh\22-mesh.obj
合成后的图片在./AzurLanePaintComposite-master/Picture
python代码
使用命令行一个个输挺麻烦的,自己写了一个小工具,方便合成
import os
from concurrent.futures import ThreadPoolExecutor
from pathlib import Path
# py文件路径
demo_path = str(Path(__file__).parent)
# AzurLanePaintComposite.exe文件路径
azur = os.path.join(demo_path, 'AzurLanePaintComposite-master', 'AzurLanePaintComposite.exe')
# Mesh路径
mesh = os.path.join(demo_path, 'Mesh')
# Texture2D路径
texture2d = os.path.join(demo_path, 'Texture2D')
cmdList = []
pngList = os.listdir(texture2d)
for png in pngList:
name, file_type = png.split('.')
obj = name + '-mesh.obj'
cmd = azur + ' ' + os.path.join(texture2d, png) + ' ' + os.path.join(mesh, obj)
cmdList.append(cmd)
def runCmd(cmd):
"""
运行命令行命令
"""
os.system(cmd)
# 线程池,最大线程为8,根据自己电脑更改,太多系统会卡死
pool = ThreadPoolExecutor(max_workers=8)
pool.map(runCmd, cmdList)
pool.shutdown()
GUI页面
为了方便操作,写了一个GUI界面,根据提示操作即可
注:如果出现闪退请检查路径是否正确,线程数根据自己电脑CPU的核数选择,线程过多时,页面会卡死,qt它会把主线程也添加到线程池中,而且qt的多线程是根据CPU的核心数决定的。
链接地址:碧蓝航线立绘合成小工具