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` 中的任何内容之前,值得一读。
标签:安全规则引擎, 文档结构分析, 逆向工具