Flash
-
SWF2PNGSequence の ソースコードを公開しました
Flash, Program ·SWF2PNGSequence の ソースコードを公開しました。ライセンスは MITです。
https://github.com/hushin/SWF2PNGSequence
理由など
- PCのファイル整理していて、ソースコードはgitで管理したくなった
- 自分が作ったものをgithub に公開しておきたかった
- 世界の何処かで機能追加したいひとがいるかもしれない
アプリを公開したのが 2012年2月なので、作っていた時期を考えるともう7年前のコードですね。
ActionScript, Flexの書き方も忘れてしまいました。 (OSS化にあたり Flash Builder でのビルド設定やライブラリパスを通すに一苦労しました…)
自分ではもうメンテナンスする予定もないので、興味ある方はforkして触ってもらえたらと思います。
-
SWF2PNGSequenceを無料化します
Flash, Program ·先日のFlash オフで発表したように、 SWF2PNGSequenceを有料($20)で販売していましたが、無料化します。
SWF2PNGSequenceの説明、ダウンロードはこちらに書いています。 是非使ってみてください!
-
Flashの塗りの縁取りを一発で行うJSFL
Flash, JSFL ·Flashの塗りの周りに線で縁取りたいときがあると思いますが、 インクボトルツールで何回もクリックする手間を解消してくれるJSFLを書きました。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters// // draw_stroke.jsfl // // http://flatv.fdempa.com/ // Copyright (c) 2013 FLATV / @hush_in / flatv@fdempa.com // Licensed under the MIT License var dom = fl.getDocumentDOM(); dom.selection; var stroke = dom.getCustomStroke("toolbar"); dom.setStroke(stroke.color || "#000000", stroke.thickness || 1, stroke.style || "solid"); ↑の [view raw] を右クリックで保存できます。
使い方
塗りを選択して実行すると縁取ります。
JSFLはダブルクリックで実行できます。もしくは以下公式ヘルプを参照ください。 Adobe Flash Professional * JavaScript API の操作
-
Flashオフ開催します
Event, Flash ·明日開催です!主催します!
-
備忘録:Flash の キーボードショートカットの設定ファイルを共有
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のベンチマークをとってみる
Flash, JSFL ·JSFLのパフォーマンスを向上させる記事があったので、自分でも試してみました。
参考:Salsa de Pixeles: Improving JSFL performance
こういう関数を作って実行してみる。xJSFLにTimer が用意されていて便利。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersxjsfl.init(this); // init xJSFL ;(function(){ function scriptFolderURI() { return fl.scriptURI.replace(/[¥/][^¥/]*?$/,"/"); } // use Lo-Dash fl.runScript(scriptFolderURI() + "jsload/lib/lodash.compat.js"); })(); function benchmark(name, times, callback){ var timer = new Timer(name); timer.start(); for (var i=0; i < times; i++){ callback(); } timer.stop(true); } clear(); benchmark("benchmark test", 1000,function(){ // task _.reduce(_.range(100), function (sum, num) {return sum + num;}); }); benchmark("benchmark test2", 1000,function(){ // task _.map(_.range(100), function (item) {return item * item * item;}); }); 結果は以下のようになります。単純な計算なのであまり変わりませんね。
Task "benchmark test" took 126 milliseconds Task "benchmark test2" took 156 milliseconds
キーフレームの作成方法による違い
空のキーフレームを100個作るときの時間を計測しています。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersxjsfl.init(this); // init xJSFL ;(function(){ function scriptFolderURI() { return fl.scriptURI.replace(/[¥/][^¥/]*?$/,"/"); } // use Lo-Dash fl.runScript(scriptFolderURI() + "jsload/lib/lodash.compat.js"); })(); function benchmark(name, times, callback){ var timer = new Timer(name); timer.start(); for (var i=0; i < times; i++){ callback(); } timer.stop(true); } function deleteAllLayers() { function layerCallback(layer, index) { $timeline.deleteLayer(index) } Iterators.layers(Context.create(), layerCallback); } clear(); benchmark("convert keyframes", 10,function(){ // task $timeline.convertToKeyframes(0,100); deleteAllLayers(); }); benchmark("insert keyframes", 10,function(){ // task _.range(100).map(function(item){$timeline.insertKeyframe(item);}); deleteAllLayers(); }); 結果は以下のようになります。 convertToKeyframesで一括で作る場合とinsertKeyframeで1フレームずつ作る場合を比較しましたが、 前者の方が後者より約45倍早くなっています。
Task "convert keyframes" took 565 milliseconds Task "insert keyframes" took...
-
JSFL で Underscore.js を使うテスト
Flash, JSFL ·JSFL の fl.runScript を使って汎用的な JS のライブラリ Underscore.js が使えるか試してみたらできたのでメモ。
ファイルの構造(xJSFLでファイルのURIを指定しているのでこんな感じ)
※注意:underscore-min.js (圧縮されたJS)を読み込んだところ、特定のメソッドで Flash が強制終了しました…。圧縮されてない underscore.js を使うと落ちませんでした…不思議。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters//xjsfl.reload(); xjsfl.init(this); // using xJSFL clear(); fl.runScript(xjsfl.file.find('lib', 'underscore.js')); trace(_.map([1, 2, 3], function(num){ return num * 3; })); trace(_.some([null, 0, 'yes', false])); trace(_.invoke([[5, 1, 7], [3, 2, 1]], 'sort')); var evens = _.filter(_.range(1, 20), function(num){ return num % 2 == 0; }); trace(evens); var sum = _.reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0); trace(sum); var stooges = [{name : 'curly', age : 25}, {name : 'moe', age : 21}, {name : 'larry', age : 23}]; var youngest = _.chain(stooges) .sortBy(function(stooge){ return stooge.age; }) .map(function(stooge){ return stooge.name + ' is ' + stooge.age; }) .first() .value(); trace(youngest); 結果
使い道
あまり思い浮かびませんが、生のJS書くよりはマシなのでモチベーションがあがりますね。 他にも汎用的なJSのライブラリを読み込んだりしたらさらに便利になりそう。
-
Flashで2Dカメラを使うときはvCamがよさげ
Flash ·Flashで2Dカメラを使うとき、vCam というものが便利そうだったので備忘録として残します。
-
【紹介】SWF を動画に変換するフリーソフト「Swivel」がスゴい!
Flash ·Flash で動画制作をしている方にとっては夢のようなソフトを見つけたので紹介します!
SWF を動画に変換するフリーソフト「Swivel」 です。下記サイトで配布されています。 Newgrounds Wiki - Swivel
-
タイムライン派のFlash勉強会企画してます #FLASH_OFF
Event, Flash ·Flash(Flash IDE、アニメーション、タイムライン派)に特化した内容のスライド発表型の勉強会を考えています! 今年中に開催できたらいいなー。
詳しくはTwitterか下記のサイトをご覧ください。
-
四角がランダムに出現する.jsfl
Flash, JSFL ·xJSFL使って作業効率上げたい。日々書いていけたらいいな。 実行結果はこんな感じになります。
-
Flashでラスタ画像をカクカクさせない方法
Flash ·Flashでラスタ画像を扱うとき、拡大縮小・回転するとカクカクして表示が汚いですが、回避する方法を(今更ながら)知ったのでメモ。 一括で設定する方法も後述します。
手順
ライブラリからビットマッププロパティを開き、スムージングにチェックを入れる。
結果
一括指定方法
xJSFL をインストールしていると、スニペットパネルが使えるようになり、その中のSmooth bitmaps を実行すると、ライブラリにある画像すべてスムージングが有効になる。便利!
-
xJSFL はじめの一歩
Flash, JSFL ·xJSFLのベータ版が終わり1.xがリリースされましたね。めでたい!!
これを機にxJSFLをインストールして快適なJSFLライフを過ごしましょう(宣伝)
以下、備忘録とか宣伝とか。基本的には以前書いたエントリと同じですが。。。
-
SWF2PNGSequence のフィルタ関係の不具合を修正しました
Flash, Movie, Program ·お陰さまで SWF2PNGSequence が 20個ほど売れています。ありがとうございます!(ニッチなツールとしては多いのかな・・・?)
フィルタを使用したSWFの変換が で上手くできないという問い合わせを頂きましたので修正しました!
以前購入いただいた方へ:同じURLに修正したファイルをアップロードしていますので、ダウンロード・インストールをお願いします。 新規購入の方はこちら:SWF2PNGSequence
ついでに下記項目も修正しています。
- サイズ指定:ニコニコ動画の新プレイヤーの解像度864x486, 648x486 を追加
- ファイル名:日本語のファイルがエスケープされていたのでアンエスケープして表示するように修正
-
モーショントゥイーンを自動作成する.jsfl
Flash, JSFL ·モーショントゥイーンを自動作成する.jsflをとりあえず作ってみました。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersxjsfl.init(this); //init xJSFL const STAR_NAME = "star"; var dom = $dom; var lib = $dom.library; var tl = $timeline; var context = Context.create(); makeStar(); //星を作る lib.addItemToDocument({x:100 , y:100}, STAR_NAME); //ステージに配置 tl.createMotionTween(); //モーショントゥイーンを作成 tl.insertKeyframe(29); //30フレーム目にキーフレームを挿入 //30フレーム目のMCを変形させる $('*') .attr('position', [400,200]) .attr('scale', [1, 0.5]) .attr('rotation', 30) .refresh(); //星のMCを作る function makeStar(){ if( ! lib.itemExists(STAR_NAME)) { lib.addNewItem('movie clip', STAR_NAME); lib.editItem(STAR_NAME); makeStarPath(5, 20, 40); dom.selectAll(); dom.setFillColor('#99CC3366'); dom.setStroke('#003300AA', 0.5, 'solid') context.goto(); } } //星のパスを描画 function makeStarPath(sideNum, inside, outside){ var myPath = fl.drawingLayer.newPath(); var radius, radians; for (var i = 0; i <= sideNum * 2 ; i++) { radius = (i%2) ? inside : outside; radians = 360 * (i / sideNum / 2) * (Math.PI / 180) + (Math.PI * 1.5); // 星なので90度から描画開始 myPath.addPoint(Math.cos(radians) * radius, Math.sin(radians) * radius); //trace(Math.cos(radians) * radius, Math.sin(radians) * radius); } myPath.makeShape(); } xJSFL | Context (class) を使いたかったが、バグがかなりあるようなのでかなりはまりました。無難に公式のAPI叩いた方がいいかも。 2012/6/10 追記:$timeline が用意されているようなので、それを使いました。
実行するとこんな感じになります。
次にやりたいこと
- 任意のフレームをモーショントゥイーン
- イージング
- 複数レイヤーで同時に自動作成
- グラフィック(またはMC)を作ってその中にタイムライン作成
- パーティクルのようなもの
- タイポグラフィー
-
SWF2PNGSequence の変換速度が2倍以上になりました
Flash, Movie, Program ·前回のエントリで SWF2PNGSequence を公開してから1ヶ月が経ちました。 Gumroad でもまだぼちぼち売れているので嬉しい限りです。
SWF2PNGSequenceのPNGエンコーダーを見直したところ、 自分の環境では変換時間が半分以下となりましたのでバージョンアップしました。 同じ場所にアップロードしています。
使用したライブラリは以下のもの。感謝感謝。 BlooDHounD’s workspace - blooddy_crypto.swc library
-
SWFからPNGシーケンスを作成するAIRアプリ「SWF2PNGSequence」を作りました!
Flash, Movie, Program ·2013/12/15 このページは固定ページに移動しました。
-
WordPressにSWFを埋め込むプラグイン WP-SWFObject が更新されないので改良した
Flash, WordPress ·WP-SWFObjectは手軽にswfを埋め込むことができる便利なプラグインですが、 更新がないため不便な思いをしていたので改良しました。 (コミットなどはしないので完全に自分用ですが。 )
改良点は以下
- swf_versionを11に
- swf_wmodeにdirectを追加
- これを設定しないとStage3Dを使用したFlashが表示されない!
- param baseを追加(デフォルトを”.”に設定)
- 外部ファイルをswfからの相対パスにしたい(これを設定しないとWordPressの記事からの相対パスになってしまう)
-
“「強いられているんだ!」を顔認識でやってみた”をFlashに移植してみた
ActionScript, Flash ·ガンダムAGEの「強いられているんだ!(集中線)」を顔認識でやってみた ‐ ニコニコ動画(原宿) ↑の発想に感動したのでFlashに移植してみました。 ブラウザ上で手軽に強いられることができて便利です。
-
Away3Dで使えるフォーマット「AWD」をBlenderから書き出すテスト
3D, ActionScript, Blender, Flash ·BlenderとAway3Dでやりとりするフォーマットを模索中。。。 Away3Dで使えるフォーマット「AWD」をBlenderから書き出せたので備忘録として残します。 例によってMac環境での説明です。 AWDとは→ awd - Away3D Data file format - Google Project Hosting
-
Flash Builder + FlashPlayer 11 でStage3Dを使うときのメモ
ActionScript, Flash ·これでStage3D対応ライブラリが使えるようになるぞー。
-
MG作成のためのFlashの3Dライブラリの検討
3D, ActionScript, Flash ·FlashPlayer 11(Stage3D)でFlashの3Dが熱くなっている今、 あえてMG(MotionGraphics)作成のためのFlashの3Dライブラリの検討をします。 (こんなことやろうとしている人多分他に誰もいないだろうけど・・・)
Flash+ActionScriptで動画を作ります。 出力はswfじゃなくてもいいので、処理速度は気にしない。 いろいろ調べてみていいものが見つかったらブログを更新する予定。
求める条件
- ポリゴン欠けしないこと
- 一番重要!
- ベクターテキストでTypographyができること
- Away3DだとVectorTextというライブラリがあるみたい
- memo:papervision3d ベクターテキスト(Text3D)で任意のフォントを使用する | WEB-WORKMAN - WEBマスター目指して日々勉強!!
- 最悪ここは自分で実装できるかも?
- 3Dモデルが読み込めること
- 3Dアニメーションも再生できること
- ボーンアニメーション or メッシュアニメーションが再生できること
- Blenderを使う予定なのでColladaに対応してくれると嬉しい
- FlashPlayer 11(Stage3D)対応
- これはおまけでもいいや
- ポリゴン欠けしないこと
-
WordPressでFlash(swf)を再生させるためのメモ
Flash, WordPress ·WordPressでFlash(swf)を再生させるための設定しました。
※現在このブログはWordPressで動いてないので古い情報です。
WordPress
-
WordPressにSWFを埋め込むプラグイン WP-SWFObject が更新されないので改良した
Flash, WordPress ·WP-SWFObjectは手軽にswfを埋め込むことができる便利なプラグインですが、 更新がないため不便な思いをしていたので改良しました。 (コミットなどはしないので完全に自分用ですが。 )
改良点は以下
- swf_versionを11に
- swf_wmodeにdirectを追加
- これを設定しないとStage3Dを使用したFlashが表示されない!
- param baseを追加(デフォルトを”.”に設定)
- 外部ファイルをswfからの相対パスにしたい(これを設定しないとWordPressの記事からの相対パスになってしまう)
-
CoreserverでWordPressを設置する際のメモ
WordPress ·Flashと関係ないけど備忘録として残しておきます。
参考にしたサイト
CORESERVER(XREA)でWordPressを構築する手順 - Nakamori Report CoreserverにWordpressを設置する際に最初にすること - TatsuquitoWordPressの設置自体は30分足らずできたので感激。 MovableTypeの設置もしたことありましたが、MTは時間かかってカスタマイズも難しかった。
エラー対策
設置して1週間くらい放置したら324と返ってくるようになったので、 下記のサイトの対策通り.htaccess をいじって見たらとりあえず直った。 WordPressで画面真っ白や502エラーの原因は「eAccelerator」だった - Sometime PHP
テーマ
ma38su.org - wp.Vicuna ExtGoogle Analyticsの設定をして、アクセス解析コードをVicuna設定のところに入れる。 wp.vicuna.exc/style-vega/import.css にて tuika.cssが読まれているがそんなものはないのでコメントアウトしておく。
プラグイン
有効化
- Akismet
- WP Multibyte Patch
新規追加
- AddQuicktag
- All in One SEO Pack
- いろいろ設定する
- Amazon Reloaded ...
-
WordPressでFlash(swf)を再生させるためのメモ
Flash, WordPress ·WordPressでFlash(swf)を再生させるための設定しました。
※現在このブログはWordPressで動いてないので古い情報です。
3D
-
Away3Dで使えるフォーマット「AWD」をBlenderから書き出すテスト
3D, ActionScript, Blender, Flash ·BlenderとAway3Dでやりとりするフォーマットを模索中。。。 Away3Dで使えるフォーマット「AWD」をBlenderから書き出せたので備忘録として残します。 例によってMac環境での説明です。 AWDとは→ awd - Away3D Data file format - Google Project Hosting
-
MG作成のためのFlashの3Dライブラリの検討
3D, ActionScript, Flash ·FlashPlayer 11(Stage3D)でFlashの3Dが熱くなっている今、 あえてMG(MotionGraphics)作成のためのFlashの3Dライブラリの検討をします。 (こんなことやろうとしている人多分他に誰もいないだろうけど・・・)
Flash+ActionScriptで動画を作ります。 出力はswfじゃなくてもいいので、処理速度は気にしない。 いろいろ調べてみていいものが見つかったらブログを更新する予定。
求める条件
- ポリゴン欠けしないこと
- 一番重要!
- ベクターテキストでTypographyができること
- Away3DだとVectorTextというライブラリがあるみたい
- memo:papervision3d ベクターテキスト(Text3D)で任意のフォントを使用する | WEB-WORKMAN - WEBマスター目指して日々勉強!!
- 最悪ここは自分で実装できるかも?
- 3Dモデルが読み込めること
- 3Dアニメーションも再生できること
- ボーンアニメーション or メッシュアニメーションが再生できること
- Blenderを使う予定なのでColladaに対応してくれると嬉しい
- FlashPlayer 11(Stage3D)対応
- これはおまけでもいいや
- ポリゴン欠けしないこと
ActionScript
-
“「強いられているんだ!」を顔認識でやってみた”をFlashに移植してみた
ActionScript, Flash ·ガンダムAGEの「強いられているんだ!(集中線)」を顔認識でやってみた ‐ ニコニコ動画(原宿) ↑の発想に感動したのでFlashに移植してみました。 ブラウザ上で手軽に強いられることができて便利です。
-
Away3Dで使えるフォーマット「AWD」をBlenderから書き出すテスト
3D, ActionScript, Blender, Flash ·BlenderとAway3Dでやりとりするフォーマットを模索中。。。 Away3Dで使えるフォーマット「AWD」をBlenderから書き出せたので備忘録として残します。 例によってMac環境での説明です。 AWDとは→ awd - Away3D Data file format - Google Project Hosting
-
Flash Builder + FlashPlayer 11 でStage3Dを使うときのメモ
ActionScript, Flash ·これでStage3D対応ライブラリが使えるようになるぞー。
-
MG作成のためのFlashの3Dライブラリの検討
3D, ActionScript, Flash ·FlashPlayer 11(Stage3D)でFlashの3Dが熱くなっている今、 あえてMG(MotionGraphics)作成のためのFlashの3Dライブラリの検討をします。 (こんなことやろうとしている人多分他に誰もいないだろうけど・・・)
Flash+ActionScriptで動画を作ります。 出力はswfじゃなくてもいいので、処理速度は気にしない。 いろいろ調べてみていいものが見つかったらブログを更新する予定。
求める条件
- ポリゴン欠けしないこと
- 一番重要!
- ベクターテキストでTypographyができること
- Away3DだとVectorTextというライブラリがあるみたい
- memo:papervision3d ベクターテキスト(Text3D)で任意のフォントを使用する | WEB-WORKMAN - WEBマスター目指して日々勉強!!
- 最悪ここは自分で実装できるかも?
- 3Dモデルが読み込めること
- 3Dアニメーションも再生できること
- ボーンアニメーション or メッシュアニメーションが再生できること
- Blenderを使う予定なのでColladaに対応してくれると嬉しい
- FlashPlayer 11(Stage3D)対応
- これはおまけでもいいや
- ポリゴン欠けしないこと
Movie
-
逃避ケア MV 制作メモ【データモッシュ編】
Movie ·前編 逃避ケア MV 制作メモ【制作環境全般編】 の続きで、どうやってデータモッシュを作ったかのメモです。
どんなところで使ったか
シーンの切り替え
ランダムでノイズが乗り、複雑な色が出るところ
環境・ツール
基本的にはコードを書いていきます。
- OS: Mac
- 試してないですが、Windowsでも同様のことができると思います。
-
AviGlitch - A Ruby library to destroy your AVI files.
- avi のデータモッシュ を行うライブラリ
- Ruby...
- OS: Mac
-
逃避ケア MV 制作メモ【制作環境全般編】
Movie ·作品
【FRENZ 2017】逃避ケア【MV】 という映像を作り、 FRENZ 2017 に出展しました。 ニコニコ動画 にも上げています。
前置き
このブログ記事は4年前に書こうと思っていてPCに書き溜めていたのですが後回しになっていました。 PCを手放すので重い腰を上げて書きます。 (動画を見返すのは恥ずかしくてできません。。)
- どのように作ったかを箇条書きで書いていきます
- 備忘録として(4年以上前なのに備忘録とは…)
- 自分が作る前に知っておきたかったことを盛り込みたい
自己紹介
- 昔はFlashで映像を作っていた
- AEは少し触っては忘れる程度の初心者
- プログラムはそこそこ書ける
- 絵は全然描けない
- ここ数年は自分の作品を作ってなかった
- 他の人のお手伝いで素材作る程度
作品のテーマから使いたい技術を選定
- 曲 【初音ミク】逃避ケア【オリジナル】 - ニコニコ動画
- 曲を聞いてノイズっぽい感じ、壊れた感じを表現したかった
-
データモッシュという意図的に動画を破壊する表現を使いたかった
- ...
-
データモッシュという意図的に動画を破壊する表現を使いたかった
- どのように作ったかを箇条書きで書いていきます
-
データモッシング動画を AviGlitch で作る 備忘録
Movie ·データモッシング動画が作りたくなってさまよっていたら AviGlitch というRuby のライブラリが便利そうなので使ってみました。コーデックが Xvid の AVI にする必要があるようです。
AviGlitch - A Ruby library to destroy your AVI files.
以下、swf ファイルをデータモッシングする手順をメモしていきます。例によって環境はMacですが、Windowsでも同じようなことはできるはず。
- Swivel を使って swf -> mp4
- ffmpeg を使って mp4 -> avi
- ffmpeg のインストールの参考:Mac OS XでFFmpegのインストールとWebM動画の作り方 - くじらぶろぐD
- 以下のコマンドで変換。 フレームレート等は動画に合わせて変える。
ffmpeg -i input.mp4 -y...
-
Mac で BPM を調べるやつ Scratch Live
Create, Movie ·いつも忘れるのでメモ。
映像制作のお供に。
使い方
- 調べたい曲をD&D
- 左上の Analize Files をクリックして待つ
- bpm がリストで表示される
-
SWF2PNGSequence のフィルタ関係の不具合を修正しました
Flash, Movie, Program ·お陰さまで SWF2PNGSequence が 20個ほど売れています。ありがとうございます!(ニッチなツールとしては多いのかな・・・?)
フィルタを使用したSWFの変換が で上手くできないという問い合わせを頂きましたので修正しました!
以前購入いただいた方へ:同じURLに修正したファイルをアップロードしていますので、ダウンロード・インストールをお願いします。 新規購入の方はこちら:SWF2PNGSequence
ついでに下記項目も修正しています。
- サイズ指定:ニコニコ動画の新プレイヤーの解像度864x486, 648x486 を追加
- ファイル名:日本語のファイルがエスケープされていたのでアンエスケープして表示するように修正
-
SWF2PNGSequence の変換速度が2倍以上になりました
Flash, Movie, Program ·前回のエントリで SWF2PNGSequence を公開してから1ヶ月が経ちました。 Gumroad でもまだぼちぼち売れているので嬉しい限りです。
SWF2PNGSequenceのPNGエンコーダーを見直したところ、 自分の環境では変換時間が半分以下となりましたのでバージョンアップしました。 同じ場所にアップロードしています。
使用したライブラリは以下のもの。感謝感謝。 BlooDHounD’s workspace - blooddy_crypto.swc library
-
SWFからPNGシーケンスを作成するAIRアプリ「SWF2PNGSequence」を作りました!
Flash, Movie, Program ·2013/12/15 このページは固定ページに移動しました。
-
鳥の大群の飛行を動画撮影してみた
Movie ·京都駅前にて鳥の大群の動画を撮りました。1000羽くらいいるんじゃないでしょうか。
群れの動き面白い。 モーションの参考資料として使えそうですね。
Blender
-
Away3Dで使えるフォーマット「AWD」をBlenderから書き出すテスト
3D, ActionScript, Blender, Flash ·BlenderとAway3Dでやりとりするフォーマットを模索中。。。 Away3Dで使えるフォーマット「AWD」をBlenderから書き出せたので備忘録として残します。 例によってMac環境での説明です。 AWDとは→ awd - Away3D Data file format - Google Project Hosting
Program
-
SWF2PNGSequence の ソースコードを公開しました
Flash, Program ·SWF2PNGSequence の ソースコードを公開しました。ライセンスは MITです。
https://github.com/hushin/SWF2PNGSequence
理由など
- PCのファイル整理していて、ソースコードはgitで管理したくなった
- 自分が作ったものをgithub に公開しておきたかった
- 世界の何処かで機能追加したいひとがいるかもしれない
アプリを公開したのが 2012年2月なので、作っていた時期を考えるともう7年前のコードですね。
ActionScript, Flexの書き方も忘れてしまいました。 (OSS化にあたり Flash Builder でのビルド設定やライブラリパスを通すに一苦労しました…)
自分ではもうメンテナンスする予定もないので、興味ある方はforkして触ってもらえたらと思います。
-
SWF2PNGSequenceを無料化します
Flash, Program ·先日のFlash オフで発表したように、 SWF2PNGSequenceを有料($20)で販売していましたが、無料化します。
SWF2PNGSequenceの説明、ダウンロードはこちらに書いています。 是非使ってみてください!
-
SWF2PNGSequence のフィルタ関係の不具合を修正しました
Flash, Movie, Program ·お陰さまで SWF2PNGSequence が 20個ほど売れています。ありがとうございます!(ニッチなツールとしては多いのかな・・・?)
フィルタを使用したSWFの変換が で上手くできないという問い合わせを頂きましたので修正しました!
以前購入いただいた方へ:同じURLに修正したファイルをアップロードしていますので、ダウンロード・インストールをお願いします。 新規購入の方はこちら:SWF2PNGSequence
ついでに下記項目も修正しています。
- サイズ指定:ニコニコ動画の新プレイヤーの解像度864x486, 648x486 を追加
- ファイル名:日本語のファイルがエスケープされていたのでアンエスケープして表示するように修正
-
SWF2PNGSequence の変換速度が2倍以上になりました
Flash, Movie, Program ·前回のエントリで SWF2PNGSequence を公開してから1ヶ月が経ちました。 Gumroad でもまだぼちぼち売れているので嬉しい限りです。
SWF2PNGSequenceのPNGエンコーダーを見直したところ、 自分の環境では変換時間が半分以下となりましたのでバージョンアップしました。 同じ場所にアップロードしています。
使用したライブラリは以下のもの。感謝感謝。 BlooDHounD’s workspace - blooddy_crypto.swc library
-
SWFからPNGシーケンスを作成するAIRアプリ「SWF2PNGSequence」を作りました!
Flash, Movie, Program ·2013/12/15 このページは固定ページに移動しました。
JSFL
-
Flashの塗りの縁取りを一発で行うJSFL
Flash, JSFL ·Flashの塗りの周りに線で縁取りたいときがあると思いますが、 インクボトルツールで何回もクリックする手間を解消してくれるJSFLを書きました。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters// // draw_stroke.jsfl // // http://flatv.fdempa.com/ // Copyright (c) 2013 FLATV / @hush_in / flatv@fdempa.com // Licensed under the MIT License var dom = fl.getDocumentDOM(); dom.selection; var stroke = dom.getCustomStroke("toolbar"); dom.setStroke(stroke.color || "#000000", stroke.thickness || 1, stroke.style || "solid"); ↑の [view raw] を右クリックで保存できます。
使い方
塗りを選択して実行すると縁取ります。
JSFLはダブルクリックで実行できます。もしくは以下公式ヘルプを参照ください。 Adobe Flash Professional * JavaScript API の操作
-
JSFLのベンチマークをとってみる
Flash, JSFL ·JSFLのパフォーマンスを向上させる記事があったので、自分でも試してみました。
参考:Salsa de Pixeles: Improving JSFL performance
こういう関数を作って実行してみる。xJSFLにTimer が用意されていて便利。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersxjsfl.init(this); // init xJSFL ;(function(){ function scriptFolderURI() { return fl.scriptURI.replace(/[¥/][^¥/]*?$/,"/"); } // use Lo-Dash fl.runScript(scriptFolderURI() + "jsload/lib/lodash.compat.js"); })(); function benchmark(name, times, callback){ var timer = new Timer(name); timer.start(); for (var i=0; i < times; i++){ callback(); } timer.stop(true); } clear(); benchmark("benchmark test", 1000,function(){ // task _.reduce(_.range(100), function (sum, num) {return sum + num;}); }); benchmark("benchmark test2", 1000,function(){ // task _.map(_.range(100), function (item) {return item * item * item;}); }); 結果は以下のようになります。単純な計算なのであまり変わりませんね。
Task "benchmark test" took 126 milliseconds Task "benchmark test2" took 156 milliseconds
キーフレームの作成方法による違い
空のキーフレームを100個作るときの時間を計測しています。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersxjsfl.init(this); // init xJSFL ;(function(){ function scriptFolderURI() { return fl.scriptURI.replace(/[¥/][^¥/]*?$/,"/"); } // use Lo-Dash fl.runScript(scriptFolderURI() + "jsload/lib/lodash.compat.js"); })(); function benchmark(name, times, callback){ var timer = new Timer(name); timer.start(); for (var i=0; i < times; i++){ callback(); } timer.stop(true); } function deleteAllLayers() { function layerCallback(layer, index) { $timeline.deleteLayer(index) } Iterators.layers(Context.create(), layerCallback); } clear(); benchmark("convert keyframes", 10,function(){ // task $timeline.convertToKeyframes(0,100); deleteAllLayers(); }); benchmark("insert keyframes", 10,function(){ // task _.range(100).map(function(item){$timeline.insertKeyframe(item);}); deleteAllLayers(); }); 結果は以下のようになります。 convertToKeyframesで一括で作る場合とinsertKeyframeで1フレームずつ作る場合を比較しましたが、 前者の方が後者より約45倍早くなっています。
Task "convert keyframes" took 565 milliseconds Task "insert keyframes" took...
-
JSFL で Underscore.js を使うテスト
Flash, JSFL ·JSFL の fl.runScript を使って汎用的な JS のライブラリ Underscore.js が使えるか試してみたらできたのでメモ。
ファイルの構造(xJSFLでファイルのURIを指定しているのでこんな感じ)
※注意:underscore-min.js (圧縮されたJS)を読み込んだところ、特定のメソッドで Flash が強制終了しました…。圧縮されてない underscore.js を使うと落ちませんでした…不思議。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters//xjsfl.reload(); xjsfl.init(this); // using xJSFL clear(); fl.runScript(xjsfl.file.find('lib', 'underscore.js')); trace(_.map([1, 2, 3], function(num){ return num * 3; })); trace(_.some([null, 0, 'yes', false])); trace(_.invoke([[5, 1, 7], [3, 2, 1]], 'sort')); var evens = _.filter(_.range(1, 20), function(num){ return num % 2 == 0; }); trace(evens); var sum = _.reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0); trace(sum); var stooges = [{name : 'curly', age : 25}, {name : 'moe', age : 21}, {name : 'larry', age : 23}]; var youngest = _.chain(stooges) .sortBy(function(stooge){ return stooge.age; }) .map(function(stooge){ return stooge.name + ' is ' + stooge.age; }) .first() .value(); trace(youngest); 結果
使い道
あまり思い浮かびませんが、生のJS書くよりはマシなのでモチベーションがあがりますね。 他にも汎用的なJSのライブラリを読み込んだりしたらさらに便利になりそう。
-
四角がランダムに出現する.jsfl
Flash, JSFL ·xJSFL使って作業効率上げたい。日々書いていけたらいいな。 実行結果はこんな感じになります。
-
xJSFL はじめの一歩
Flash, JSFL ·xJSFLのベータ版が終わり1.xがリリースされましたね。めでたい!!
これを機にxJSFLをインストールして快適なJSFLライフを過ごしましょう(宣伝)
以下、備忘録とか宣伝とか。基本的には以前書いたエントリと同じですが。。。
-
モーショントゥイーンを自動作成する.jsfl
Flash, JSFL ·モーショントゥイーンを自動作成する.jsflをとりあえず作ってみました。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersxjsfl.init(this); //init xJSFL const STAR_NAME = "star"; var dom = $dom; var lib = $dom.library; var tl = $timeline; var context = Context.create(); makeStar(); //星を作る lib.addItemToDocument({x:100 , y:100}, STAR_NAME); //ステージに配置 tl.createMotionTween(); //モーショントゥイーンを作成 tl.insertKeyframe(29); //30フレーム目にキーフレームを挿入 //30フレーム目のMCを変形させる $('*') .attr('position', [400,200]) .attr('scale', [1, 0.5]) .attr('rotation', 30) .refresh(); //星のMCを作る function makeStar(){ if( ! lib.itemExists(STAR_NAME)) { lib.addNewItem('movie clip', STAR_NAME); lib.editItem(STAR_NAME); makeStarPath(5, 20, 40); dom.selectAll(); dom.setFillColor('#99CC3366'); dom.setStroke('#003300AA', 0.5, 'solid') context.goto(); } } //星のパスを描画 function makeStarPath(sideNum, inside, outside){ var myPath = fl.drawingLayer.newPath(); var radius, radians; for (var i = 0; i <= sideNum * 2 ; i++) { radius = (i%2) ? inside : outside; radians = 360 * (i / sideNum / 2) * (Math.PI / 180) + (Math.PI * 1.5); // 星なので90度から描画開始 myPath.addPoint(Math.cos(radians) * radius, Math.sin(radians) * radius); //trace(Math.cos(radians) * radius, Math.sin(radians) * radius); } myPath.makeShape(); } xJSFL | Context (class) を使いたかったが、バグがかなりあるようなのでかなりはまりました。無難に公式のAPI叩いた方がいいかも。 2012/6/10 追記:$timeline が用意されているようなので、それを使いました。
実行するとこんな感じになります。
次にやりたいこと
- 任意のフレームをモーショントゥイーン
- イージング
- 複数レイヤーで同時に自動作成
- グラフィック(またはMC)を作ってその中にタイムライン作成
- パーティクルのようなもの
- タイポグラフィー
-
JSFLでFizzBuzz
JSFL ·xJSFLを試しつつ書いてみた。traceだけでは物足りないのでKeyfameを作ってそのラベルにFizzBuzzの結果を入れるようにした。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters// -------------------------------------------------------------------------------- // Timeline で FizzBuzz xjsfl.init(this); var context = Context.create(); clear(); //trace(context); //inspect(context.timeline); for (var i = 0; i < 100; i++) { context.timeline.insertKeyframe(i); var keyframe = context.keyframes[i]; var n = i + 1; if (n % 15 == 0) { keyframe.name = 'FizzBuzz'; } else if (n % 3 == 0) { keyframe.name = 'Fizz'; } else if (n % 5 == 0) { keyframe.name = 'Buzz'; } else { keyframe.name = n; } trace(i, 'keyfame.name :', keyframe.name); } 実行すると下図の様になる。誰得
出力パネルへのtrace結果は下記。
0, keyfame.name :, 1 1, keyfame.name :, 2 2, keyfame.name :, Fizz 3, keyfame.name :, 4 4, keyfame.name :, Buzz 5, keyfame.name :, Fizz 6, keyfame.name :, 7 7, keyfame.name :, 8 8, keyfame.name :, Fizz 9, keyfame.name :, Buzz 10, keyfame.name :,...
-
JSFLを始めようと思ったらxJSFLというフレームワークが便利そうだった
JSFL ·JSFLとは
Flash JavaScript(JSFL)を使うと、 Flash の制作環境での作業を効率的にできるらしい。何度か書こうと思ってその都度めんどくさくなってしまったので、今回は忘れないようにメモしておく。
公式ドキュメント
- Adobe Flash Professional CS5 & CS5.5 * Adobe Flash Professional の拡張機能
- flash_cs5_extending.pdf (上のリンクのPDF版です)
開発環境
いろいろ探していたら xJSFL というフレームワークがあるので、それを使うことにした。xJSFL は jQueryライクなフレームワークで、セレクタとか用意されているらしい。あとで試す。ライセンスはMITのようです。
インストールは下記参照。 xJSFL | Quick Start (※ちなみに私の環境だとinstall.jsflを実行してFlashを再起動してもエラーが出ました。再起動後、再度install.jsflを実行したらインストールできた。)
インストールすると下の図のようなパネルが使えるようになる。
また、フレームワークだけでなく開発環境も配布しています。Komodo EditというIDEの拡張で JSFL の自動補完が出てくる。便利。(Memo: Macの場合、Command+Jで補完表示)
インストールは下記参照。 xJSFL | Komodo...
Event
-
FRENZ 2017 一日目 昼の部に出展します
Event ·久しぶりにサイト更新。FRENZ 2017 一日目 昼の部に出展します。明日です〜よろしくお願いします。
-
Flashオフ開催します
Event, Flash ·明日開催です!主催します!
-
タイムライン派のFlash勉強会企画してます #FLASH_OFF
Event, Flash ·Flash(Flash IDE、アニメーション、タイムライン派)に特化した内容のスライド発表型の勉強会を考えています! 今年中に開催できたらいいなー。
詳しくはTwitterか下記のサイトをご覧ください。
Create
-
Mac で BPM を調べるやつ Scratch Live
Create, Movie ·いつも忘れるのでメモ。
映像制作のお供に。
使い方
- 調べたい曲をD&D
- 左上の Analize Files をクリックして待つ
- bpm がリストで表示される