8 个版本 (4 个稳定版)
1.1.0 | 2021 年 5 月 8 日 |
---|---|
1.0.2 | 2020 年 9 月 4 日 |
1.0.1 | 2020 年 8 月 25 日 |
0.2.0 | 2020 年 7 月 27 日 |
0.1.1 | 2020 年 6 月 6 日 |
#2556 在 命令行工具
每月下载量 28 次
68KB
1K SLoC
sc_extract
sc_extract
是一个从 Supercell 游戏文件中提取图形和解码 csv 文件的高效工具。
此工具旨在从文件中获取高质量的图形和数据。它绝不旨在
- 以任何方式修改游戏
- 创建基于 Supercell 任何游戏的克隆或任何其他游戏
- 获利
功能
sc_extract 的一些功能包括
- 非常快速的速度(比 Python 工具快 10 倍以上)
- 为多个操作系统预编译的二进制文件(Linux、macOS、Windows)
- 支持多种文件格式
- 非常广泛的命令行支持
sc_extract 可以提取/处理 Supercell 游戏中找到的以下文件
_tex.sc
.csv
.sc
文件是从 QuickBMS 提取的
sc_extract 是一个独立工具(二进制名为 sce
),但它提供了一个简单的 Rust crate,具有干净的 API,允许开发人员以最小的工作量实现自己的工具。
关于此工具
此工具是这些脚本的 Rust 实现
- cr-sc-dump:tex_sc 和 csv 提取
- sc_decode:从 tex_sc 精灵中提取单个图像
Python 实现提取大文件中的图像需要很长时间。sc_extract 可以非常快速地提取数据。以下是一些比较
-
要从《斗罗大陆》版本
27.269
中提取所有_tex.sc
精灵,sc_extract 需要 不到 20 秒,而 cr-sc-dump 需要 超过 4 分钟 -
要从《斗罗大陆》版本
27.269
的ui
文件中提取所有单个图像,sc_extract 需要 大约 2.5 分钟,而 sc_decode 需要 超过 10 分钟。
注意:以下时间是在配备了1.8 GHz 双核英特尔酷睿i5处理器和8 GB RAM的MacBook Air上测试的。它们可能在您的机器上有所不同。
可以通过使用parallelize
标志进一步减少sc_extract所需的时间。
安装
sc_extract
可以通过三种方式安装。第一种方法(推荐)速度最快,无需安装Rust。第二种和第三种方法需要您安装Rust的2018版本。Rust适用于大量操作系统。点击上面的链接将带您到Rust的安装页面。
下载预编译的二进制文件(推荐)
您可以在此处找到适用于多个操作系统和架构的预编译二进制文件。
下载适合您机器的二进制文件。下载后,解压文件夹。您应该看到以下三个文件
sce
(或Windows上的sce.exe
)README.md
LICENSE
现在,使用cd
进入此目录,然后按照此处描述的步骤使用它!
使用cargo install
sc_extract可在crates.io上找到。您可以通过在终端中使用cargo install sc_extract
命令来安装和构建此工具。安装过程需要几分钟来构建所有依赖项,但一旦完成,该工具将非常快速地运行。
它还会自动将其添加到shell路径中,允许您从任何目录使用此工具。
从源代码构建
您可以下载此工具的源代码,然后使用cargo build --release
命令自行构建。在执行此命令之前,您需要使用cd
进入此工具的目录。不要忘记使用--release
标志,否则您的工具将运行非常慢。
注意:以下示例命令将假定您已使用第一种或第二种方法安装了工具。如果您是从源代码安装的,您必须在所有命令中将sce
替换为cargo run --release
。之前版本的sc_extract
的二进制文件名为sc_extract
,因此如果您有旧版本,您必须使用sc_extract
作为名称。
用法
注意1:您可能需要将下面的命令中的sce
替换为./sce
、sce.exe
、sc_extract
或cargo run --release
。
注意2:提取的sc
将被用于表示在以下章节中使用的QuickBMS提取的.sc
文件。提取的sc
文件没有扩展名,它们看起来像ui
、loading
等。
您需要提取超级细胞游戏所需的_tex.sc
、提取的sc
或.csv
文件。您可以通过下载游戏的APK文件,将其扩展名更改为.zip
,解压缩并导航到解压缩文件夹中的/assets/sc
(_tex.sc文件)、/assets/csv_logic
(csv文件)或csv_client
(csv文件)文件夹来获取文件。要获取提取的sc
文件,请参阅本节。
安装此工具后,请使用cd
进入工具所在的目录(如果您将其添加到路径或使用第二种方法,则不需要这样做)。
cd path_to_sce
然后,只需使用以下命令即可提取所需的文件!
sce [FLAGS] [OPTIONS] [path]
path
必须是一个有效的路径,指向单个_tex.sc
、提取的sc
或.csv
文件或包含这些文件的目录。请参阅标志和选项部分以了解更多信息。
如果没有指定path
,则使用当前目录作为路径。
如果您使用源代码安装了工具,您可能希望在提取文件之前构建工具及其所有依赖项。您可以在工具目录中运行cargo build --release
命令。构建需要几分钟,但以后运行工具将非常快。
标志和选项
以下可选标志和选项可以指定以控制提取。您可能需要指定png
选项(见下文)以从提取的sc
文件中提取图像。
标志 | 短 | 描述 |
---|---|---|
--delete | -d | 在提取后删除源文件 |
--parallelize | -p | 并行提取文件,使过程更快 |
--disable-filter | -F | 禁用过滤常见易出错文件,如quickbms 和.DS_Store |
--help | -h | 打印帮助信息 |
--version | -V | 打印版本信息 |
选项 | 短 | 描述 | out_path |
---|---|---|---|
--out | -o | 指定输出目录。如果没有指定,将在path 中创建名为extracts 的目录。 |
out-path 必须是一个有效的路径字符串。 |
--png | -P | 指定存储_tex.sc 文件的提取图像的目录路径。这是使用提取的.sc 文件剪切图像所必需的。如果没有指定路径,sc_extract将在包含源文件(提取的sc )的目录中查找png文件。 |
png-dir 必须是一个有效的路径字符串。 |
--type | -t | 指定您要提取的文件类型。默认情况下,考虑所有类型。 | kind 可以是"csv"、"sc"和"tex"(不带双引号)之一。 |
示例命令
sce ./sc -F
上述命令使用 ./sc
作为源目录。它逐个遍历目录中的所有文件并提取所有有效文件。输出保存在 ./sc/extracts
目录中。它不会忽略像 quickbms
和 .DS_Store
这样的文件,因为这些文件由于 -F
标志而不会被忽略。
sce --delete -p ./sc --out ./extracts
上述命令使用 ./sc
作为源目录。它并行遍历目录中的所有文件并提取所有有效文件。输出保存在 ./extracts
目录中。未提供 png
标志,因此它会在 ./sc
中查找从 _tex.sc
提取的精灵。如果 ./sc
目录不包含精灵,则无法从提取的 sc
文件中裁剪图像。其余的提取不会受到影响。提取后,所有有效的 _tex.sc
、.csv
和提取的 sc
(带有png图像)文件将被删除。
sce -p ./sc --out ./sc_out -t sc --png ./sc/extracts
上述命令使用 ./sc
作为源目录。它并行遍历目录中的所有文件,并使用所有有效的提取 sc
文件裁剪图像。输出保存在 ./sc_out
目录中。用于提取的png文件将在 ./sc/extracts
目录中搜索。
使用 QuickBMS 提取 .sc
文件
QuickBMS 是提取 .sc
文件所必需的。您还需要 clash_royale.bms。QuickBMS 可以从 macOS 这里 下载。
将 QuickBMS 和 clash_royale.bms 复制到包含 .sc
文件的目录中(不是 _tex.sc
),然后运行此命令
find . -not -name '*_tex.sc' -name '*.sc' -exec ./quickbms ./clash_royale.bms {} \;
如果您使用的是 Windows,您可能需要根据需要调整此命令。
运行此命令将为文件夹中的每个 .sc
文件创建一个新的文件。这些文件将与相应的 .sc
文件具有相同的名称但没有扩展名。这些被称为提取的 sc
文件,用于裁剪精灵。
更新
如果您使用了预编译的二进制文件,您只需从 Releases 页面下载新版本的二进制文件即可。
如果您使用 cargo install
安装了工具,您可以通过简单地重新使用 cargo install sc_extract
命令来更新工具。如果更新工具失败,您可以添加 --force
标志强制执行,如下所示: cargo install sc_extract --force
。
如果您使用源代码安装,您将需要使用新源代码重复 Building From Source 部分中描述的过程。
许可协议
sc_extract 在 MIT
许可协议下提供。有关详细信息,请参阅 LICENSE。
鸣谢
如果没有以下人员创建原始的 Python 脚本,此工具将不会存在。
依赖项
~23–34MB
~324K SLoC