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は、表示はされるがボタンはダメ、効かない。iOS 13はどうなんだろう?とりあえず、アニメーション制作バイブル復活。ここも少しずつコンテンツを復活させてく。

エラー

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

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

swf2js

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

参考サイト

Ruffle:公式サイト
OSDN:Webブラウザ上で動くFlashの実行環境を開発するプロジェクト「Ruffle」が立ち上がる
緑SM64のいろいろメモ:Flashエミュレーター「Ruffle」はなぜ本家Flashの問題点を解決できるのか
ICS:Flash作品を残すために取り組んだこと

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