Download - 20110224 flamixer
![Page 1: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/1.jpg)
超高速超高速 FlashFla sh 合成エンジン合成エンジンFlamixerFlamixer
KLabKLab 株式会社株式会社 稲田 直哉 稲田 直哉
![Page 2: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/2.jpg)
自己紹介、のような・・・
稲田 直哉 (@methane)KLab Inc.
Python系で活動エキスパート Pythonプログラミング標準ドキュメント翻訳プロジェクトMessagePack for PythonTortoiseBZR
swfmill の Flash Lite 1.1 対応
![Page 3: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/3.jpg)
それはとっても難しいなって
![Page 4: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/4.jpg)
(ガラケーの )Flash Lite 1.1
100KB制限Flashからダウンロードしたデータも含める通信制限キーのイベントハンドラでしか、loadVariables, loadMovie できない
しかも上下キーは on(KeyPress) じゃないので通信できない
![Page 5: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/5.jpg)
ソーシャルゲームでの Flash
トイボットファイターズ、戦国バスターシナリオ、バトルログ私が店長アパレルショップ店のレイアウトアイテム、アバターアイテム恋して彼氏セリフ、ボイス
これらの演出には Flashの動的生成が必須
![Page 6: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/6.jpg)
SWFの動的生成
swfmillswfに対する知識が必要遅い
ming直接全体をデザインできない
![Page 7: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/7.jpg)
もうSWF合成も怖くない
![Page 8: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/8.jpg)
Flamixerの機能
ダイナミックテキストのテキスト置換スクリプト変数埋め込み画像置換ムービークリップ置換
![Page 9: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/9.jpg)
設定ファイル
どのテキストを書き換える?変数名で指定どの画像を置き換える?ベタ塗りダミー画像の色で指定どのムービークリップを置き換える?インスタンス名で指定
![Page 10: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/10.jpg)
設定例
symbol_targets: # ムービークリップ指定- target1 # インスタンス名- target2
text_targets: # ダイナミックテキスト指定- varname1 # 変数名- varname2
image_targets: # 画像指定“FF00FF”: “IMG_BG” # ベタ塗り色と名前"00FFFF": "IMG_CHARA"
![Page 11: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/11.jpg)
コード例$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);
![Page 12: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/12.jpg)
画像合成もムービーもあるんだよ
![Page 13: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/13.jpg)
KGD&Flamixer
KGD = GDの魔改造版高速読み込み高速アルファブレンディング高速リサイズ独自フィルタFlamixer連携
Flash内部フォーマットに直接変換
![Page 14: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/14.jpg)
ムービークリップ合成
合成用の素材は別 SWFとして用意同じ素材を複数箇所に合成しても、容量は 1つ分
![Page 15: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/15.jpg)
負荷なんてあるわけない
![Page 16: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/16.jpg)
ベンチマーク
http://www.klab.jp/dsas_host/fla_effect.html
![Page 17: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/17.jpg)
概算
1コアあたり 200合成 /sec4コアサーバーなら 800合成 /sec
SWF合成時間< HTML生成時間SWF合成時間< Smartyの require時間
専用サーバーも、キャッシュも、いらないんだよ
![Page 18: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/18.jpg)
こんなの絶対おかしいよ
![Page 19: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/19.jpg)
Flamixerの仕組み
設定ファイルで合成対象を指定する⇒合成対象じゃない部分が判る
先に合成に適したフォーマットに下ごしらえ⇒合成はほとんど連結処理
![Page 20: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/20.jpg)
テンプレートファイル
解析も合成も
しないんだよ
swfの内部構造 テンプレート (msgpack)
![Page 21: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/21.jpg)
画像合成処理
JPEG画像普通の JPEGのデータ部分を切り出し、 EOI, SOI を頭につけるだけロスレス画像
PNGともGIFとも違う独自形式zlib圧縮だけでも 240x240pxで 3msくらい
![Page 22: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/22.jpg)
ムービー合成
テンプレート
パーツ
![Page 23: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/23.jpg)
実装
事前処理C++ & Pythonコマンドラインツール実行時処理
C++ & PHPC++の関数を呼び出すだけなので、簡単に多言語対応可能
![Page 24: 20110224 flamixer](https://reader033.vdocuments.net/reader033/viewer/2022051112/55a4e4fd1a28ab31748b46c4/html5/thumbnails/24.jpg)
僕と契約して!DSAS for Social
単体提供(レベニューシェア or 固定費)
問い合わせ https://www.klab.jp/qa/dsas_host/index.html