0.0.2 • Published 3 years ago
fgui-restore v0.0.2
写在前面
本工程仅作学习研究使用,本意用于工程项目不幸破损,通过发布出来的资源文件进行紧急还原,请勿用于资源破解侵权等行为,否则后果自负!!
下载
git clone git@github.com:krapnikkk/fgui-restore.git
安装
npm install
使用方法
node restore inputFile outputFile
参考
node restore ./test/MainMenu.bin ./output
支持版本 && 还原说明
数据版本 向下兼容 : buffer.version: 5
编辑器版本:FairyGUI Editor: 2020.3.3
【已测试官方DEMO工程99%高度还原,还原出来的包资源文件推荐使用最新版编辑器打开】
还原程度
- 将合并的纹理图片还原成碎图【统一png格式】
- 将碎图和package.xml关联绑定
- 将组件xml和package.xml关联绑定
- 将动画Movieclip还原成jta文件【动画设置以帧频:24为基准进行还原】
将位图字体文件还原成fnt文件【二进制格式资源包统一还原成UIBuilder默认格式】
无法还原项
- 骨骼动画资源还原
- 项目设置中的默认设置项
- 不被打包合并的资源或者不支持的资源【比如:swf,仅单纯放置到包内】
- 设计辅助功能配置【比如:组件组件设计图、元件保持比例和背景颜色装载器发布时清除等】
- 普通组元件无法还原
- 部分数值由于浮点数精度问题会有一位小数上的偏差
资源文件内容一览
- package.xml
- sprites.bytes
- .xml
- .fnt
- .jta
xml解析流程
- 解析发布出来的资源文件
- 根据文件格式版本分布解析二进制和压缩描述文件
- 将发布的资源文件解析还原为xml
- 【image】图片资源根据id还原name 和 文件路径 packageDescription.resources0.image
- 【movieclip】packageDescription.resources0.movieclip
- 【sound】packageDescription.resources0.sound
文件解析流程
- createObject 【UIPackage】
- constructFromResource【 GComponent | GImage | GMovieClip 】
- controller.setup【controller】
- setup_beforeAdd 【component-child-GObject】
- relations.setup【relations】
- setup_afterAdd 【component-child-GObject】
- gear.setup 【GObject】
- trans.setupp 【transion】
- constructExtension 【extension】
todo list maybe
- 【组件】组件自定义属性还原
- 【组件】组件出入场音效还原
- 【组件】属性控制中对原始属性的判断进行还原
- 【标签】标签中的标题为输入文本相关属性还原
- branch分支相关逻辑处理
- fnt文件初始化完善
- 校验需要还原文件的合法性&合理性及异常处理
- 浮点数数值精准还原
- 属性默认值及属性顺序精准还原
- BMFont字体文件还原
- and more
License
MIT