2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

ML相关资源获取指南

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索

大萌字.svg
阅读本用户子页面的任何人都可以参与编辑

各种信息来源和工具

注:斜体表示需要魔法

角色色卡

偶像大师全系列角色色卡(感谢泡泡糖公主整理)

图片相关

站内
站外
以图找图

百科和综合性站点

官方
非官方

特殊用途站点

单一角色百科
名言和用语集
乐曲和Call
编成和活动
游戏实装记录
梗图生成
其他

相关工具

MLTD项目
  • MLTDTools:MLTD工具箱,包含打包资源替换、下载、解压、解密和输出MLTD模组/舞台动作/摄像机路径信息至MikuMikuDance等功能
  • MLTDABD-Rel:MLTD工具箱重置版,优化了高DPI表现,并整合了AssetStudio(虽然AssetStudio还是推荐最新版)
  • Million Live Quintet Player:合成与导出MLTD中分唱曲任意五人演唱版本的小工具
  • MirishitaMusicPlayer:强大的游戏版歌曲播放器
  • MLTD-asset-downloader:可以下载港澳台服和韩服的服务器资源
  • mltd-relive:MLTD繁体服重生版!据说已经进入到游戏本地化的第三阶段了
  • mltd-timestamp-extractor:可用于为MLTD等galgame式字幕的游戏提取时间轴
通用
  • vgmstream:多功能游戏音频解码工具
  • AssetStudio:可视化Unity3D资源反编译工具,可以解析Unity的AssetBunddle(.unity3d.asset文件)并查看、导出其中的各类资源文件
  • AssetStudioCmd:AssetStudio解析资源功能的命令行版本,在批处理中使用很方便。
  • foobar2000:高度可扩展的音频播放器。搭配vgmstream plugin可以直接解密并播放常见游戏的.acb.awb文件
  • VGMToolbox:泛用的游戏资源提取工具箱,包含了将.acb.awb文件解压为.hca的功能
  • Il2CppDumper:针对加密的Unity游戏脚本,通过解析libil2cpp.so以反编译加密后的游戏代码集(global-metadata.dat)的工具
  • dnSpy:强大的开源.net程序反编译工具
  • IDA Pro:优秀的静态反编译软件,广泛用于程序破解与安全分析中
  • MyHash:文件校验工具,支持MD5、SHA家族、CRC32等常见散列函数算法
  • ImageMagick:强大的图片处理工具,号称“命令行版的Photoshop”
  • Fiddler:网络侦测工具,适用于应用程序抓包
  • Advanced Renamer:功能强大的批量重命名工具

获取高分辨率APP图标

打开MLTD的Google Play详情页(日服繁体服韩服)。右击图标,Google Chrome系列浏览器中选择“在新标签页中打开图片(I)”,Mozilla Firefox选择“查看图像(I)”,可以获得类似如下的链接:

https://play-lh.googleusercontent.com/_oFHd11wcEuXzGJ5VA42uqbUyyjRkBERRr5PNbWt2aAnInrmHR51VbGFNSSPF9ocLA6R=s96

目前可用的最大图标尺寸为512*512。将链接最后的s96改为s512或更大的值,即可获得512*512大小的图片。

MLTD游戏资源解析

注:本部分提到的工具请在上文“相关项目”活动“其他相关工具”中寻找。

资源命名规则与含义指引

人物编号与字母缩写
姓名 编号 缩写 印象色 姓名 编号 缩写 印象色 姓名 编号 缩写 印象色 姓名 编号 缩写 印象色
天海春香 001 har #e22b30 伊吹翼 016 tsu #fed552 天空桥朋花 031 tom #bee3e3 百濑莉绪 046 rio #f19591
如月千早 002 chi #2743d2 田中琴叶 017 kth #92cfbb 艾米莉·斯图亚特 032 emi #554171 永吉昴 047 sub #aeb49c
星井美希 003 mik #b4e04b 岛原埃琳娜 018 ele #9bce92 北泽志保 033 sih #afa690 北上丽花 048 rei #6bb6b0
萩原雪步 004 yuk #d3dde9 佐竹美奈子 019 min #58a6dc 舞滨步 034 ayu #e25a9b 周防桃子 049 mom #efb864
高槻弥生 005 yay #f39939 所惠美 020 meg #454341 木下日向 035 hin #d1342c 茱莉亚 050 jul #d7385f
菊地真 006 mak #515558 德川茉莉 021 mat #5abfb7 矢吹可奈 036 kan #f5ad3b 白石䌷 051 tmg #ebe1ff
水濑伊织 007 ior #fd99e1 箱崎星梨花 022 ser #ed90ba 横山奈绪 037 nao #5abfb7 樱守歌织 052 kao #274079
四条贵音 008 tak #a6126a 野野原茜 023 aka #eb613f 二阶堂千鹤 038 chz #f19557 音无小鸟 101 kot #fff6a4
秋月律子 009 rit #01a860 望月杏奈 024 ann #7e6ca8 马场木实 039 kon #f1becb 青羽美咲 102 mis #96e2df
三浦梓 010 azu #9238be Roco 025 roc #fff03c 大神环 040 tam #ee762e 诗花 201 xxx #e6f9e5
双海亚美 011 ami #ffe43f 七尾百合子 026 yur #c7b83c 丰川风花 041 fuk #7278a8 玲音 202 xxx #512aa3
双海真美 012 mam #ffe43f 高山纱代子 027 say #7f6575 宫尾美也 042 miy #d7a96b 宫本芙蕾德莉卡 204 xxx #b6016a
我那霸响 013 hib #01adb9 松田亚利沙 028 ari #b54461 福田法子 043 nor #eceb70 一之濑志希 205 xxx #ac004e
春日未来 014 mir #ea5b76 高坂海美 029 umi #e9739b 真壁瑞希 044 miz #99b7dc
最上静香 015 siz #6495cf 中谷育 030 iku #f7e78e 篠宫可怜 045 kar #b63b40
服装编号
  • 02:1stLIVE服装
  • 03:2ndLIVE服装
  • 05:3rdLIVE服装
  • 06:4thLIVE服装
  • 10:5thLIVE服装异色-海外服初始
服务器资源命名规则与含义

manifest文件版本号:195200 [2021-01-11 15:00:00 (UTC+9:00)]
斜体部分为资源解析后,其中包含的资源
[3位编号+3位缩写]
 _name 卡图右下角的偶像名称
 _sign 偶像签名
  _sr 黑色签名
  _ssr 金色签名
 [4位卡片ID] 卡图相关
  _0 觉醒前卡面小图
  _0_bg 觉醒前卡面大图
  _1 觉醒后卡面小图
  _1_bg 觉醒前卡面大图
  _cut 抽出卡片时的卡面特写
  _silhouette 人物立绘金色剪影
achievement_**** 成就标识
ambi 环境音效
 _bg2d_a****
 _bg2d_t****
 _bg2d_g****
 _theater
ab_theater_system_card 生日LIVE编成时,过生日的偶像的图标左上角的BIRTHDAY标志
ad
 _2d_** TB候选偶像3D立绘
 _sprite TB投票结果公布界面相关素材
 _result TB投票结果
adx2_memorialvoice_list 估计与生日回忆语音有关
annidra2
 _vt_2d_** TB候选偶像3D立绘
 _resultimage_* TC投票结果
anniv3rd_images 3rd周年特训相关
annidraview TB投票结果公布界面相关素材
annisrview MILLION CLOSET!投票界面相关素材
appearance_sobj
ar AR机能相关
 _common
 _02_thumb
 _sub_**_detail
 _sub_**_thumb
arcontentlistview AR机能相关
arm AR机能相关
 _akj_001 AR参考图像:马场木实等身立牌
 _tb01_001
 _tb02_001
 _tb03_001
 _yksk_001
bg 2017/08/23 MILLIONLIVE COLLECTION活动背景
bg2d 游戏静态背景
 _011
 _103
 _a****
 _b****
 _c****
 _g****
 _t****
bgm 背景音乐
 _commu 对话相关
 _event 打工&绿币活动界面相关
 _inst_[6位歌曲代号] 游戏内伴奏
 _system 系统相关
 _add 追加的背景音乐
  _cd2018top
  _tctop TC投票活动界面
  _event_after
  _event_before
  _heartful2
  _ibirth
  _pbirth
  _halloween_login
  _halloween_theater
  _newyear_login
  _newyear_theater
  _valentine_login
  _valentine_theater
  _whiteday_login
  _whiteday_theater
  _xmas_login
  _xmas_theater
  _salmon 偶像英雄相关
  _stl 《偶像大师 星光舞台》相关
  _mj 圣百万女学园相关
 _octopus 拯救屋台!炒面☆花火团
 _oyster 超级沙滩排球
 _salmon 偶像英雄
 _shellfish HARM∅NIZER
 _tuna MILLION LIE!? FISHER DAYS ~失落的乐谱~
birth 生日相关
 _bdl_[3位编号+3位缩写]_*** (生日LIVE后)天台上的语音等(bdl=birthday live)
 _ent_[3位编号+3位缩写]_*** 进入游戏时,剧场入口的生日祝贺语音等(ent=entrance)
 _idol_[3位编号+3位缩写]_**** 偶像生日(拉礼炮)界面语音等(日服该机能已取消)
 _p_[3位编号+3位缩写]_*** 制作人生日时偶像的祝贺语音等
blog 博客相关
 _header_[3位编号+3位缩写] 偶像的博客上的横幅图
 **** 博客中出现的图片(****:0001~[个人相关];1001~[活动相关];50010~)
 ****_thumb 博客中出现的图片缩略图
build_dumy
calicon_bdl 白色心形图案,名称上看像是日向限定(bdl=birthday live)
cam_[6位歌曲代号] LIVE摄像机动作相关
camera_base 摄像机动作
camg_[3位编号+3位缩写]_** 动画片段
campaign_gasha_100000 事前登录100万达成SSR确定抽卡界面图片
card 卡片相关
 _blst_[3位编号+3位缩写]_***4 服装剧情相关(SSR的编号末尾为4)
 _episode_[3位编号+3位缩写]_**** 卡面剧情相关
 _list_[3位编号+3位缩写]_****
  _awake_gauge**[3位编号+3位缩写] 觉醒槽达到一定值的语音(**:25,50,75,100)
  _awake_[3位编号+3位缩写] 觉醒语音
  _contact_*_[3位编号+3位缩写] 未查明(*:1,2)
  _costume_[3位编号+3位缩写] 未查明
  _flavor_*_[3位编号+3位缩写] 卡片台词(*:1,2)
  _gasha_[3位编号+3位缩写] 卡片获得时的语音
  _master_[3位编号+3位缩写] 升星时的语音
  _master_max_[3位编号+3位缩写] 满星时的语音
cb 角色服装、装饰物纹理(cb=character body)
cd_jp
ce_00*_[3位编号+3位缩写] 角色眼部纹理(ce=character eye)
ch 角色头部纹理(ch=character head)
chara
 _commu_pose_set
 _costume_release 角色服装信息
 _effect 角色效果
 _item 角色物品
 _mosaic_color
 _motion
 _motion_info
 _motion_varie
 _shadow
 _soul
 2d 角色3D模型立绘
chat
 _icon 角色圆形头像
 _stamp 聊天用表情
check
chemicallight_motion 荧光棒动作
chr_anim 角色动画相关
cm_jp
coin
 _gasha_icon 绿币卡池卡片图标
 gashaeffectview
 gasharesultview
 gashaview
collabochara 联动角色Q版立绘
commu
 _debug_scripts
 _memorialcommu_list
 _params
 _ui 对话UI素材
costume 服装相关
 **...
 _icon 服装图标及展示图
  _[3位编号+3位缩写][4位卡片ID] 卡片(不含制服SR)服装
  _birthday_**_[3位编号+3位缩写] 生日特典服装
  _chupa 卓帕卡布拉服装
  _costume 周年服装、贩售的服装及其异色
  _precipice 卓帕卡布拉服装
  _private_01 私服图标
  _random 随机服装图标
  _srclo***(srclo=SR closet)MILLION CLOSET!服装
  _srufs*** 制服SR服装(sruf=SR uniform)
  _stageshirt 舞台短袖图标
  _training 训练服图标
 _sales_info 服装贩卖信息图
 salesinfo 服装贩卖信息图
crowd 观众效果音
 _l_m_int
 _m_m_int
 _s_m_int
dan_[6位歌曲代号]_** 舞蹈动作
dance_base
default_icon 角色默认图标
 _201xxx
 _202xxx
 _204xxx
 _205xxx
default_idol_icon 角色默认3D立绘
drama 广播剧相关
 _****_**_thumb 活动缩略图
 _bg_****_** 活动界面的带框主视觉图
 _[专辑简称]_** 广播剧音频
dramaview 广播剧界面UI
dummy
eff
 _ch_magical01
 _scn_01
endroll_resource
event 活动相关
 _**** 对应活动素材
 _common 活动通用素材
  _schedule_type_** 出现率UP标志
 _endroll 周年活动滚动榜单素材
  _0044 1st周年
  _0092 2nd周年
  _0142 3rd周年
 _info0001 THEATER SHOW TIME活动说明图片
 _result_**** 活动结果公布界面中的背景图和活动标题标志
 _talk_icon 角色图标
 _talk_thumb_****
 bg0044 1st周年最后一日偶像背景图
 bg0092 2nd周年最后一日偶像背景图
 bg0142 3rd周年最后一日偶像背景图
 aview
 bview
 cview
 d 歌曲左上角标志等活动相关素材
  _common
  preparationtourview
  view
 e 活动相关素材
  _common
  endrollview
  idolrankingview
  view
 f 橙币相关素材
  _common 
  view
 g 出现率UP横幅等素材
  _common
  coingashaeffectview
  coingasharesultview
  coingashaview
  view
 h Platinum Twin Stage 活动素材-961
  _common
  preparationtourview
  rankingview
  rewardview
  view
 i Platinum Star Tune活动素材
  _common
  _unit
  eventsongview
  rankingview
  rewardview
  view
 j Platinum Twin Stage活动素材-346
  _common
  preparationtourview
  rankingview
  rewardview
  view
 k Platinum Star Tale活动素材-圣百万女学园
  _common
  _gagemax_eff
  _jacket
  _pu_parts
  _pu_symbol_*
  _select_pu_parts
  _symbol
  interludeview
  preparationview
  view
 top**** 活动标志、名称、主视觉图等
 rankingview
 rewardview
 talkview
evex_2d 角色3D半身立绘
 0044_** 1st周年
 0092_** 2nd周年
 00142_** 3rd周年
ex001 一些物品的模组
ex4c***** 四格漫画
exwb******* 剧场板绘
facial_chara
fhout
fk_memorial 2018年感谢祭回忆视频
fontrender
fortune 售卖的各种set宣传图等
gamecorner 游戏角相关缩略图
gasha 卡池、服装池相关
 _bg 第一次MILLIONLIVE COLLECTION活动界面图
 _costume 服装池界面的服装图片
 ***** 卡池名称与卡池界面图片素材(粉币池为99998)
 *view 一些UI资源
 op***** 游戏登录时的卡池告知相关素材
 top_image_***** 现有00002与99998两个文件,目测是GREEMAS时代的卡池界面图
greeting 问候的动作和样式
guest 非765PRO人物相关缩略图、语音
hitokoma 一格漫画
icon
 _[3位编号+3位缩写][4位卡片ID] 角色卡片图标
 _mark_sale
idol_view_curtain 偶像换装时的米色帷幕
info_01 服装「おまかせ」机能介绍页
item_**** 物品图标
jacket_**** 游戏专辑封面(jacket为「vivid color」游戏专辑封面)
job 打工相关
 _*** All/Pr/Fa/An普通、特别工作标识图
 _text_[3位编号+3位缩写]_**** 工作语音等
 _story_[3位编号+3位缩写]_**** 工作剧情语音等
 _text3d_[3位编号+3位缩写]_****
 _lbouns_**** 登录奖励语音等
live LIVE相关
 _3d LIVE 3D相关
 _course
  _btn_7 OM难度圆形标识物(btn=button)
  _icon_7 OM难度长条标示
 _info_[6位歌曲代号] 歌曲LIVE信息
 _note_06 按键指示物图标
 _skill 技能横幅标识
 loading LIVE开始前Loading的背景
 result_[3位编号+3位缩写] LIVE结算界面语音等
  _001 通常
  _002 生日LIVE限定
loadingchara Loading界面右下角Q版角色立绘
login_skip_home
 _bg_*
 _chr_2d_**
loginbonus 登录奖励相关
 _bg_*** 登录奖励界面背景图
 _panel_*** 登录奖励面板
lottery 服装抽奖相关
 _parts 标题、服袋素材
 _result_costume 服装结果图片
ltmap 舞台上出现的各种图案
main 主线剧情相关
 _*** 剧情截图
 _after_***
 _befo_***
 _blogstory_***
 _blst_***
 _chat_***
 _intro_***
masa_test_cb_ss101_001har
masa_test_ch_ss101_001har
mb_jp.gtx
md.mld
md_jp.gtx
memory_[3位编号+3位缩写]_*** 回忆剧情相关
misaki_memo_*** 美咲memo
movieview
mycard
 _bg_event_**** 活动主视觉图(嵌套效果)
 _bg_other_**** 其他主视觉图(如初始标题界面图)
 _logo_event_**** 活动logo
 _logo_unit 组合logo
 _parts 装饰物等(如蝴蝶标志、版权表记等)
navi 导航界面相关
 _comic_thumbnail_* 导航界面中漫画介绍界面的缩略图
 _top 导航界面图标
 _top2 导航界面图标
octopus 拯救屋台!炒面☆花火团
offer offer相关
others_tuto_release
oyster 超级沙滩排球
panel_mission 拼图任务素材
panelmissonview
particle 粒子效果
pecial_108_fc_01_jp
phpb 生日界面的背景和Happy Birthday!!标志
presentlotteryview 抽奖时物品背后的白色放射状图形
profile_mycard 装饰物(如蝴蝶标志等)
resultpose 旧版LIVE结算界面的角色3D立绘
rhy_se_05 按键效果音05
room001 准备室
 _data 动作点、路径信息
 _evening 布景、物品等
 _night 布景、物品等
 _whiteboard 剧场板绘
room002 剧场入口
 _data 动作点、路径信息
 _evening 布景、物品等
 _night 布景、物品等
 _obj02_** 物品
 _season 时令装饰物
room003 换装室
 _data 动作点、路径信息
room004 事务室
 _data 动作点、路径信息
 _evening 布景、物品等
 _night 布景、物品等
 _obj01_** 物品
 _season 时令装饰物
room005 (舞台幕后?)
root_control
sale_icon_** 售卖商品的图标(礼包、福袋等)
salmon 偶像英雄
scrobj_[6位歌曲代号] 谱面信息
se 效果音
 _octopus
 _oyster
 _result
 _rhythm 按键效果音
 _salmon
 _shellfish
 _system
 _theater
 _titlecall title call语音
 _tuna
season 特殊登录语音
 _a_[4位年份]_[3位编号+3位缩写]_*** 节日特殊登录语音(新年、情人节、白色情人节、万圣节、圣诞节等)
 _b_*** 其他特殊登录语音(琴叶复归、2018年新年LIVE、2018年愚人节等)
selection***** セレクションチケット贩售相关图片
sep_icon 歌曲游戏封面右上角的圆形和长条特殊标识(分唱、一部分唱、13人LIVE、双人LIVE、音源选择、39人LIVE等)
shellfishview HARM∅NIZER
song3 游戏版歌曲、分唱音轨以及角色特殊台词
songname LIVE左上方出现的歌曲名称
special 特别剧情相关(这里还有抽服袋的语音)
sse_adv 包含对话、剧情、觉醒、升星界面的各种素材
st_jp
stage 舞台相关
 ***
 2d_stage***
 switchingobjectjson_lmlad+
 switchingobjectjson_lmlady
steaming 流媒体机能相关
student_note 圣百万女学园-学生手册相关
studentnotebookview 圣百万女学园-学生手册界面
system 系统语音相关
 _aspiration_[3位编号+3位缩写] 周年活动中,选择担当偶像时的语音
 _birthbdl***_[3位编号+3位缩写] 生日LIVE结算界面语音
 _birthent*** 偶像生日时,剧场入口处的语音
 _event_gokigen_max_001 圣百万女学园活动中,「ごきげん」槽满之后的语音
 _lesson_[3位编号+3位缩写] 训练相关语音
 _live_[3位编号+3位缩写] LIVE相关语音
 _loginbonus 登录奖励相关语音
 _navi 美咲相关语音
 _other_[3位编号+3位缩写] 其他语音(如title call、自我介绍等)
 _photo_019min
 _photo_044miz
 _room_[3位编号+3位缩写] 房间内相关语音(换装时、剧场入口相关)
 _salmon_[3位编号+3位缩写] 偶像英雄相关
 _storyidol_[3位编号+3位缩写] 偶像详情界面,左侧的偶像问候语音
 _theater_[3位编号+3位缩写] 剧场内相关语音(偶像找制作人时、点击偶像时、偶像之间交谈时)
 _unique_[3位编号+3位缩写] 特殊语音(如组合固定演出时,对应偶像的语音)
tcboardview TC活动相关
the
 _act 动作信息
  _gasha
  _iview_[3位编号+3位缩写]
  _login
  _room01
  _room02
  _room03
  _room04
  _room999
 _sicbok_react
 _sicmag_look
 _sicmcr_base
 _sicshg_base
 _sictea_base
 _sictrt_base
 _sicwor_base
 _sicynm_base
 _sitchr_droing
 _sittlk2_study
 _sittlk3_listen
 _standd
 _stdgtr_base
 _stdwit_base
theater
 _act_arrange_table
 _act_set_arrange_table
 _bgm_table
 _idol_lot_rate_table
 _navi_image_dummy
 _poster 剧场入口处的海报
 _room
  _obj_arrange_table
  _settings
  _whiteboard_table
  ***_act_lot_rate_table
 _shop 商店图标
titlebg_***** 主视觉图
tr_2d_** 1st周年3D半身立绘
tr2_sdchr
tr3_sdchr
training 周年训练相关
 view 周年训练UI
 3view 周年训练UI
tuna MILLION LIE!? FISHER DAYS ~失落的乐谱~
tutorial 游戏教程、活动介绍
unit 组合相关
 _intro 组合标志、成员立绘与合照
 _list_intro 组合标志、成员立绘与合照
 intro 组合标志、成员立绘与合照
 listview 组合相关UI
 msg 按照组合成员编成队伍,LIVE开始前的特殊语音
 select
vc 视频内容
 _event_0044_** 1st周年活动每日偶像视频(*:01-13)
 _event_0092_** 2nd周年活动每日偶像视频(*:01-13)
 _event_0142_** 3rd周年活动每日偶像视频(*:01-13)
 _1st_anniversary 1st周年纪念视频
 _2nd_anniversary 2nd周年纪念视频
 _3rd_anniversary 3rd周年纪念视频
vj 出现在舞台大屏幕中的各种效果、素材贴图
yokosuka 2018年MLTD感谢祭游戏内观看机能相关(yokosuka:横须贺,感谢祭举办地)

基本操作

数据获取

  • 使用MLTDTools中的Manifest Tool工具。依次点击Open选项卡→Remote,会弹出一个窗口。注意到其中默认的通讯站点是td-assets.bn765.com,意味着如果从该站点获取数据的话需要代理,就和游玩MLTD一样。保持默认选项不变,点击OK,然后稍等片刻。
以下是对Manifest Tool工具内部原理的解释,若不打算了解可以直接跳过
  1. 日服的资源下载链接格式为[服务器地址]/[资源版本号]/production/[Unity版本号]/[移动端标识]/[40位散列值].[拓展名],如td-assets.bn765.com/252900/production/2018/Android/18ccc702707deee30cb644c94c874a797a84f264.data,服务器地址为td-assets.bn765.comd2sf4w9bkv485c.cloudfront.net
  2. 港澳台服的下载链接格式为[服务器地址]/[资源版本号]/production/[Unity版本号]/[移动端标识]/[40位散列值].[拓展名]。港澳台服的通讯地址为d3k5923sb1sy5k.cloudfront.net,韩服的通讯地址为d1jbhqydw6nrn1.cloudfront.net[Unity版本号]2017v12018v2两种,前者为[Unity版本号]小于70000时,前者为[Unity版本号]大于等于70000时。
  3. Manifest Tool根据通过matsurihi.me的Princess API获得资源版本号、Unity版本号和游戏manifest的40位散列值。
  4. 游戏的manifest文件(*.data)为MessagePack数据报文格式。GitHub上有很多工具可以将其转换为JSON格式,如u-msgpack-python
  • 程序会在左侧列出服务器上的所有数据。在程序底部的Filter中键入关键词,然后点击By Text,筛选所有符合条件的数据。此处也可以使用正则表达式匹配资源名,例如若要匹配所有未来的游戏语音,则可以输入^[\s\S]*014mir[\s\S]*.acb.unity3d(诸如014mir这样的数字编号参见前文所述的人物编号与字母缩写表),然后点击By Regex进行筛选。更为详细的正则表达式语法可参见菜鸟教程的正则表达式部分
  • 在左侧列表选择数据并右击,在弹出的菜单中选择Add to Pending Downloads,相关文件会出现在右侧列表。
  • 点击Action选项卡→Download Selected Assets...,弹出确认框。在Save to中指定路径之后,点击Go!即可开始。

资源解包

  • 此处使用AssetStudio。点击File→Load file选择.unity3d文件,或者直接将目标.unity3d文件拖入程序左侧列表,稍等片刻等待程序处理完毕。
  • 在Asset List中选择所需的资源类型(可使用选项卡中的Filter Type进行筛选),右击后选择Export selected assets。此处支持按住Ctrl多选以及按住Shift选择一段连续列表。
  • 选择保存路径,即可导出资源。如果需要批量解析与导出资源,且.unity3d文件中仅包含一个文件,则可使用AssetStudio的精简批处理版本AssetStudioCmd简化操作。

实例:音频解码

以下步骤适用于提取所有基于Unity引擎,且使用CRIWARE音频编码技术的作品中的音频资源。此外,下文提及的vgmstream集成了几乎所有常见游戏的key,读取文件时程序会自动选择合适的key来解码,因此可以使用vgmstream处理其他游戏的音频。

  • 注意到AssetStudio解析后的音频文件拓展名为.acb.byte,最后的.byte需要手动删去。文件数量较多时推荐使用Advanced Renamer进行批量处理。
  • 需要注意的是,MLTD服务器中存在一些拓展名为.acb但音频内容为.awb的文件。这类资源名为.acb.unity3d,在AssetStudio中解析后显示为.acb.awb皆有,但其中.acb部分文件很小,音频的内容为.awb。在导出资源时请注意甄别,导出体积较大的.awb文件。可能没有遇到此种情况的话上面这段文字看起来很绕,不过只要记住.acb.awb都有可能是音频本体,在解包时同时遇到这两种扩展名时选择文件大小明显较大的那个就可以了。
所以说为什么有了.awb还要有.acb嘛?它是干什么用的嘛?

如果读取.awb文件同时目录里存在同名的.acb文件,那么此处的.acb文件起到的是索引的作用,帮助显示出.awb文件的名字。例如,在解码赛马娘Pretty Derby的音频文件时,在下文介绍的使用foobar2000解码音频的情况下,如果.awb文件包含多段音频时存在.acb文件,你就能发现音频标题后会用括号注明每一段的文件名。但其实.acb的用处也没有那么大就是了。

  • 在早期,可以使用VGMToolbox解包音频文件为.hca文件,再使用MLTDTools中的HcaDec.exe搭配MLTD的解码key解码音频,但这种方法费时费力,不仅没有GUI界面,也不能通过命令行方式一步到位,解码时在Loop时还可能出现问题,而且音频的某些频率可能会有损失(不知作者是否修复了此问题),因此此处不建议使用此方法解码音频。
过时的音频提取流程,此处仅作存档用
  • .acb/.awb.hca。打开VGMToolbox,在左侧列表中选择Misc. Tools→Extraction Tools→Common Archives→CRI ACB/AWB Archive Extrator。将文件拖入右侧窗口,程序会自动处理,并在同目录下生成包含.hca文件的文件夹。
  • 如果需要批量处理所有.acb文件,可以搜索.acb,并将搜索结果一并拖入程序。
  • 安装了vgmstream plugin插件的foobar2000可以直接播放.acb.awb音频,将这些文件拖入foobar2000的播放列表中即可。
  • .hca.wav。使用MLTDTools工具集里的HcaDec.exe或其他hca decoder完成解码。
  • 之所以优先选用HcaDec.exe,是因为其内置并默认使用MLTD的解码密钥,比较方便。使用方法为:打开命令提示符,在HcaDec.exe的目录下执行HcaDec [需要解码的hca文件],程序会在同目录中生成相应的wav文件。
  • 有用户报告,用HcaDec解码的wav文件与用libcgss中hca2wav组件解码的wav文件有细微不同,具体体现在前者在某些频率有损失。作者的答复是,如果出现不一致,建议使用libcgss中hca2wav解码音频。由于libcgss默认使用CGSS的解码密钥,所以需要手动引入MLTD的密钥,具体而言要执行的命令为hca2wav -a bc731a85 -b 0002b875 [需要解码的hca文件]
  • 在批量操作时,可以用批处理脚本的for /r循环体,实现遍历并自动处理所有子文件夹中的.acb文件。

可以通过两种方法解码和转换游戏音频:

  • 使用安装了vgmstream插件的foobar2000。此方法的优点为界面友好、容易上手。
    1. 下载并安装foobar2000。
    2. 下载vgmstream插件,文件名为foo_input_vgmstream.fb2k-component
    3. 打开foobar2000,依次点击FilePreference,在弹出的窗口左侧中选择Components,而后点击右下角的Install...,选择foo_input_vgmstream.fb2k-component并安装。
    4. .awb文件拖入播放列表中,即可直接播放。需要注意的是,需要要将后缀名修改为对应的.awb.acb,否则即使该文件是音频文件,foobar2000也可能无法识别。点击FilePreference,在弹出的窗口左侧中选择PlaybackDecodingvgmstream,可以修改播放的循环次数等参数。
    5. 若要转换文件,可右击播放列表的项目,选择Convert...,根据需要将音频转换为其他可播放格式。若要将音频转换为wav之外的格式(如mp3/flac/ape),请额外安装官方提供的解码包
  • 使用vgmstream命令行工具。此方法的优点为可以搭配脚本实现批量和自动化处理。
    1. 下载vgmstream命令行工具并解压,其中的test.exe即为主程序。将test.exe重命名为vgmstream.exe备用。
    2. 程序的基本用法为vgmstream.exe [-o 目标文件.wav] <参数> 源文件。另外可以用-l指定循环次数(不指定则默认为循环2次),可以用-f指定淡出时间(不指定则默认为10s),在音频存在多段时可以用-s指定处理其中的哪一段(不指定则默认为第1段)。例如,vgmstream.exe -o sample.wav -l 10 -f 25 sample.acb表示处理sample.acb,循环10次并在结束15s前慢慢淡出,导出为sample.wav
vgmstream命令行工具详细参数

Usage: vgmstream.exe [-o <outfile.wav>] [options] <infile>
Options:
    -o <outfile.wav>: name of output .wav file, default <infile>.wav
       <outfile> wildcards can be ?s=subsong, ?n=stream name, ?f=infile
    -l loop count: loop count, default 2.0
    -f fade time: fade time in seconds after N loops, default 10.0
    -d fade delay: fade delay in seconds, default 0.0
    -F: don't fade after N loops and play the rest of the stream
    -i: ignore looping information and play the whole stream once
    -e: force end-to-end looping
    -E: force end-to-end looping even if file has real loop points
    -s N: select subsong N, if the format supports multiple subsongs
    -m: print metadata only, don't decode
    -L: append a smpl chunk and create a looping wav
    -2 N: only output the Nth (first is 0) set of stereo channels
    -p: output to stdout (for piping into another program)
    -P: output to stdout even if stdout is a terminal
    -c: loop forever (continuously) to stdout
    -x: decode and print adxencd command line to encode as ADX
    -g: decode and print oggenc command line to encode as OGG
    -b: decode and print batch variable commands
    -h: print extra commands (for testing)
    -V: print version info and supported extensions as JSON
    -I: print requested file info as JSON
    -v: validate extensions (for extension testing)
    -r: output a second file after resetting (for reset testing)
    -k N: seeks to N samples before decoding (for seek testing)
    -K N: seeks again to N samples before decoding (for seek testing)
    -t file: print tags found in file (for tag testing)
    -T: print title (for title testing)
    -D <max channels>: downmix to <max channels> (for plugin downmix testing)
    -O: decode but don't write to file (for performance testing)

最后需要注意的是导出的wav文件可能会很大,请注意留有足够的存储空间。

实例:图片处理

拼接四格漫画
  • 包含四格漫画的资源名为ex4c_*****.unity3d。在Manifest Tool工具中筛选并下载所有符合条件的文件。
  • 在AssetStusio内解析,筛选其中的Sprite类型资源,全选后导出。
  • 观察文件名,查找规律。注意到每一张四格漫画都有5个部分:ex4c_*****_00.png(标题)、ex4c_*****_01.png~ex4c_*****_04.png(漫画内容)以及ex4c_*****_05.png(登场偶像)。
  • 如果图片数量较少,可以利用这个网站对图片进行无损拼接;如果需要批量处理,可以使用ImageMagick中的convert工具。

代码例(Windows批处理/命令脚本):

@echo off
setlocal enabledelayedexpansion

set "ImageMagick=D:\Program Files\ImageMagick"
set "SourceDir=F:\ex4c\Sprite"
md "%SourceDir%\Full"
set "TargetDir=%SourceDir%\Full"

cd /d %SourceDir%

del /f /s /q file_list.txt
del /f /s /q file_list_1.txt

dir /a-d /b *.png>>file_list.txt
findstr "[0-9]_0" file_list.txt>file_list_1.txt

for /f "delims=" %%i in ('type file_list_1.txt') do (
  set "str1=%%~ni"
  set "str2=!str1:~0,10!"
  "%ImageMagick%\convert" -append "!str2!_0.png" "!str2!_1.png" "!str2!_2.png" "!str2!_3.png" "!str2!_4.png" "!str2!_5.png" "%TargetDir%\!str2!.png"
) 

del /f /s /q file_list.txt
del /f /s /q file_list_1.txt

pause

其中,-append表示纵向拼接,拼接的顺序即为命令中出现的文件顺序,最后再加上想要保存的文件即可。

拼接主视觉图
  • 游戏的通常主视觉图(不含活动和特殊主视觉图)现在一般保存在应用程序的APK中。
  • 解压APK,打开assets/bin/Data,找到data.unity3d文件,在AssetStusio内解析。
  • 寻找其中的title_bg_*.png文件并导出。观察文件名,注意到主视觉图有5个部分:title_bg_0.png是图片的主体;title_bg_1.pngtitle_bg_0.png的右侧,但被顺时针翻转了90°;title_bg_2.pngtitle_bg_3.png共同组成title_bg_0.png的左侧部分;title_bg_4.pngtitle_bg_5.png共同组成title_bg_1.png的右侧部分。
  • 如果图片数量较少,同样可以利用这个网站对图片进行无损拼接。但如果需要批量处理,可以使用ImageMagick中的convert工具进行拼接,顺序是:纵向拼接title_bg_2.pngtitle_bg_3.pngA.png;对title_bg_1.png逆时针翻转90°为B.png;纵向拼接title_bg_2.pngtitle_bg_3.pngC.png,最后按顺序横向拼接A.pngtitle_bg_0.pngB.pngC.png并保存为Final.png,最后删去中间文件A.pngB.pngC.png

代码例(Windows批处理/命令脚本):

@echo off

set "ImageMagick=D:\Program Files\ImageMagick"
set ImageDir=图片所在目录

cd /d %ImageDir%

"%ImageMagick%\convert" -append "title_bg_2.png" "title_bg_3.png" "A.png"
"%ImageMagick%\convert" -rotate -90 "title_bg_1.png" "B.png"
"%ImageMagick%\convert" -append "title_bg_4.png" "title_bg_5.png" "C.png"
"%ImageMagick%\convert" +append "A.png" "title_bg_0.png" "B.png" "C.png" "Final.png"

del A.png /f /s /q
del B.png /f /s /q
del C.png /f /s /q

pause
拼接卡图小图
  • MLTD的卡图是按照对应角色的出卡顺序编号的,没有一个能筛选所有特定卡图(例如周年卡卡图)的固定编号。在Manifest Tool工具中筛选并下载需要的卡图文件。
  • 观察文件名,注意到每个卡面的unity3d文件束解开后都有12个部分,其中0-5对应无框卡图,6-11是对应带框卡图。以0-5为例,0是卡图的上半部分,1是下半部分的左半部分,2是下半部分的右半部分中的上半部分,3-5是前面剩下的下半部分。
  • 此处推荐使用ImageMagick中的convert工具。+append表示横向拼接,-append表示纵向拼接,之后依次写入需要拼接的文件,末尾是目标文件。按照上面所说的相反顺序来写命令,先横向拼接3-5,之后纵向拼接2和3-5,再横向拼接1和2-5,最后纵向拼接0和1-5。

代码例(Windows批处理/命令脚本):

@echo off
setlocal enabledelayedexpansion

set "ImageMagick=D:\Program Files\ImageMagick"
set "SourceDir=F:\Processing\Sprite"
md "%SourceDir%\Full"
set "TargetDir=%SourceDir%\Full"

cd /d %SourceDir%

del /f /s /q file_list.txt
del /f /s /q file_list_1.txt

dir /a-d /b *.png>>file_list.txt
findstr "_._0" file_list.txt>file_list_1.txt

for /f "delims=" %%i in ('type file_list_1.txt') do (
  set "str1=%%~ni"
  set "str2=!str1:~0,12!"
  "%ImageMagick%\convert" +append !str2!_3.png !str2!_4.png !str2!_5.png !str2!_a.png
  "%ImageMagick%\convert" -append !str2!_2.png !str2!_a.png !str2!_b.png
  "%ImageMagick%\convert" +append !str2!_1.png !str2!_b.png !str2!_c.png
  "%ImageMagick%\convert" -append !str2!_0.png !str2!_c.png "%TargetDir%\!str2!.png"
  "%ImageMagick%\convert" +append !str2!_9.png !str2!_10.png !str2!_11.png !str2!_a_f.png
  "%ImageMagick%\convert" -append !str2!_8.png !str2!_a_f.png !str2!_b_f.png
  "%ImageMagick%\convert" +append !str2!_7.png !str2!_b_f.png !str2!_c_f.png
  "%ImageMagick%\convert" -append !str2!_6.png !str2!_c_f.png "%TargetDir%\!str2!_f.png"
  del /f /s /q !str2!_a.png
  del /f /s /q !str2!_b.png
  del /f /s /q !str2!_c.png
  del /f /s /q !str2!_a_f.png
  del /f /s /q !str2!_b_f.png
  del /f /s /q !str2!_c_f.png
) 

pause
剧场板绘相关
  • 在Manifest Tool工具中筛选并下载需要的卡图文件:
    • 旧剧场白板板绘名称为exwb_*******,解析之后需要对原图进行拼接。
    • 新剧场白板板绘名称为room001_whiteboard_*******,解析之后需要对原图进行裁剪。

代码例(Windows批处理/命令脚本):

旧剧场板绘拼接
@echo off

setlocal enabledelayedexpansion

set "ImageMagick=D:\Program Files\ImageMagick"
set "ImageDir=D:\Users\jerry\Desktop\Sprite"

cd /d %ImageDir%

for /f "delims=" %%i in ('type 2.txt') do (
  set "str=%%i"
  "%ImageMagick%\convert" -rotate -90 "!str!_01.png" "A.png"
  "%ImageMagick%\convert" +append "!str!_00.png" "A.png" "!str!_final.png"
)

del A.png /f /s /q

pause
新剧场板绘裁剪
@echo off
setlocal enabledelayedexpansion

set "ImageMagick=D:\Program Files\ImageMagick"
set ImageDir=图片所在位置

for /f "delims=" %%i in ('type filelist.txt') do "%ImageMagick%\convert" %%i -crop 712x412+6+6 %%~ni_final.png

pause

待明确之处

  • 游戏内文本(*.gtx)的解密方法
    • 从解包的格式*.gtx.bytes看,基本上确定是进行了加密
    • 解决方法的话,或者从内存dump数据,或者通过解析游戏dll获得解密方法或是密钥,虽然这两者都很麻烦就是了x