flash 转化 html5 和 cocos2dx 的实践

flash 到html5格式转化的工具, 可以转化flash 为html5页面或者是coco2dx效果.

https://github.com/hurry07/flash

游戏开发中大量的使用动画效果, 随着手机游戏的发展, 对动画效果的需求更是变得无以复加, 又或者你理解手机游戏就是一堆炫目的动画效果和一点点游戏逻辑的组合. 动画效果在整个游戏的开发中占用了太多的资源. 我仔细的分析发现了问题的关键: 动画效果多由美术设计, 但需要软件工程师在游戏中使用编码的方式再现, 对于简单的线性移动和变化等, 问题不大, 但是对于复杂动画效果, 甚至是不规则的动画效果, 例如人物, 工具效果等, 手工转化就是噩梦一样的存在.

实现上的阻碍进而导致游戏质量的下滑, 如果使用了程序无法描述的动画效果, 那不如使用简单的动画效果, 甚至使用序列帧来达到同样的目的. 这都不是我想要的.

如果放开实现的难题, 放眼动画效果的制作软件, flash cs系列软件算是一个不错的选择,
1 所有美术对adobe系列工具对有丰富的使用经验. 学习成本几乎没有
2 使用了层, 组件等等设计要素, 结构相对箱单, 提供了丰富的 JSFL API, 使他可以被转化成其他格式动画.

于是我萌生了flash转化为手机动画的想法, 它应该能买足下面的几个需求
1 对于动作动画可以无阻碍的导入.
2 可以同动画中的层或者组件进行交互, 例如替换图片, 设定触发事件等
3 能够批量处理.

经过简单搜索, 发现了几个项目.
google自己推出的
www.google.com/doubleclick/studio/swiffy/‎
另外还有 adobe公司自己推出的
http://www.adobe.com/cn/products/flash/flash-to-html5.html

以上两个工具都是 flash 转化为 html 神一样的大作, 但对于手机开发来说他们都不适用, swiffy 基于svg, 理念很好, 但可惜现在还未开源, 面对乱码一般的数据文件, 如何同动画对象交互是一个很大的问题. adobe 公司自己的解决方法又太偏重于 html5 平台, 即便在 html5 上它也采用基于canvas的呈现方式, 可能canvas提供的丰富2d api 让迁移工作的难度指数性的下降, 从而放弃尝试google基于svg的更富有拓展性的解决方案. 基于canvas, 将导致很难同canvas内部的对象发生交互, 也很难做2次编辑.

另外有刚开源的
http://www.cocoachina.com/gamedev/gameengine/2012/0910/4727.html
开源是这个项目最大的优点. 这个项目完成了我上面对flash工具的需求, 但我对它的实现方式并不满意
1 它太多的借用标签来完成 flash 同外部环境交互的功能, 例如替换一个组件我就需要预先增加一个可能被替换的一个层, 但它的状态是隐藏的, 这本是是对标签的一种误用.
2 它的图像化编辑界面看似是对动画导入的一种辅助, 其实上我理解这是一种折磨. 这个工具把很多事情集中在一起完成, 让用户没有办法提供自己插件来替换部分默认的功能.
总的来说我觉得它能使用, 但是不够简单, 或者说你强大的让我很不喜欢; 你在强迫我按照你的方式去思考.

这让我有了开发一个简单直接的flash动画导入工具的冲动. 并且我也已经完成了原型工程.

目前我的 flash 导出工具没有任何二次编辑的界面, 导出文件的格式同 flash 内部的组织方式几乎一样. 我只是单纯的反应出美术设计人员对此动画效果的理解, 我认为所有二次编辑都应该基于 flash 动画本身, 而不是一个被抽象过的动画描述文件.

目前项目还没有完成, 我期望他将来能够:
1 提供类似 html selector 类似素选择方式, 同flash动画内部元素发生交互.
2 能够支持 flash 原生的 button 对象.
3 希望能提供对 font 和 shape 的支持, 从而实现使用 flash 来编辑 UI
4 保持友好的接口, 希望可以出现非 flash 的编辑工具, 支持更丰富的用户自定义组件(tabview, input dialog)

最后, 我想通过 开源结合商业授权和收费服务的方式来维持项目的发展.

你可能感兴趣的:(游戏,html5,Flash,cocos2d-x)