Your SlideShare is downloading. ×
20110224 flamixer
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

20110224 flamixer

1,124

Published on

Flamixerの紹介

Flamixerの紹介

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,124
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×