2014/05/14(水) [n年前の日記]
#2 [dxruby][cg_tools] swfmillを試していたり
以前、「DXRubyに動画再生機能をつけてほしい」という要望を目にした際に、「そんな機能、必要なのかな」「せっかく60FPSで画像をグリグリ動かせるライブラリなのだから、リアルタイムで動画っぽく見せたほうがよかったりしないか」と思ったのですけど。しかし、再生用の元データをどうやって作るかで悩みそうだなと。
そこでふと、FLASH関連ツールを使えないかなとひらめいたのです。
_ParaFla や _Suzuka 等、無料で使えるFLASH作成ソフトで .swf を作って。
_swfmill で swf → xml 変換。Ruby なら xmlの解析もしやすいだろう、おそらく _Nokogiri とやらを使えそう。みたいな。
てなわけで、少し実験。
まずは、Suzuka で作った .swf を swfmill で xml にしてみようと。以下のような感じで xml に変換。
変換後の xml を眺めてみたのだけど。base64らしい文字列がずらりと並んでるのが気になって。.swf に埋め込まれた画像データが、そのまま xml に吐き出されているのだろうなと。画像は別にして保存できないのかな。せめてファイル名でも書いてあれば…。いや、難しいか。swf の再生時は、ファイル名なんか必要としないので、含まれるわけがないよな。
とりあえず、想像だけど。
そこでふと、FLASH関連ツールを使えないかなとひらめいたのです。
_ParaFla や _Suzuka 等、無料で使えるFLASH作成ソフトで .swf を作って。
_swfmill で swf → xml 変換。Ruby なら xmlの解析もしやすいだろう、おそらく _Nokogiri とやらを使えそう。みたいな。
てなわけで、少し実験。
まずは、Suzuka で作った .swf を swfmill で xml にしてみようと。以下のような感じで xml に変換。
swfmill swf2xml hoge.swf hoge.xml
変換後の xml を眺めてみたのだけど。base64らしい文字列がずらりと並んでるのが気になって。.swf に埋め込まれた画像データが、そのまま xml に吐き出されているのだろうなと。画像は別にして保存できないのかな。せめてファイル名でも書いてあれば…。いや、難しいか。swf の再生時は、ファイル名なんか必要としないので、含まれるわけがないよな。
とりあえず、想像だけど。
- <ShowFrame/> というタグが出てくるたびに、ここまでの指定で1フレームを描画、という感じになってる予感。
- <DefineBitsJPEG2 objectID="?"> 〜 </DefineBitsJPEG2> が jpeg画像。
- <DefineBitsLossless2 objectID="?" format="?" width="???" height="???"> 〜 </DefineBitsLossless2> が png画像。
- <PlaceObject2 replace="?" depth="?????"> 〜 </PlaceObject2> で、どのオブジェクトに対する処理かを指定してる、のかな。replace="1" なら、id=1 のオブジェクトの状態を変えよ、という指定になってる気がする。(2014/05/31追記。replace は、オブジェクトを生成するか、それとも移動するかを指定してた模様)
- <transform> 〜 </transform> で、移動や拡大縮小を指定してる。
- 1フレーム毎に、このオブジェクトをここに動かせ、等の情報が描かれてる。FLASH作成ソフト内では、イージングその他の動きの指定ができるのだけど、それはあくまで作成ソフト内の管理情報で、swf には、そのフレームではどの位置に配置するか、といった最低限の情報だけが残ってるように見える。
- よくわからんけど、内部的には各座標値を20倍した状態で計算してる?
[ ツッコむ ]
以上です。