前置き
UIを作れて、
アニメーションも作れて、
Mac , Winどっちでも実行可能で、
iOSもAndroidも対応出来るcocos2d-xの良さを活かして、
コマンドラインやプログラム分からない人でも実行出来るようにしたいと思ってGUI作って、
割とスタンダードなAdobe Flashで出来れば外注だって行ける…と思って…。
(正直この辺詳しくないですけど)
そんな感じでなんとなーく作っていた
Flashからcocos2d-xに変換するツールをgithubに公開しました。
詳しくはgithubをご確認ください。まだちゃんとまとまっていないんですが。
これを作っていた時に感じた事でも投稿しようかと思います。
はじめてのFlash
業務上Flashを触ることはあっても、
自分でアニメーション作ったり、レイアウト作ったりすることはありませんでした。
なので、まずFlashをなんとなーく習得する所から初めました。
Flashオブジェクトについて
Flashオブジェクトとか勝手に言ってますが、Flashでは"シンボル"と呼ばれるものですね。
・グラフィック
・ムービークリップ
・ビットマップ(画像)
・その他(テキストなど)
にざっと分けられるようです。
アニメーション作ったのに上手く動かないんだけど?
画像を適当に配置して、透過したい!ってだけなのにプロパティにアルファが無い…。
回転するアニメーション作ったのに付いてこない…。
という現象に困りましたが、どうやらFlashは画像を取り込んだ後、一旦グラフィックシンボルか、ムービークリップシンボルに変換してあげないと
透過プロパティが無かったり、アニメーションが思ったように動いてくれませんでした。
xflについて
このツールでは、Flashのxflファイルからcocos2d-xに変換をかけています。
xflファイルという名前は耳慣れないですが、非圧縮型flashファイルの拡張子です。
これで保存すると、Flashファイルに作成した各種情報が
全て読み取れるようになります。
変換するにあたって、注意した事
Flashは絶対値管理
Flashは1フレーム毎の情報を絶対値で管理しています。
そのため、無駄な計算を省いて高速かつ低負荷のアニメーションを実現しているようです。
が、実際のゲームではそこで作ったものをプレイヤーが操作したり、
状況によって表示を切り替えたりすることが必要だと判断して、相対値に変換しています。
FlashのMatrixについて
Flashでは、"拡大・縮小・変形・回転"をMatrixで管理しています。
これをcocos2d-xで使えるように、回転率やスケール値に変換する必要があります。
Flashの座標
Flashの座標の原点は左上が(0,0)になります。
cocos2d-xは左下が(0,0)になるため、変換をします。
(cocos2d-xの原点自体を変える事も可能ですが、他に影響大なので、やりません)
cocos2d-x側の話は?
v2.x系とv3.x系で大分違うので
その切り分けがとにかく面倒くさいってところでしょうか。
Animationを切り分けて出力しているのは、
・画像だけ差し替えて同じアニメーションを使いまわせるように
・movieclipのようにNode化して、大量に配置することが出来るように
など。
まだまだ開発中
Flashは高機能なので、出来る事が本当に多いです。
その内の5%にも満たない部分だけしかこのツールでは使うことが出来ていないのですが、
時間を見つけては機能をpushしていきます。