March 02, 2021

RuffleでFlash復活

Ruffle
「Ruffle」はゲームや動画、オーディオ、アートワークなどの共有サービスを手がける米Newgrandsが2019年8月23日に発表したプロジェクトで、「Flash Player」に代わってSWFムービーを実行するエミュレーター。RustでFlash実行環境を実装し、Webブラウザ上でバイナリを実行するWebAssembly技術でWebブラウザ内でのFlashコンテンツの再生を可能にしてるらしい。意味はわからんけど、とにかくすごい技術みたいよ。

Flashは死なない

Ruffleを開発してるボランティアたちは、世界からFlashという文化がなくなってしまうのはあまりにも惜しい、寂しいという思いから日々取り組んでる。最新版のアップデートも頻繁。Ruffleで大昔に作ったSWFが今も動くだけで嬉しい、すごい、それだけで満足。無償で提供されるRuffleで世界中の多くのFlashコンテンツが救済されちゃってください!

3つのRuffle

Ruffleには3種類ある。1つめは、ChromeやFirefoxの機能拡張でブラウザーに組み込むタイプで、Flash Playerプラグインに代わるもの。WEBやローカルを問わずSWFをブラウザーで再生したい人が自主的にインストールする。2つめはローカルのSWFを実行するデスクトップ・アプリケーションのタイプで、Flash Player.appみたいなもの。再生したい人が自主的にインストールする。そして3つめがWEBサーバーに設置するタイプで、WEB上のSWFムービーを誰もが再生することができちゃう。再生する側は何の準備もいらない。なので目指すのはこの3つめ。

インストール

1:公式サイトのReleasesから、最新版のRuffleをダウンロード。一番右のWebsiteのSelf Hostedってやつ。
2:ダウンロードしたファイルのうち、ruffle.jsと.wasmを自分のサーバーにアップロード。
3:SWFが埋め込んであるhtmlで、</body>の前に、
<script src="[ruffleのパス]/ruffle.js"></script>
これで完了。

プレビュー

さっそく見てみるぞー。SWFムービーが表示されるまで、少し時間がかかるかもしれません。わくわく。
ゴミ拾い流鏑馬
再生ボタンロードが終わったらパッと表示されます。SafariとChromeの場合は、再生マークが出るのでクリックしないとSWFムービーが表示されません。こーんな簡単な手順でChrome、Firefox、SafaeiでSWFムービーが表示されました。さて、iOSはどうかな?iOS 14以降のiPadはOKでした。すごーーい!iOS 12は、表示はされるがボタンはダメ、効かない。とりあえず、アニメーション制作バイブル復活。ここも少しずつコンテンツを復活させてく。

エラー

Ruffle.wasmが動作する環境じゃないってエラー。使用マニュアルによると、httpd.confのMIMEタイプにに.wasmを追加しないといかんらしい。オレが借りてるサーバーのMIMEタイプ一覧を参照したらそれがない。そこでサポートに追加依頼したけど、1週間待たされた挙句、「共用プラン」のため拒否された。そこでいったん諦めましたよ。でも数日後、Ruffle.jsをアップデートしてみたら動いた!なんでか知らんがとにかく動いた!

RuffleJavaScriptがコンフリクトしてますエラー。読み込んだJSのうち、邪魔してるやつがいるらしい。それを特定し、読み込むのをやめたら大丈夫になった。

swf2js

RuffleみたいなFlashエミュレーターで日本のToshiyuki Ienagaさんが開発してる「swf2js」ってのもあります。こちらはAVM2(AS3.0)にも対応してるけど、オレのはAVN1だからRuffleでいいかなと。もしRuffleが動かなかったら試すつもりだったけど。

今後の課題

ネット社会からFlashムービーが駆逐されたのはFlash Playerが問題だったわけで、Flash Playerナシで再生できるんなら堂々と復活するべきだよね。Flash Playerは死んでもコンテンツは残りました。そして新しいFlashムービーがこれからも出てきていいわけです。なんかもったいないよね。Flash Player終了が終了して何年もたつけど、Flashに相当するものは今も出てきてないんだから。AnimateでまたFlash全盛を取り戻したいところ。それにはひとつ問題があるんですよ。RuffleがActionScript 3.0に完全対応してないこと。アドビはAS 3.0に移行してAS 1とAS 2をあっさり捨てちゃったけど、RuffleはAS 1〜3までサポートするべくとがんばってます。
Ruffle古いSWFはRuffleで再生できるんだけど、新しく作ったムービーはどうでしょ。Animate CCでをパブリッシュしたSWFを再生しようとすると右のようなアラートが出ちゃうんです。もしSWFにAS 3.0を使ってたら正しく再生されないかもよってことです。ここで「Run anyway」を押すとやっと再生ボタンが出ます。つまり、再生まで1クッション増えるわけで、ちょっとうっとーしいんです。なのでこの1クッションはAS 2.0のSWFをパブリッシュすればを回避できます。

Ruffle
でも、Animate CCやFlash CCのパブリッシュはAS 3.0しか選べません。SWFの中でAS 3.0を使ってなくてもなっちゃう。AS 2.0でパブリッシュできるのはFlash CS6以下。Animateで作ったFLAをFlash CS6で開いてパブリッシュすればいいんだけど、現実的じゃない。アドビはとっくに提供してないんだから。RuffleがAS 3.0に完全対応するか、アドビがAnimateから無用の長物になったAS 3.0を廃止してAS 2.0に戻してくれるかですね。多分後者はないけど。

参考サイト

Posted by A.e.Suck at March 2, 2021 02:57 PM