Supercell 游戏动画文件拆解与制作

我们都知道,supercell 公司 (简称 sc) 旗下有很多游戏,这些游戏基本都采用帧动画来呈现人物和特效,场景与 ui 元素,将 3d 模型转为 2d 纹理贴图,大大减少游戏的体量并提高了手机版本的兼容性。那么这个帖子就是如何制作 sc 的贴图并在游戏中呈现。本次教程我们以皇室战争 (2017) 为例。

参考文档:SupercellSWF-Animate/examples/Clash Royale/Character at main · sc-workshop/SupercellSWF-Animate

修改/创建动画教程

第一步:准备工具

网络代理工具:瓦特工具箱 (Steam++官网) - Watt Toolkit

目的:用于加速一些无法访问的网页,推荐下载并全部勾选加速


①下载 An 软件 (Adobe Animate

目的:我们要使用该软件编辑人物,特效,形状,状态等。

下载破解版 b 站教程:教你用 GenP 白嫖 Adobe 全家桶_哔哩哔哩_bilibili

以防教程被吞,破解插件官网:GenP Universal Patch 3.7.1 | CyberMania

第一个下载方法 (推荐):点击 Binary 下的 download,解压即可使用。

第二个下载方法:点击 source 下的 download:

下载后会得到 zip 压缩包,解压后右键 bat 文件以管理员身份运行:

然后提示你缺少以下插件,是否下载?我们输入 y,按回车键:

它会自动执行并将程序存放在以下文件夹内:

Adobe(An) 下载:Adobe

打不开换个浏览器,比如 Edge

下载后我们放到合理的存储路径后双击打开,他会提示你登录或注册账号,我推荐第一次用 Genp 的朋友们注册新的账号,不管你之前是否有,这将决定你的破解流程是否可行:

创建 Adobe 账户:创建帐户

创建好后我们在客户/网页端登录:

之后点击安装,并耐心等待 10 分钟左右:

进入到 Adobe 主菜单后我们打开我们的破解插件,点击放大镜 Search

搜索完成后点击 Patch

之后我们的 Adobe 会自动退出,并关闭破解插件。我们再次打开 Adobe 后发现所有软件可以下载了:

下载完后切记不要打开,再重新启动我们的破解插件,点击 Search

发现有一些可更新的。这就是我们本次要准备破解的 An 软件,点击 Patch

观察这些被勾选的框,一个个被消除掉,进度条走完,弹出该弹窗即可关闭,我们的 An 就可以使用了,在开始菜单栏中打开我们的 An:

没有提示试用即代表破解成功:

 

小 tip:如果你破解后发现忽然有一天不能用,那就去 GenP 官网下载新版即可。


②下载 sc 动画插件 (SupercellSWF-Animate)

目的:在 An 中创建项目时须选择该插件提供的项目模板,使用该模板进行任何 sc 的动画编辑与创建,该插件是制作 sc 游戏动画的必须,同时使用该插件导出你制作的动画为 SC 游戏文件。

下载工具并查看该网址右下角 Releases 最新版本:sc-workshop/SupercellSWF-Animate: Plugin for Adobe Animate to create new or export SC files and use in all Supercell games

进入该作者 Ds 服务器可以获取付费特定版本 (你暂时可以无视):https://discord.gg/W5X8XPcQ


③下载 sc 游戏贴图转换器 (SC2FLA-FOSS-Edition)

目的:该程序用于解压 sc 游戏动画文件 (截止于 2025.11.9 日前) 老版本的动画文件格式和新版本的动画文件格式,并将它们转换为 fla 格式 (用于 An 打开的一种文件)

下载工具并查看该网址右下角 Releases 最新版本:GenericName1911/SC2FLA-FOSS-Edition: Convert Supercell's .sc files to .fla with SC2 Downgrading, SCTX Texture Support and Spritesheet Creation

第二步:部署工具

安装好 An,我们开始部署 SupercellSWF-Animate 和 SC2FLA-FOSS-Edition 。

下载并解压二者:

①部署 SupercellSWF-Animate

首先我们安装 SupercellSWF-Animate,双击 install.jsfl 视为安装该 An 插件,如果你安装完毕再次双击这个,视为卸载:

双击后等待 An 自动弹出,点击确定:

之后会有安装动画,等待出现 Done 即为安装完毕:

②部署 SC2FLA-FOSS-Edition

接着我们部署 SC2FLA-FOSS-Edition:

下载 python:Python Releases for Windows | Python.org

基本我们的电脑都是 64 位,直接点击这个即可:64-bit

安装 python 时全部勾选,点击下一步安装即可:

然后回到 SC2FLA-FOSS-Edition 文件目录,点击路径栏,在里面输入 cmd 并回车运行:

弹出控制台后准备下载我们的 python 依赖库,复制该代码粘贴到控制台并回车:

(在控制台内右键或 ctrl+v 即可粘贴)

pip install -r requirements.txt

呈现的效果是这样:

回车键输入后,出现红框中的字样后,即下载完毕:

下载完成后,我们还需要下载 ScDowngrade.exe 和 SctxConverter.exe,点击箭头所指的地方即可下载:

将这两个文件放入到 lib 文件夹中:

然后回到 SC2 的主目录,创建一个 py 文件:

如何创建?鼠标在空白处右键,新建一个 txt 文本

然后将我的代码放进去

然后右键文件选择重命名将 txt 删掉再输入 py 即可。如果你重命名时发现该文件没有文件格式后缀的话点击查看,勾选文件扩展名。

改完后缀后,双击这个文件,你可以为这个文件自定义名称,但要确保这个文件是 py 文件:

打开后出现该样式,即视为部署成功!:

③部署 SC Xcoder 工具:

xcoder-tool/XCoder:一款专为 Supercell 游戏设计的跨平台模组工具。 --- xcoder-tool/XCoder: A multiplatform modding tool designed for Supercell games.

注意留意网页中新版本 Release 下载提示。 py 版本需 python 3.10+,在命令窗控制台输入:

py -3 -m pip install --upgrade pip
py -3 -m pip install poetry

安装完成上述后,下载完成 Xcoder 后解压,进入你的 xcoder 目录,在路径中输入 cmd 进入控制台输入:

py -3 -m poetry install

等待安装依赖完成后启动 xcoder:

py -3 -m poetry run python -m xcoder

弹出选择语言则代表部署成功!选择中文,等待一会即可,然后我们创建一个 bat 文件,文本内输入以下内容,目的是一键双击启动:

:: 启动程序 poetry run python -m xcoder

若上述方法无用,请前往 python3.11 特定版本:https://www.python.org/downloads/release/python-3119/

如果需要 c++编译环境,其实可以跳过,步骤如下 (在 xcoder 文件目录内执行指令):

1. 强制删除坏依赖 (不编译):

 py -3 -m poetry remove pylzham

2. 安装剩下所有依赖:

 py -3 -m poetry install --no-root

3. 手动安装替代库:

 py -3 -m poetry add sc-compression zstandard

4. 直接启动 XCoder:

 py -3 -m poetry run python -m xcoder

如果你认为 xcoder 不需要,也可以采用该帖子方法进行 csv/sc 解压:Clash of Clans(COC) 资源打包相关技巧探密_sc 文件解包工具-CSDN 博客

或参考该 xcoder 使用网站:XCoder 开源项目使用教程-CSDN 博客

第三步:修改动画

解密 CSV,定位指定 sc 动画文件

这里我以 1.9.2 皇室战争为例,我们将 apk 安装包下载后查看内部内容 (重命名将 apk 改为 zip 后解压或用 mt 管理器直接查看并修改,或其他方法问百度等) 。

我提供 apk 链接,这方便你查找和修改任何版本的 sc 游戏:Latest Uploads - APKMirror - Page 3

旧版 sc 游戏动画文件通常是 sc 一代压缩 (LZMA) 我们以火枪手为例,如何去寻找这个动画文件?,安装包根目录文件夹 assets→sc 。打开 sc 文件夹后,里面那么多 sc 文件,哪个是火枪手的呢?这时候我们要去查找游戏人物名字了,assets 内部中有一个 CSV 文件夹,这里的 csv 文件是游戏核心,这些文件涵盖了游戏文字内容显示和兵种,法术等一切配置。如果你打开 csv 显示的不是文本而是乱码,就需要用 csv 解压工具:SC Xcoder 来解决了!例如以下图片:

启动 xcoder 控制面板后,将加密的 csv 文件放到 XCoder-master\CSV\In-Compressed 目录下,比如 text.csv,然后控制台内输入 21 后点击键盘上的回车键,则为 解压 CSV,之后几秒内控制台会显示解压完毕,解压的文件路径:XCoder-master\CSV\Out-Decompressed

找到 sc 动画文件并查看

查找火枪手一般都要从 text.csv 或某些 csv 文本内进行全词匹配搜索 「火枪手」 或英文名等其他国家语言就可以搜索到,搜索到后,我这里皇室对应的是 TID_SPELL_MUSKETEER(卡牌_火枪手,该文本与卡牌相绑定,卡牌中显示火枪手文字):


我们可以看到搜索结果为两个,那么还有一个火枪手是 TID_CHARACTER_MUSKETEER(火枪手兵种名字信息),这个就是兵种里所显示的火枪手文字,如果是哥布林飞桶,那么 TID_SPELL 关联的是 「哥布林飞桶」 文字,里面的 TID_CHARACTER 则显示 「哥布林」 等级,而不是哥布林飞桶,这样让玩家知道这个卡牌是哥布林飞桶,卡牌关联着哥布林,卡牌信息中显示 「哥布林」 等级的三个字。这就是 spell 和 character 的意义所在。

我们现在正在寻找火枪手的 sc 动画文件,所以兵种大全 characters.csv 就是,我们要复制 TID_CHARACTER_MUSKETEER,并粘贴在 characters.csv 里搜索:

找到了!红线所标识的就是火枪手关联的动画文件:chr_musketeer.sc

右上角点击关闭 mt 管理器的自动换行会方便复制~我这里推荐你使用 EmEditor:【 EmEditor 】一款强大的 CSV 表格编辑器 - 蚕豆网

可以精准定位并快捷修改 csv 表格, 你甚至可以翻译 csv 为中文并修改里面的行数据,这要比 WPS 方便许多。

现在要去安装包内 assets→sc 文件夹中搜索此文本,找到 chr_musketeer.sc 文件后将 sc 文件放在 SC2FLA-FOSS-Edition 文件夹内的根目录下。

但请注意,一代 sc 几乎是一个 sc 关联着另一个_tex.sc 文件,例如火枪手 chr_musketeer.sc 就必定关联一个 chr_musketeer_tex.sc 文件,只有将这两个文件一起放在 sc2fla 目录下才可正常转为 fla 文件。

打开我们的 sc2fla 控制面板,选择 1 选项,出现返回菜单则为转换完毕。

查看 sc 文件的 fla 文件

如果这个文件不能被打开,就右键该 fla 文件,选择打开方式为 Animate.exe 即可,你可以下载 Everything - voidtools 打并搜索 Animate.exe,不细说,网上搜哈。

打开 fla 后,展开 export 文件夹,所展现的就全是动画了,每一个动画都被称为 「影片剪辑」,通过动画名字左边的小图标就可以判定和记忆。你可以尝试鼠标右键 chr_musketeer_attack1_1 并点击 「播放」,可以看到右上角的舞台开始展示火枪手的开火动画了。

 

我们需要查看 export 的内部结构,仔细观察,发现有多个不同的分类,比如 chr_musketeer_attack1_1 的 attack1,chr_musketeer_idle1_1 的 idle1 和 chr_musketeer_run1_1 的 run1,如果没有其他的类,我们可以继续往下看:

这三个则代表为 attack(进攻),idle(待机),run(奔跑)

idle1 是玩家放置卡牌前的待机动画,attack1 是兵种进攻的动画,run 是进攻前的奔跑动画 (当然是 characters.csv 里火枪手有移速数值的前提下,没有移动速度则默认为 idle 动画) 。

右键第一个 chr_musketeer_attack1_1,点击弹出选项栏中的 「编辑」,大舞台就打开了这个类型为 「影片剪辑」 的内部结构了:

根据上图我们可以往右拖动箭头指示的滑动栏,这样可以展开帧,往左则是缩小帧。

创建 sc 动画文件

警告:如果你打开了非常大的 fla 文件,例如部落冲突的 building 或 effects.fla 文件,先关闭这些 fla 文件工程,创建好 sc 动画预设后再打开它们!不然你的 An 会卡死导致前功尽弃。

但是目前对于 fla 文件我们只能查看并复制或重命名一些影片剪辑或帧图片,还无法进行导出为 sc 文件的操作,所以我们要在 An 左上角的文件→新建→高级→自定义平台→创建:

创建好后我们先观察一下火枪手 csv 数据的 BlueExportName(蓝方动画导出名):chr_musketeer_blue 和 RedExportName(红方动画导出名):chr_musketeer 。这里面的内容就是你待会做好动画以后要引用的名字。

在新建 An 工程右侧我们创建一个文件夹,命名你的兵种名字,最好是英文,比如 666 。对于皇室 1.9.2,这里的 666 文件夹里必须包括 attack1,idle1,run1 这三个子文件夹,所以继续创建这三个文件夹后将三个拖入到 666 文件夹中:

(当然你可以不改动,默认火枪手名字就好,我的意思是名字是可以自定义的,但我不建议新手这么没做,他会让你很累或学到的东西较少,等你看完帖子熟练了再进行自定义名字是个不错的选择)

将 chr_musketeer.fla 内的 chr_musketeer_attack1_1(影片剪辑) 复制并粘贴到上图红框的跟目录中,不要粘贴到文件夹中,根目录就好,然后双击 chr_musketeer_attack1_1 并更名为 666_attack1_1,然后拖动放置到 666/attack1/  的文件夹内:

其余的一并跟着放进来,并重命名。

chr_musketeer_attack1_1 的_1 的 1 是干嘛的呢,1 为角色正方向,朝向对面,往后推 2,3,4,5 则为转向,最高到 9,9 是正对着你,背身对敌人,如果只有 1,2,3,那 3 就可以是背身,每一个数字代表着角色在战斗中的朝向。

我们右键 「影片剪辑」 并编辑,在舞台中央会看到类似+的样式,这个是摄像机中心,如果你的图像偏离这个+越远,那么在游戏中你放置兵种时,图像离你所放置的位置也会被偏离。

你可以编辑帧,修改帧的时长,放大缩小等,这就是 An 的教学了,我不多讲,我们新建一个帧图层,在你想开始的帧位置拖入自己喜欢的图片:

那么从 19 帧开始,往后就会显示寒冰菇了!,我们还要留意一下 Frame_Labels 图层,也就是第二个帧图层,这个 action_frame 的帧是作为动画卡点的,比如这个进攻动画总共 6 帧,在游戏中兵种的进攻间隔是 1.5 秒,在 1.5 秒内,如果这个动画播放完了,他会重新又播放一遍,所以这个帧的作用是为了做卡点标记进攻刹那的,即为每 1.5 秒内,下一次进攻动画会等待当前时间结束后重新开始播放,而不是 1.5 秒内就无限循环播放进攻动画。

 

例如火枪手会在第 15 帧开火,子弹发射出去,那么我们需要将 action_frame 这一帧拖动到第 15 帧上,确保 1.5 秒后火枪手发射子弹时,正好对应这第 15 帧。或者你可以将寒冰菇的开始帧拖动到第 15 帧,这意味着火枪手发射子弹时,寒冰菇出现。就是这么简单。

第四步:生成 sc 导入游戏

我们现在就简单修改了一下进攻动画,选中所有 666 文件夹内的影片剪辑,右键属性,点击 「在第一帧中导出」 选 「是」

之后 「链接」 中会出现和左侧 「名称」 下的名字一样的名字,这些名字作用是用于在游戏中显示这些 「影片剪辑」 。确保右侧 「链接」 没有遗漏。

点击左上角文件→发布设置:

设置路径,选择导出 sc 级别为 sc1,点击导出到指定路径即可,导出名字可自定义,之后路径中就会出现你的 sc 和_tex.sc 文件了。

将你的俩 sc 文件放进安装包的 assets→sc 内,在 characters.csv 中指定你的 sc 文件和名称即可,这个名称必须是大文件名字:

在游戏中,修改好后安装安装包,进入游戏,放置火枪手,你的火枪后会在每次开火时出现寒冰菇。

疑难解答

为什么闪退?

问:我修改好 sc 并导入游戏后,要么游戏进不去,要么在放置卡牌时闪退,要么是游戏在游玩过程中闪退?

答:首先检查 An sc 工程中的链接是否输入正确,是否和影片剪辑名称一致,有些卡牌图片你没有设置好名称关联会导致进入游戏时游戏找不到卡牌图片而闪退,其次是 sc 工程中大文件名称是否有误。放置卡牌一般兵种和建筑都是 idle1,兵种朝向不能有_0 这一说法,要从 1 开始 (也许),游玩过程中闪退检查你的兵种是否有三类 (attack1,run1,idle1),而建筑不需要,建筑只需要 idle1 就可以了。

新版 sc 游戏一般都有 animations.csv,在这里配置动画文件和名称关联,至于没有 animations.csv 的老版本,就按上述潜规则进行设置。

 

问:为什么上面都无误还是会闪退?

答:这就涉及到兵种属性,比如王子会有冲锋动画,骷髅守卫会有盾牌动画,还有超级骑士的部署动画。这些动画如果你没有创建,但是 csv 中你的兵种包含了这类属性,就会导致在属性生效时,找不到动画而闪退,正确做法是先将这类特殊兵种建筑的 sc 转为 fla,如果发现纹理有问题,老版本可能 sc2fla 有 bug,就用新版本的游戏 sc 文件,或使用 ToxicLand/SCEditor: Create or Edit Supercell (Clash of Clans, Clash Royale, Brawl Stars, Boom Beach) SC Files. Add or Edit an Existing or Custom Character, Building or other game object.

进行查看,不过这相对麻烦一些,但对于经常使用 VS 的人来说挺方便。这个工具还支持在原 sc 文件中替换图片和添加图片,还支持合并 sc,简直棒极了!

 

问:为什么将别的 sc 的 fla 文件原封不动再次放入游戏里,游戏角色变慢?尤其是奔跑动漫特别慢,和角色移速不同步?

答:在兵种 csv 里有一个属性为:WalkingSpeedTweakPercentage(行走速度调整百分比) 的家伙,它可有正负值,越快是值越大

 

问:我不想这么麻烦,只想将一个普通的哥布林角色颜色变一下,仅此而已,我还需要上述那么多的麻烦吗?

答:如果只是更改一个角色的全部动画颜色的话,需要 xcoder,不过 xcoder 电脑版本,新版本在解压 sc 文件时会出现颜色丢失,所以需要老版本 xcoder,包括某些,就比如我的皇室战争的 loading 加载页的 sc,也需要老版本解压提取。

链接:https://1814343980.share.123pan.cn/123pan/OlZbVv-nvi83

然后下载手机 pydroid 最新版,推荐谷歌商店直接下载,下载好 xcoder 后解压,然后去运行 xcoder 的 main.py,选择英文语言即可,如果提示你很多环境你都没有,你直接问豆包,豆包会告诉你填写对应的代码,安装环境

然后将你需要解压的 sc 文件 (sc 本体和_tex.sc) 放进去对应的解压文件夹,最后将你改好的 png 转为 sc 时,更改文件名为 xxx_tex 即可,文件夹名字也是如此。可参考皇室奇兵中的太极法师

标题:Supercell 游戏动画文件拆解与制作
链接:https://blog.30hb.cn/607/
作者:Baie--0v0
暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇