-
Notifications
You must be signed in to change notification settings - Fork 47
模组制作指引
本指引提供模组格式的基本说明,不针对任何的游戏和模组
本程序提供一种方法来替换安卓程序(一般是游戏)内的资源,并且提供资源解析,自动备份还原,虚拟环境,持久化资源支持,OBB资源支持,在线模组托管等功能。任何人在遵从开源协议的情况下可以任意使用,但作者不承担任何责任以及你使用后的后果。
可解析的资源是特指资源解析功能的,在一些游戏中,可能会将很多资源打包成一个文件,这种情况下如果一个模组替换了这个文件那么另外一个模组再替换这个文件只会有一个模组生效(优先级高的,在管理器中在列表下面的模组优先级高),为了解决这种问题引入了资源解析功能,管理器负责将大文件解析成较小粒度的文件尽量避免冲突。目前模组管理器支持一下资源的解析:
格式 | 魔数 | 最小可修改资源 | 说明 |
---|---|---|---|
Unity Bundle | UnityFS | resource dat 文件 | Unity3D的打包文件格式,可以用UABE解压 |
Wwise AKPK | AKPK | wem 音频文件 | 音频引擎Wwise的打包文件格式,可以用音频工具包解压 |
- 魔数即文件开头的N个字节内容,一般用于标示文件类型
- 如果有需要其他文件格式的支持可以提Issues,作者在力所能及的范围内会尽量去做
- 对于不可解析的资源也可以使用文件整体替换的方式进行修改,并不是说不可解析的就不能修改
即APK文件内部的资源,需要使用虚拟模式或者Root模式才能替换,资源根目录为APK文件解压后的根目录
即安卓内解压或者下载到SD卡或者内部存储的资源,任何模式都可以替换,资源根目录为/sdcard/Android/data//files
即安卓OBB数据文件内的资源,虽然任何模式都可以替换,但是在APK内有校验码,需要可以修改APK的模式下才会重新计算和修改这个校验码,资源根目录为/sdcard/Android/obb/内的obb文件解压后的根目录
新建一个文件夹,起一个好名字,一个模组就好了,只是现在模组是空的,没有说明也没有修改任何资源。
在文件夹内新建一个文本文件,命名为info.json,修改文件内容,模板如下:
{
"name": "模组名称标题",
"author": "作者名称",
"description": "模组说明,支持超链接。"
}
再放几张预览图,推荐jpg格式,大小1M以下。
好了,现在把这个文件夹作为模组导入管理器,可以看到预览图和说明了,虽然还没有修改任何资源。
首先准备好你要替换的资源文件,为这个资源文件相对与第三节所属的资源根目录建立对应的目录结构。
比如我要替换APK内的/asset/avater/zd_ck_699d23bd96746cb25a5f8295d59d8602.unity3d
那么你要在模组目录内建 asset 文件夹,再在里面建 avater 文件夹,最后把要替换为的unity3d文件复制进去,并且命名为 zd_ck 这个命名需要去掉最后一个下划线和后面的部分(包括后缀名),为了兼容部分游戏多渠道不同hash的问题。一个模组可以替换多个文件,重复操作即可。
对于支持文件解析的资源,可以只替换里面的最小可修改资源,具体操作为将上一节的zd_ck建立为文件夹,然后将要修改的内部的资源用UABE的导出dat功能导出放到文件夹内,管理器就只会替换这一个资源。同理要修改Wwise音频文件的话也是用音频工具包解压后改好文件名放到对应的文件夹内。
对于要发布的模组,打包成zip格式再发布是一个好办法,要注意的是压缩的时候要保证压缩包的根目录就是模组文件夹的内的根目录,没有多余的文件夹层次,对于大部分压缩软件来说需要这样操作,打开模组文件夹,Ctrl + A 全选,然后右键压缩为zip