Flash変換ライブラリ「Lightning」を公開しました
Posted on 2012-03-01 by yamauchi芸者東京の山内です。
弊社にて開発したPythonベースFlash変換ライブラリ「Lightning」をオープンソースで公開しました。
lightning (github)
ライセンスはThe MIT Licenseです。
このライブラリは弊社アプリ「おみせやさん」のiPhone版で店やアバターを表現するのに使っています。
Flashで作成したswfファイルを、LightningによってiPhone用のWeb素材に変換します。
Lightningのすごい所
1. 高い再現率
SVGによるベクターグラフィックスと、CSS3-keyframeAnimationを組み合わせて利用し、再現率の高いアニメーションを実現しています。
swfとほぼ同等の見た目が再現できます。
2. 滑らかなアニメーション
例えば弊社アプリ「おみせやさん」の素材の内部パーツ点数は80-140程度でとても多く、既存のswf変換ライブラリはコマ落ちが発生してしまうのですが、LightningですとiPhone3GSの性能でも十分な速度でアニメーションを再生できます。
「おみせやさん」の10000種類ほどある素材に関してはアニメーション速度が遅れたり、コマ落ちしたりという現象は発生していません。
3. 高速な動作
iPhoneではcanvasを使った描画の場合、CPUの速度の関係で最新の機種でも15fps程度が限界となってしまいます。
しかし、Lightningによって生成されたアニメーションはGPUを使うように調整されているため、24fpsやそれ以上の滑らかなアニメーション表示が可能になります。
また、iPhoneへのデータは静的なSVG, CSSとして渡されているため、ほかのjavascriptを中心としたライブラリと違い、データ取得完了から描画開始までの待ち時間がありません。
Lightningの使い方
LightningはLinux環境での動作を想定しています。
Python>=2.5,<3.0がすでにインストールされているものとします。
以下の手順にしたがってリポジトリに入っているサンプルファイルを変換してみましょう。
1. lightningのダウンロード
githubからcloneします。
git clone git://github.com/geishatokyo-lightning/lightning.git
2. lightningのインストール
cd lightning && python setup.py install
3. サンプル実行
cd lightning_core/sample && python xml2html.py sample1.xml sample1.html
同梱してあるサンプルファイルを変換します。sample1.html が生成されます。
iPhoneをターゲットとしているため、SafariまたはChromeでご確認ください。
Demo
SWFとlightningを並べてみました。
SafariかChromeで見てください。
Firefoxでは下記のサンプルが正常に表示されないようです。
SWF
Lightning
使用上の注意
Lightningでは、swfmillによってswf素材をxmlに変換する必要があります。
http://swfmill.org/ から swfmill をダウンロードしてインストールしましょう。(Linuxだけでなく、WindowsやMacにも対応しています。)
以下のコマンドでswfをswfmillでxmlに変換できます。
swfmill swf2xml sample.swf sample.xml