SWF2PNGSequence


SWFからPNGシーケンスを作成するAIRアプリ「SWF2PNGSequence」を作りました!
これでSWF(Flash)からきれいな動画を書き出すことが可能になります。

まえがき

このプログラムは以前書いた記事(NGTV – FlashからPNGシーケンス書きだすASを書きました 〜もうMCも怖くない〜 hushexport.PNGSequence)の応用です。

このプログラムではFlaファイルがなくともSWFファイルから簡単にPNGシーケンスを作成することができます。できたPNGシーケンスから動画への変換は、AviUtlなりPremiereなりAfterEffectsなりをお使いください。

2013/12/15追記:無料化しました。
2012/03/29追記:変換速度が2倍以上になりました
2012/07/23追記:フィルタ関係の不具合を修正しました
2012/02/24:公開

 機能・メリット

  • コマ落ちせずPNG画像を連番で書き出せる
  • ASやMC、フィルターの結果が反映される
  • オプションでキャプチャサイズの変更・書き出すフレームの指定・透過png作成 が可能

ダウンロード

こちらから無料でダウンロードできます。

気に入った方はこちらからカンパ($20)いただけると喜びます。

AIRアプリですので、インストール・実行にはAIRのランタイムが必要となります。

使い方

基本的な使い方は至って簡単で、ファイルを選択して変換ボタンを押すだけです。
複数のファイルの選択が可能です。これで寝てる間でも勝手に変換してくれます。

オプション

オプションボタンをクリックすると、
オプションウィンドウが表示されます。ここから様々な設定ができます。

出力先

出力フォルダ・ファイル名を指定します。
指定したフォルダの中に新しいフォルダを作成し、その中にPNGシーケンスを書き出します。
※同じ名前のフォルダがある場合は連番が自動的に追加されます。
(例:hoge.swfを書きだしたとき …1回目:hoge_pngs フォルダ作成 , 2回目:hoge_pngs_1 フォルダ作成)

サイズ

キャプチャサイズ・アスペクト比・黒ベタの追加などが選べます。

サイズ指定も豊富に用意しました。

フレーム範囲・背景色

フレーム範囲の設定では書き出すタイムラインのフレームが設定できます。
範囲指定ではEndを消してStartのみ指定すると開始フレームのみの指定ができます。

背景色ではPNG画像の背景色を設定できます。透明にすると透過PNGの作成ができるので、素材作成するときに重宝するかもです。

注意

本アプリにより生じた損害につきましては、いかなる責任も負いませんのでご了承ください。

謝辞

@ic_yas さん、 @yama_ko さん、 アドバイス等ありがとうございました!

連絡

改善点・バグ報告などがありましたら、 Twitter @hush_in までよろしくお願いします!

既存の問題点

ここからちょっとActionScriptわかる人向けになります。

  • AVM1Movie (AS2.0以前のSWF)の最後2フレームが書き出しできないものがある
  • ActionScript を使用しているSWFによっては書き出せないものがある
    • 基本的にMovieClip(タイムラインで作成したSWF)なら変換可能
    • タイムライン情報のないSpriteがメインのSWFは書き出せない
    • stage にアクセスしようとするASはAIRのサンドボックス違反により実行できず、書き出せない

Flashの塗りの縁取りを一発で行うJSFL


flash-draw-line-2

Flashの塗りの周りに線で縁取りたいときがあると思いますが、
インクボトルツールで何回もクリックする手間を解消してくれるJSFLを書きました。


↑の [view raw] を右クリックで保存できます。

使い方

塗りを選択して実行すると縁取ります。

JSFLはダブルクリックで実行できます。もしくは以下公式ヘルプを参照ください。
Adobe Flash Professional * JavaScript API の操作

備忘録:Flash の キーボードショートカットの設定ファイルを共有


以下のパスの中にある mfx ファイルを他のPCへコピーすると使える

Windows XP: Hard Disk\Documents and Settings\user\Local Settings\Application Data\Adobe\Flash CS5.5\language\Configuration\Keyboard Shortcuts

Windows Vista: Hard Disk\Users\user\Local Settings\Application Data\Adobe\Flash CS5.5\language\Configuration\Keyboard Shortcuts

Macintosh: Hard Disk/Users/user/Library/Application Support/Adobe/Flash CS5.5/language/Configuration/Keyboard Shortcuts

Adobeさん、こういう情報はヘルプに書いて欲しい。

JSFLのベンチマークをとってみる


JSFLのパフォーマンスを向上させる記事があったので、自分でも試してみました。

参考:Salsa de Pixeles: Improving JSFL performance

こういう関数を作って実行してみる。xJSFLにTimer が用意されていて便利。

結果は以下のようになります。単純な計算なのであまり変わりませんね。 

Task "benchmark test" took 126 milliseconds
Task "benchmark test2" took 156 milliseconds

 

キーフレームの作成方法による違い

空のキーフレームを100個作るときの時間を計測しています。

結果は以下のようになります。
convertToKeyframesで一括で作る場合とinsertKeyframeで1フレームずつ作る場合を比較しましたが、
前者の方が後者より約45倍早くなっています。

Task "convert keyframes" took 565 milliseconds
Task "insert keyframes" took 25.0 seconds

当たり前といえば当たり前のような結果ですが、JSFL書くときは気をつけたいです。

JSFL で Underscore.js を使うテスト


JSFL の fl.runScript を使って汎用的な JS のライブラリ Underscore.js が使えるか試してみたらできたのでメモ。

ファイルの構造(xJSFLでファイルのURIを指定しているのでこんな感じ)

jsfl_underscore_file-2

※注意:underscore-min.js (圧縮されたJS)を読み込んだところ、特定のメソッドで Flash が強制終了しました…。圧縮されてない underscore.js を使うと落ちませんでした…不思議。

結果

underscore_result

使い道

あまり思い浮かびませんが、生のJS書くよりはマシなのでモチベーションがあがりますね。
他にも汎用的なJSのライブラリを読み込んだりしたらさらに便利になりそう。

タイムライン派のFlash勉強会企画してます #FLASH_OFF


Flash(Flash IDE、アニメーション、タイムライン派)に特化した内容のスライド発表型の勉強会を考えています!
今年中に開催できたらいいなー。

Flashオフ企画中です! #FLASH_OFF
@FLA_OFF
Flashオフ

詳しくはTwitterか下記のサイトをご覧ください。

Flashでラスタ画像をカクカクさせない方法


Flashでラスタ画像を扱うとき、拡大縮小・回転するとカクカクして表示が汚いですが、回避する方法を(今更ながら)知ったのでメモ。
一括で設定する方法も後述します。

手順

ライブラリからビットマッププロパティを開き、スムージングにチェックを入れる。

結果

一括指定方法

xJSFL をインストールしていると、スニペットパネルが使えるようになり、その中のSmooth bitmaps を実行すると、ライブラリにある画像すべてスムージングが有効になる。便利!