【令和版】ガラケーの待ち受けflash画像をつくったので備忘録
あらすじ
2022/07/06、がっつり平日に友人からTwitterにてDMが届く。
「ファイルコンバーターって無料?」
「MP4のデータをFlashデータに変換しようとした」
話を聞くとガラケーにflash待ち受け画像を表示させたいらしい。令和だぞ?*1
しかもケータイ捜査官7のガラケーをメルカリにて高値*2で購入したとのこと。そりゃそこまでやったら待ち受け設定したくなるよな。
しかしこの日はファイルコンバーターを使って変換しても上手くいかなかった。
平日夜ということもあり一度寝てお開きに。
次の日曜日に改めてDMが届き、mp4(具体的にいえば元々はgif画像を動画化したものなのだが)をFlashデータ(拡張子swf)に変換する作業に本格的に向き合い始めることになった。
~あらすじここまで~
以下備忘録。
やってみたこと、ダメだったこと、どうやってガラケーで再生できたのかのメモ書き。
結論だけを知りたい方は斜め読み推奨。
もし実践したい方がいれば一度記事を読み終えてからで。
試したこと
ファイルコンバーター
結論から言うとガラケーで再生できるflashデータはファイルコンバーター(サイト名)を使っても作れなかった。
PCでなら再生できるのだろうが、PCじゃもはや再生できないし、再生する環境構築をしても今回は意味なのでスルー。
日本語が怪しいサイトだが別にウイルスなどの問題はないと思われる(間違えて広告をクリックしないように)。
とりあえず話を聞く
僕がガラケー本体を持っているわけではないので、試したことを聞く必要があった。
- 画像データに変換したら表示された
→しかし表示できたのはGIFではなくjpeg形式なので目的達成ならず - GIFは表示できていない
- とりあえずガラケーにて画像表示さえできれば待ち受けに設定できるらしいとの情報
- ファイルコンバーターにてswfに変換したところ、真っ白な画像になってしまった
このあたり。
さて、僕がswfを作って投げようにもガラケーの待ち受けflash画像なぞ設定したことない*3ので、色々ググる必要があった。
今回は以下の画像*4を待ち受けにすべく試行錯誤した。
待ち受けflash画像の仕様を調べる
- 解像度は240*320
右下の「メニュー」の文字含め。 - 容量は100KB以内
大きすぎると無理らしい。 - 拡張子はswf
今回は幸いにも尺が短かったので助かった(21枚の画像を3フレームずつ表示、合計63フレーム)。
Adobe Animate 2022でswfを作成する
ここから本題。
調べるとAdobe Flashなるソフトで作成できたようだが、今はAdobe Animateというツールになっている模様。
幸いにもAdobe Creative Cloudにたまたま加入していたおかげで、Adobe Animate 2022をインストールした。他のflash用ソフトも一瞬試したが、無理だった。
Win10に対応してないのもあるし操作ムズすぎる。
インストール中、一度AviutlにGIFを通し、21枚のバラバラの状態でjpegを抽出。
インストールを終え、早速Adobe Animate 2022を開きプロジェクトを作成。21枚のjpegのそれぞれを各フレームに張り付け出力するも、容量が180KB近くあり表示できなかった。
どうやらガラケー向けのflashは画像をたくさん入れるのではなく、シェイプなどを使いベクター画像で構成していくらしい。
1枚1枚が単調な画像でも、ビットマップ画像が解像度目いっぱいあるのと、画面内に少しシェイプがあるのでは違う。一見ただの黒でも画質の劣化もあり、拡大すると黒一色ではなかった(jpegなのでそれも当然)。
とりあえず、表示したい画像が簡単な図形で構成された非常にシンプルなヤツで助かった。
いきなりすぐ出力はできないので、一度友人とのDMを切り上げ作業に取り掛かる。
どうやら複数のシェイプを1つのレイヤーに収めることができるようだ。どういうこと? Adobe After Effectsなどと違うので困惑。
今回は口1レイヤーに口の図形(縦4個*横8個=32個)を全て表示させていて、残りの口2レイヤーなどはそれをコピーしてシェイプをいくつか消去しただけのものになる。目の部分も同様に作業する。今回は再現なので特にシェイプを動かしたりなどは無し。
右下のメニューについてはどうしようもなかったので、たまたま持ってたAsepriteにてドットを直打ち。
別にAsepriteではなくともWindows標準のペイントで打ってから背景をスポイトで抜いた水色に合わせるとかでも良いはず。ペイント以外でも後から何かしらのツールで透過しても良し。
ちなみに再現するために使った元画像は非表示にするだけでなく、ちゃんとプロジェクトから消去しておかないと容量が加味されてしまうので、ちゃんと消去しておくこと。
そうこうして21枚分を再現したところで問題が見つかる。
出力設定を見ると、flash lite 2.0の指定が無かった。
とりあえずflashの設定をその時選べた一番低いflash 12あたりに設定し、投げるも読み込めなかった。
いやどうすんねんと思いつつググると、Creative Cloud移行前のソフト(買い切り。クソ高い)でしか指定できない模様。
とりあえず[ファイル]->[書き出し]->[ムービーの書き出し]でエクスプローラーが開くので、拡張子をswfに変えて出力。
swfをバイナリエディタで開き4byte目を変更してみる
だいぶ絶望しながら、ググりつつ試行錯誤してみた結果、バイナリエディタにて開くと4byte目にバージョンが指定されているらしい(PowerPointのスライドみたいなページでそれを見つけたのだがURLを失念してしまった)。
とりあえずバイナリエディタValz Hexで開き、0x04:[0C]→[04](flash 12なので16進数に直すと0C)に変更。確かflash lite 2.0はflash 4あたりと同じ扱いだった気がする(実践から2週間後に記事を書いているので記憶があいまい)。
Adobe Animateの出力設定を見直す
上記でバイナリエディタ云々の記述を書いたが、この時点でだいぶ絶望していたので4byte目を変更した段階ではまだ試してもらっていない。
むしろ重要なのは多分こっち。
4byte目を変更したswfファイルでは設定を確認し、[ファイル]->[パブリッシュ設定]の詳細設定より、ムービーの圧縮のチェックを外していた。
結論から言うと、この2つの動作のおかげで再生することに成功した。
多分バイナリよりこっちのおかげのはずだが、自分のガラケーではないのでそこまで試せなかった。再生できたのでヨシ! ちなみに容量は脅威の10KB。
推論
- シェイプを使いflash画像を作る
- 画像はたくさん使わない
- 解像度に気を付ける
- 拡張子はswf
- 多分flash lite 2.0当時でもできる動作なら指定するflashのバージョンは関係ないと思われ(ターゲット設定もそのまま)。
- [ファイル]->[パブリッシュ設定]の詳細設定より、ムービーの圧縮のチェックを外すこと。
- 一応バイナリエディタで4byte目を04にしてもいいのかも
以上!
あとどうやらガラケーの起動音(?)も設定できたようなので以下に軽くメモ。
mp3→wav→mmfと変換する必要があるらしく、以下のツールでwav→mmfと変換すると良いらしい。(mp3→wavはなんのツールでもサイトでも良い)
https://web.archive.org/web/20160323213931/http://smaf-yamaha.com/jp/tools/dl.php?ocid=wsd110
最後に友人から貰った動画を張り付けて記事を終えたい。
flash待ち受け画像を友人に作ってあげた(2つ目は効果音自分で差し替えたとのこと) pic.twitter.com/ySeoMJgzm7
— ころ🦉📕 (@korohack56) 2022年7月22日
https://twitter.com/korohack56/status/1550512152880218112?s=20&t=D9Usb5a5LfsTucF4wEpG1w
tps://twitter.com/korohack56/status/1550512152880218112?s=20&t=D9Usb5a5LfsTucF