marbou92/FFX-Compatibility-Tool
GitHub: marbou92/FFX-Compatibility-Tool
一款用于将 Adobe After Effects 的 .ffx 预设文件降级到旧版 AE 并检测插件依赖的命令行兼容性工具。
Stars: 0 | Forks: 0
# FFX 兼容性工具
用于检查、编辑和降级 Adobe After Effects 的 `.ffx` 预设文件,使其
能够在旧版 AE(目前支持:CS5.5)上运行,并内置了插件依赖
检查器。
请参阅 **`PHASES.md`** 了解构建路线图,并参阅 **`PROJECT_PLAN.md`** 了解
完整规范。此仓库目前包含 **第 1 阶段**(核心 RIFX
解析器/序列化器)和 **第 2 阶段**(转换流水线 + CLI)——
尚无 GUI。
## 快速开始
```
pip install -r requirements.txt -r requirements-dev.txt
# 列出 preset 中的 effects/plugins:
python cli.py list path/to/preset.ffx
# 将 preset 转换为 CS5.5:
python cli.py convert path/to/preset.ffx out.ffx --target cs5.5
# 转换并剥离未安装的 effect:
python cli.py convert in.ffx out.ffx --target cs5.5 --remove "MB LookSuite3"
```
## 运行测试
```
pytest -v
```
默认情况下,往返测试和流水线测试会针对合成文件运行,以便 CI
无需任何设置即可通过。将真实的 `.ffx` 示例文件放入
`tests/fixtures/` 中,以便针对真实预设对整个流水线
进行全面测试(参见 `tests/fixtures/.gitkeep`)。
## 项目状态
- ✅ 第 1 阶段 — RIFX 解析器/序列化器(无损往返,已测试)
- ✅ 第 2 阶段 — 转换流水线 + CLI(版本补丁、字符串格式
转换、效果移除、验证过程)
- ⬜ 第 3 阶段 — PySide6 GUI
- ⬜ 第 4 阶段 — 插件所有权配置系统
- ⬜ 第 5 阶段 — 通过 GitHub Actions 发布打包版本(Windows/macOS)
## 存在原因 / 探索过程
`.ffx` 二进制格式目前没有官方规范。此工具执行的
所有操作都是基于真实样本文件进行逆向工程得出的 —— 请参阅
`RESEARCH_NOTES.md` 查看完整的推导过程,包括针对几个
非显而易见 bug 的调试过程(一个导致 AE 崩溃的版本补丁,
以及一个由于将定宽字段视为变长而导致的“名称显示为 Utf1/Utf2”的 bug)。在修改
`ffx_core/pipeline.py` 中的任何内容之前,值得一读。
标签:安全规则引擎, 文档结构分析, 逆向工具