Flash Player 互換アドオン「Ruffle」の導入方法
Ruffle とは
Ruffle は,FLOSS の Adobe Flash Player 互換ソフトウェアです。Ruffle を導入することで,Flash Player のサポートが終了して再生できなくなった Flash コンテンツをまた再生することができるようになります。
Ruffle は自由ソフトウェアライセンスである Apache License 2.0 のもと公開されており,活発な開発が続いています。開発言語に Rust が採用されているため,従来のプロジェクトに比べて動作を安定させやすいことが特徴です。さらに,WebAssembly (wasm) として実行されるため,クロスプラットフォームであり,外部から読み込むプラグインとして実行するよりもセキュアです。ウェブサイトに埋め込んで利用することもできることから,Internet Archive で Ruffle が採用されたことが話題になったほか,Newgrounds や Armor Games といったブラウザゲーム配信プラットフォームでも採用されています。開発自体も他のプロジェクトに比べて進んでいる傾向にあります。
以下は公式サイトに掲載されている Ruffle の開発状況です。ActionScript 1 および 2 への対応はある程度進んでいる一方,ゲームなどでよく使われている ActionScript 3 はまだほとんど手がつけられていないということがわかります。
Ruffle には以下の 3 つの利用方法があります。
- ウェブサイト管理者がウェブサイトに組み込み,利用者に対して Flash コンテンツと一緒に配信する。
- 利用者がブラウザにアドオンとして導入し,ウェブ上の Flash コンテンツを再生する(Adobe Flash Player と同様)
- 利用者がデスクトップアプリケーションとして導入し,ローカルのファイルを再生する。
このうち,本稿では Ruffle をアドオンとしてインストールする方法を紹介します。
似たようなものを指す語に,拡張機能,プラグイン,アドオンがあります。これらの語に厳密な定義はありませんが,一般に以下のように使い分けられています。
拡張機能 … ブラウザ上で動作する小さなプログラム。ブラウザが用意しているセキュリティやアップデート,クロスプラットフォーム互換性のための枠組みを利用できる。
プラグイン … システムに導入された別個のプログラムで,ブラウザと密接に連動して機能するもの。Flash Player, Java Applet, Silverlight など。高度な機能を実現できる一方で,セキュリティや互換性の問題が生じやすい。
アドオン … 拡張機能やプラグインに加え,テーマなども含む総称(ただし,Edge では拡張機能と同義とされるなど,用法のばらつきが大きい)。
関連プロジェクト
先行する現在もアクティブな Flash Player 互換ソフトウェアプロジェクトとして Lightspark があります。しかしながら,Flash Player と同様にプラグインとしてシステムにインストールする必要があります。また,開発途上であるという点では Ruffle と同様です。Lightspark の Flash 対応状況はこちらから確認できます。
かつて Gnash, gameswf, swfdec といったプロジェクトもありましたが,いずれも開発は停止しています。
Ruffle をブラウザにインストールする
注意事項
常用しない
Ruffle は開発途上であり,ブラウザの安定性に問題を与えるおそれもあります。また,外部のファイルを解釈する特性上,導入はセキュリティリスクになる可能性があります。今のところはあまり気にしすぎる必要はないように思いますが,今後の機能追加・ユーザ増に伴ってセキュリティ上の無視できないリスクになる可能性があります。
最低限,プロファイルかブラウザを使い分け,普段使っている環境では Ruffle がロードされないようにすることをお勧めします。
ダウンロード元に注意する
無署名のアドオンをサイドロードすることはセキュリティ上の大きなリスクになりえます。どこからダウンロードするかについて,いつも以上に注意を払って下さい。
Ruffle は Ruffle 公式ウェブサイト https://ruffle.rs
に掲載されている https://github.com/ruffle-rs/
以下のダウンロードリンクから入手します。
アップデートを忘れない
Ruffle は現在のところ開発者向け機能から手動でインストールするしかなく,自動アップデートには対応していません。古いバージョンの Ruffle を使い続けることはセキュリティ上のリスクになりえます。
定期的なアップデートを忘れないようにしてください。
公式サイトの解説
導入は非常に簡単で,公式サイトの説明もよくまとまっていますので,まずは以下にその試訳を示します。
Flash コンテンツを使用しているものの Ruffle を導入していないウェブサイトを訪れるときや,どのウェブサイトでも確実に最新で最高のバージョンの Ruffle を使いたいときには,このブラウザ拡張機能がぴったりです!
最初の正式リリースまでは,署名されていないブラウザ拡張機能のみを公開しています。使用するには,まず Ruffle のリリースのうちお使いのブラウザに適切なものをダウンロードし,手動でインストールします。
Firefox
– 「Firefox」 .xpi ダウンロードリンクをクリックします。
– 「保存」をクリックします。
–about:debugging
に移動します。
– 「この Firefox」をクリックします。
– 「一時的なアドオンを読み込む…」をクリックします。
– ダウンロードした .xpi を選択します。
Chrome
– 「Chrome / Edge / Safari」リンクをクリックします。
– ダウンロードした zip ファイルをどこかに展開します。
–chrome://extensions/
に移動します。
– 右上にある「デベロッパー モード」を有効化します。
– 「パッケージ化されていない拡張機能を読み込む」をクリックします。
– 拡張機能を展開したフォルダを選択します。
通常は必要ありませんが,Windows システムから Adobe Flash Player を完全に取り除くには,Microsoft が公開している KB4577586 アップデートを導入します。
Firefox への導入についてのより詳しい解説
以下では,Firefox での Ruffle 導入方法を説明します[ref]例としている環境は Linux 上の Firefox ESR 78.6.1esr-1~deb10u1 (Debian 10, x64) で,使用した Ruffle は 2021-01-24 付けの nightly です。[/ref]。
1) 公式ウェブサイト https://ruffle.rs
にアクセスし,Releases
節に移動します。
すると,以下のようなリンクがあります。
Ruffle はまだ開発途上であるため,毎日その時点での最新の状態が自動的に反映される Nightly ビルドの形で提供されています。通常は最新のものを使うのがよいでしょう。しかしながら,動作検証はされていないため,問題が発生する場合もあります。その場合,以前のバージョンを試してみると動作する場合があります。
このうち,「Browser Extension」の列が今回必要なブラウザ拡張機能をダウンロードするリンクです。Firefox では "Firefox" とあるリンクからダウンロードします。なお,Firefox でリンクをクリックするとインストールプロセスが始まりますが,「このサイトのアドオンは未検証のため,Firefox はインストールを中止しました。」というエラーが出て導入できないので,以下の手順で導入する必要があります。
2) URL バーに about:debugging
と入力して Enter を押します。以下のような設定画面に遷移します。
3) 左の「この Firefox」をクリックします。以下のようになります。
4) 「一時的な拡張機能」節にある「一時的なアドオンを読み込む…」ボタンをクリックします。
5) ファイルの選択を求めるダイアログが表示されるので,先ほどダウンロードした .xpi ファイルを選択します。
6) 以下のようにインストールが完了します。再起動は必要ありませんでした。Ruffle をアンインストールするときは,この画面の「削除」ボタンをクリックします。
Google Chrome / Chromium への導入についてのより詳しい解説
以下では Google Chrome, Chromium での導入方法を説明します[ref]例としている環境は Linux 上の Chromium 87.0.4280.141-0.1~deb10u1 (Debian 10, x64) で,使用した Ruffle は 2021-01-30 付けの nightly です。[/ref]。
1) 公式ウェブサイト https://ruffle.rs
にアクセスし,Releases
節に移動します。
すると,以下のようなリンクがあります。
Ruffle はまだ開発途上であるため,毎日その時点での最新の状態が自動的に反映される Nightly ビルドの形で提供されています。通常は最新のものを使うのがよいでしょう。しかしながら,動作検証はされていないため,問題が発生する場合もあります。その場合,以前のバージョンを試してみると動作する場合があります。
このうち,「Browser Extension」の列が今回必要なブラウザ拡張機能をダウンロードするリンクです。Chrome, Edge, Safari では "Chrome / Edge / Safari" からダウンロードします。
2) ダウンロードした .zip ファイルを展開します。
Windows システムの場合,この際には 7-Zip の使用を推奨します。
7-zip は世界中で広く使われている FLOSS のアーカイバ(圧縮解凍ソフト)であり,多機能かつ高い互換性を持ち,セキュリティ面でも優れています。日本で今でもよく使われている Lhaplus は 2017 年を最後に開発が止まっており,現在広く使われている文字コード “UTF-8” に対応していないほか,既知の脆弱性が対応されないままとなっています。
3) URL バーに chrome://extensions
と入力して Enter を押します。以下のような設定画面に遷移します。
4) 画面の右上にある「デベロッパー モード」のトグルスイッチを有効化します。
利用可能な機能が増えます。
5) 左上にある「パッケージ化されていない拡張機能を読み込む」ボタンをクリックします。ディレクトリの選択を求めるダイアログが表示されます。
6) 2) で展開したディレクトリを指定します。指定したいディレクトリを開き,以下のような内容が表示されている状態で「選択」をクリックします。
7) Ruffle が読み込まれ,以下のようなパネルが増えます。
8) Ruffle を削除する場合には,上のパネルの「削除」をクリックしてください。画面右上に小さく“「Ruffle」を削除しますか?”と表示されるので,「削除」をクリックします。
動作例
せっかくですので,以下にいくつかの Flash ゲーム・アニメーションを試してみた動作検証結果を紹介します。ただし,ゲームは完全クリアまでは確認していません。
環境は,Linux 上の Firefox ESR 78.6.1esr-1~deb10u1 (Debian 10, x64) で,使用した Ruffle は 2021-01-24 付けの nightly です。
ゲーム系
プーさんのホームランダービー ◎
子ども向けとは思えないシビアなゲーム性からカルト的な人気のあるゲームです。
全国のプーさんのホームランダービーファンのみなさん,安心してください,動きます!
音もぴったりで,ステータスアップもちゃんとできます。セーブデータも保存されます。飛距離表示の小数部桁数がおかしくなることがありますが,ゲームプレイ自体に影響はありません。「プニキ」は健在です。
マテリアルスナイパー ○
本格志向のシステムで人気の 2D シューティングゲームです。
選択メニューの一部要素やゲーム内一部の日本語メッセージが表示されません。ゲームプレイ自体に大きな支障はありませんが,たとえばリロードし忘れの際に「z」としか表示されないなど,慣れていない人にはわかりにくくなります。それ以外は正常に動作するようです。
ZOOKEEPERアクティブ ○
クリックで絵柄を入れ替えて揃えるパズルゲームです。スマートフォンアプリとして移植されています。
ゲームプレイに大きな影響はありませんが,一部の日本語メッセージやヘルプ残り回数のパネルが表示されません。それ以外は問題ないようです。
GROW CUBE ◎
選択に応じて物体が成長する GROW シリーズのひとつです。スマートフォンアプリとして移植されています。
全く問題なく動作します。なお,少し試してみた限り GROW シリーズは「GROW Park」以外はすべて動作するようです。
人生オワタ\(^o^)/の大冒険 for FLASH ◎
樹海を目指すプラットフォームゲームです。初見殺し要素満載で,樹海にたどり着くまでもなく死にまくります。
ぜんぜん先に進めないのでよくわかりませんが,操作に問題はなくちゃんと音も出ており,全く問題ないようです。
人生オワタの大冒険2 ×
2020 年に公開されたまさかの新作です。
ActionScript 3 が使用されているため,最初にその旨の警告が表示されます。再生に進んでも残念ながら動作しません。
こ~こはど~この箱庭じゃ? ×
有名なホラー系 Flash ゲームです。
多くの要素は機能するものの,残念ながら,肝心の「掲示板」で日本語が表示されません。
赤い部屋 ◎
これも有名なホラー系 Flash ノベルゲームです。
クリックだけなので問題なく動作します。もっとも,一番特徴的な仕掛けは残念ながら Flash とは関係なく今のブラウザではうまく機能しませんが……
Steamlands ×
ブロックを組み立ててスチームパンクな巨大戦車を作り,敵と戦うゲームです。タワーディフェンスに近いシステムです。
残念ながらゲームが開始しません。これはほんとまたプレイしたいなあ……
Reverie ×
陰鬱な雰囲気のプラットフォームゲームです。グラフィックも BGM も美しいゲームです。
ActionScript 3 が使用されているため,残念ながら動作しません。
アニメーション系
なつみSTEP! ◎
非常に有名な Flash アニメーションです。電車でどこかに向かいます。どこに向かっているのかというと……?
音ズレもなく問題なく再生できます。
小小作品 No.8 ◎
「小小作品」は中国の作者「小小」氏が作成した Flash 黎明期の作品シリーズで,日本でも人気がありました。棒人間が映画のような大立ち回りをするもので,当時は Flash の可能性を示して余りあるものだったろうと思います。
これも問題なく再生できます。
なお,他の小小作品は以下から参照できます。
a tissue of lies △
ネットで公開されていたインディー曲に動画をつけた MV です。ParaFla! で作られているとは思えないほど手が込んでいます。
残念ながら音が出ません。なお,この曲には別の方による Flash もあり,こちらは音が出ます。
声にならない叫びとなって △
よくわからない勢いのある Flash アニメーションです。00 年代半ばの 2ch Flash 板様式が反映されています。当時の PC では再生が重く,よくベンチマーク代わりに再生していた記憶があります。
再生自体はできますが,大きな音ズレが発生します。
駅のホームで ◎
2008 年公開と Flash アニメーションとしては末期のものです。
比較的新しい(と言っても実に 13 年前ですが)作品であるにもかかわらず,音ズレなく完璧に動作しています。
おわりに
以上,Ruffle の導入方法を紹介するとともに,思いついた Flash での動作状況を簡単に確認してみました。想像以上に多くの Flash ゲーム・アニメーションが動作したというのが率直な感想です。Ruffle の完成度と今後の可能性を示していると言えるでしょう。
余談ですが,以上に掲載した Flash の URL を探すのにはなかなか苦労しました。運良く Internet Archive がすばらしい働きをしてくれていても,その URL を知るための発リンクが今のウェブ上からは失われてしまっているのです。Wayback Machine にも検索機能がありますが,実用的ではありません。忘れられた個人ブログのとりとめのない短いメモでも,かけがえのない情報源となりました。
おそらく永久に失われてしまった作品もあります。Flash で OP を作っていたある無料ゲームのことを思い出して,Geocities の URL も探り当てることができたのですが,マイナーゆえに Wayback Machine にもなく,ミラーも存在しないようです[ref]ちなみに「麦屋」というクイズゲームです。[/ref]。
歴史は今も失われつつあります。
もちろん,サイト・作品が放棄されるのは,少なくともある程度は作者の意図によるものでしょう。しかし,必ずしも作者自身がそのコンテンツの最大のファンというわけではありません。インターネットは広大で,思っている以上にさまざまな人にリーチしているものです。個人的にも,別のサイトであるページを消したところ「あのページはもう読めないのか」との連絡がきてあわてて戻した経験があります。
これまで述べてきたように,ウェブ上で失われつつあるコンテンツの保存に Internet Archive が大きな役割を果たしているほか,GeoLog Project のように個人で動いている人もいます。
そのような積極的な活動はできないにしても,個人の範疇で,自分にとって重要なコンテンツを手元に保存する習慣を持つべきかもしれません。
Ruffle は FLOSS であり,人々の貢献によって支えられています。以下に Ruffle プロジェクトへの寄附のリンクを示します。
2021-01-30 Chromium での導入方法を追記
投稿にあたり,完全な IP アドレスが保存されます(公開されません)。
コメントはスパムフィルタで処理され,承認後に公開されます。