読者です 読者をやめる 読者になる 読者になる

chikuchikugonzalezの雑記帳

趣味とか日記とかメモとか(∩゚д゚)

久方ぶりにプログラム書いた

最終目標は某所で見た

そろそろGUIでCNSで編集できたらいいなー

的な発言で、とりあえずステコンの編集でプレビューできるようなツールを妄想してます。たぶんできない。
とりあえずSFFの分解ができないと始まらないのでPython Imaging Libraryを使ってツールを作ってみた。

やること

とりあえずこういうツール。

$> python Main.py --help
Usage: Main.py [options]

Options:
  -h, --help            show this help message and exit
  -f FILE, --sff=FILE   Target Sprite FILE
  -a AIR, --air=AIR     Animation File
  -x, --extract         Save Sprites
  -m IMAGEFORMAT, --format=IMAGEFORMAT
                        Image Format for extract
  -g, --gif             Save Animations
  -d DIRECTORY, --directory=DIRECTORY
                        Save Directory
  -s SAVEFILE, --save=SAVEFILE
                        Save Sff
  -T INFINITETIME, --infiniteTime=INFINITETIME
                        View time of anim-element that time is -1
  -L LOOPANIMCOUNT, --loopCount=LOOPANIMCOUNT
                        Loop count of animation after LoopStart

よくわかんないね。
とりあえず

  • −−sffで対象となるSFFファイルを指定する (必須)
  • −−extractを指定すると画像を全部BMPに変換する
    • クローンも別ファイル
  • −−formatで出力フォーマットを変更できる
    • 指定は拡張子で
  • −−directoryで出力先を変えられる (デフォルトは実行しているディレクトリ)
  • −−airでアニメーションファイルを指定すると、gif出力が使えるようになる
  • −−gifを指定すると、アニメーションファイルのアクションを全部アニメーションGIFにする
    • 存在しない画像を使うアクションは背景色でできた画像になる (はず)
  • −−saveはなにかって?SFFSFFをするだけ。たぶん容量増加
  • −−infiniteTimeでアクションの表示時間が「-1」になっている画像の表示時間を指定できるよ
  • −−loopCountで「LoopStart」以後のループアニメの表示回数をしていできるよ

とりあえずこうやって使います。

$>python Main.py --sff="Akiha\Akiha.sff" --air="Akiha\Akiha.air" --directory="Test" --extract --format=bmp --gif

これでTestディレクトリに全画像 (bmp) とアクション (アニメーションGIF) が保存されます。


ここまでやって力尽きました。GUIは誰かに任せたい。

追記 at 2010/06/29

SFFv2 (MUGEN 1.0以降のバージョン) を作るのに必要なDEFファイルをSFFv1 (今までの) から作るツールも作った。あと公開場所を公開してなかったので。

ElecbyteSpriteFile 20100629.7z (MediaFire)またはElecbyteSpriteFile.7z (SkyDrive)からドゾ。