20110224 flamixer

Post on 14-Jul-2015

1.158 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

超高速超高速 FlashFla sh 合成エンジン合成エンジンFlamixerFlamixer

KLabKLab 株式会社株式会社 稲田 直哉 稲田 直哉

自己紹介、のような・・・

稲田 直哉 (@methane)KLab Inc.

Python系で活動エキスパート Pythonプログラミング標準ドキュメント翻訳プロジェクトMessagePack for PythonTortoiseBZR

swfmill の Flash Lite 1.1 対応

それはとっても難しいなって

(ガラケーの )Flash Lite 1.1

100KB制限Flashからダウンロードしたデータも含める通信制限キーのイベントハンドラでしか、loadVariables, loadMovie できない

しかも上下キーは on(KeyPress) じゃないので通信できない

ソーシャルゲームでの Flash

トイボットファイターズ、戦国バスターシナリオ、バトルログ私が店長アパレルショップ店のレイアウトアイテム、アバターアイテム恋して彼氏セリフ、ボイス

これらの演出には Flashの動的生成が必須

SWFの動的生成

swfmillswfに対する知識が必要遅い

ming直接全体をデザインできない

もうSWF合成も怖くない

Flamixerの機能

ダイナミックテキストのテキスト置換スクリプト変数埋め込み画像置換ムービークリップ置換

設定ファイル

どのテキストを書き換える?変数名で指定どの画像を置き換える?ベタ塗りダミー画像の色で指定どのムービークリップを置き換える?インスタンス名で指定

設定例

symbol_targets: # ムービークリップ指定- target1 # インスタンス名- target2

text_targets: # ダイナミックテキスト指定- varname1 # 変数名- varname2

image_targets: # 画像指定“FF00FF”: “IMG_BG” # ベタ塗り色と名前"00FFFF": "IMG_CHARA"

コード例$texts[‘varname1’] = ‘ ’夢も希望も ;$texts[‘varname2’] = ‘ ’ありゃしない ;$imgs[‘IMG_BG’] = file_get_contents($bg);$imgs[‘IMG_CHARA’] = file_get_contents($char);

header('Content-Type: application/x-shockwave-flash');

echo flamixer(file_get_contents($templ),$texts, $imgs);

画像合成もムービーもあるんだよ

KGD&Flamixer

KGD = GDの魔改造版高速読み込み高速アルファブレンディング高速リサイズ独自フィルタFlamixer連携

Flash内部フォーマットに直接変換

ムービークリップ合成

合成用の素材は別 SWFとして用意同じ素材を複数箇所に合成しても、容量は 1つ分

負荷なんてあるわけない

ベンチマーク

http://www.klab.jp/dsas_host/fla_effect.html

概算

1コアあたり 200合成 /sec4コアサーバーなら 800合成 /sec

SWF合成時間< HTML生成時間SWF合成時間< Smartyの require時間

専用サーバーも、キャッシュも、いらないんだよ

こんなの絶対おかしいよ

Flamixerの仕組み

設定ファイルで合成対象を指定する⇒合成対象じゃない部分が判る

先に合成に適したフォーマットに下ごしらえ⇒合成はほとんど連結処理

テンプレートファイル

解析も合成も

しないんだよ

swfの内部構造 テンプレート (msgpack)

画像合成処理

JPEG画像普通の JPEGのデータ部分を切り出し、 EOI, SOI を頭につけるだけロスレス画像

PNGともGIFとも違う独自形式zlib圧縮だけでも 240x240pxで 3msくらい

ムービー合成

テンプレート

パーツ

実装

事前処理C++ & Pythonコマンドラインツール実行時処理

C++ & PHPC++の関数を呼び出すだけなので、簡単に多言語対応可能

僕と契約して!DSAS for Social

単体提供(レベニューシェア or 固定費)

問い合わせ https://www.klab.jp/qa/dsas_host/index.html

top related