Windows版のRPGツクールMZでmacOS向けにデプロイメントすると、書き出されたGame.appはそのままでは起動しません。圧縮ソフトの問題ではなく、書き出した時点で壊れています。
Windows上で、Macで正常に起動するzipを作成するツールを用意しました。ゲームフォルダをドラッグ&ドロップするだけです。Macは必要ありません。
Windows用 / 無料 / インストール不要
zipを展開すると、次のファイルが入っています。
ツクールMZでmacOS向けにデプロイメントしたフォルダを、mz_zipper_win.exeにドラッグ&ドロップします。
同じ場所に「フォルダ名.zip」ができます。元のフォルダは変更されません。
このとき、同梱されている起動できない場合.htmlをGame.appと同じ階層に入れておくことをおすすめします(理由は後述します)。
実行結果に表示される「シンボリックリンク : ○個」「実行ファイル : ○個」が0でなければ成功です。
0個と表示された場合は、Mac用に書き出されたフォルダかご確認ください。
この.exeはPythonのプログラムを実行ファイルに変換したものです。この形式は、WindowsのSmartScreenやウイルス対策ソフトに誤検知されることがあります。ウイルスではありません。
「WindowsによってPCが保護されました」と表示された場合は、「詳細情報」→「実行」で起動できます。
気になる場合は、同梱のソースコード(mz_zipper_win.py)をご確認ください。テキストファイルなので中身がそのまま読めます。Python 3をインストールすれば、.exeを使わずにpy mz_zipper_win.pyで実行することもできます。外部ライブラリは一切使っていません。
macOSは、インターネットからダウンロードしたファイルに「隔離属性」を自動的に付けます。これはダウンロードのたびに付き直すため、配布する側で事前に取り除いておくことはできません。またツクールMZが書き出すアプリには、Appleの署名がありません。
そのため、ダウンロードした方の環境では次の操作が必要になります。
Game.appを右クリックして「開く」を選ぶ(初回のみ)これはツール側では解決できません。同梱の起動できない場合.htmlを一緒に配布しておくと、問い合わせを減らせます。
Macでビルドされた正常なGame.appを入手し、その中にゲームのデータを入れて配布する方法もあります。手順はWindows環境でもRPG Maker MV/MZでmacOS版を簡単にデプロイする方法(Mirai氏)が詳しく、こちらもMacがなくても実行できます。
また、Mac環境をお持ちの方に、書き出しとzip化を依頼する方法もあります。
Windowsで圧縮ソフトを変えても解決しません。zip形式そのものは必要な情報を記録できますが、Windowsのディスクに置いた時点でその情報が消えているため、圧縮ツールには保存すべきものが残っていません。詳しくはなぜ壊れるのかをご覧ください。
上記の方法で配布する場合でも、次の2つの問題は残ります。どちらもWindowsのテキストエディタで直せます。Macは不要です。
Game.app/Contents/Resources/app.nw/package.jsonを開くと、名前がrmmz-gameになっています。
この名前は、プレイヤーのMac上でキャッシュの保存先を決めるのに使われます。初期値のままだと世界中のツクールMZ製ゲームがひとつのフォルダを共有してしまい、プレイヤーが別のゲームを遊んでいるだけで、あなたのゲームが起動しなくなることがあります。
ゲーム固有の名前(半角英数字とハイフン)に変更してください。
セーブデータには影響しません。ツクールMZのセーブは、ゲームフォルダ内のsaveフォルダに保存されるためです。
Game.app/Contents/Info.plistはテキストファイル(XML形式)です。この中に、NW.jsがもともと持っている「自分はブラウザである」という宣言が残っています。
そのままだとプレイヤーのMacで、HTMLファイルや画像のアイコンがゲームのものに変わったり、ダブルクリックでゲームが起動してしまうことがあります。
テキストエディタで開き、次の2箇所を削除してください。それぞれ<key>の行から、対応する</array>の行までが1セットです。
削除してもゲームの動作には影響しません。編集の際は、必ずバックアップを取ってから作業してください。
ツクールMZが同梱しているNW.jsは、Intel Mac用(x86_64)としてビルドされています。ツクールMZ本体が最新版であっても、同梱されるNW.jsは更新されません。実際にデプロイメントしたGame.appを調べると、次のようになっています。
NW.jsがApple シリコンに公式対応したのは v0.77.0(2023年6月、Chromium 114) からです。ツクールMZが同梱しているものは、それより2年以上前のバージョンにあたります。
Apple シリコンのMacでは、Rosetta 2という変換機能を通して動作します。動作自体に問題はありませんが、次の点にご留意ください。
「Rosettaのインストールを求められたが大丈夫か」と問い合わせを受けることがあります。正常な動作ですとお答えいただければ問題ありません。
nwjs.ioから新しいバージョンを入手して差し替えれば、Apple シリコンでネイティブ動作させることもできます。ただしおすすめはしません。
NW.jsのバージョンが大きく変わると、ChromiumやNode.jsのバージョンも変わります。プラグインが動作しなくなったり、これまで動いていた処理が変わったりする可能性があり、Macで動作確認できる環境がないまま差し替えるのは危険です。
差し替える場合も、Windows上で作業したあとは、必ず上記のツールでzip化してください。ダウンロードしたNW.jsをWindowsで展開した時点で、同じように壊れているためです。
Macをお持ちでないと現象を確認できないため、報告内容から原因を判断することになります。下の表をご覧ください。
| プレイヤーからの報告 | 原因 | あなたがすべきこと |
|---|---|---|
| アプリケーション“Game.app”を開けません、と出る | Windowsで書き出したため、実行権限とリンクが失われている | 対処法のページを案内する (プレイヤー側で修復できます) 次回配布からツールで予防 |
| “Game.app”は壊れているため開けません、と出る | ダウンロード時に付く隔離属性 | 対処法のページを案内する (配布側では対処できません) |
| nwjsが予期しない理由で終了しました、と出る | 他のツクールMZ製ゲームのキャッシュと衝突している | 対処法のページを案内する 次回配布からpackage.jsonの名前変更で予防 |
| Rosettaのインストールを求められた | 同梱のNW.jsがIntel用のため(正常な動作です) | 指示に従って導入するようご案内する Apple シリコンについて |
| ファイルのアイコンが勝手に変わった | Info.plistの宣言が残っている | トップページを案内する 次回配布からInfo.plistの修正で予防 |
いずれもプレイヤーの方に手間をかけさせてしまいます。配布ページに対処法のページへのリンクを添えておくと、問い合わせを減らせます。
技術的な背景です。読み飛ばしていただいても、配布には支障ありません。
Game.appの中身は、単なるファイルの集まりではありません。macOSが実行するために必要な情報が2つ含まれており、そのどちらもWindowsのファイルシステムであるNTFSには保存できません。ツクールMZがMac用のテンプレートをWindowsのディスク上に展開した時点で、この2つは失われます。
macOSのフレームワークは、実体をVersions/の下に置き、その上の階層からシンボリックリンクで参照する構造です。Windowsを経由すると、このリンクが「リンク先のパスを書いただけの数十バイトのファイル」に置き換わります。
壊れている状態(Windows経由)
-rw-rw-r-- 24 Helpers -rw-rw-r-- 34 Internet Plug-Ins -rw-rw-r-- 26 Libraries -rw-rw-r-- 31 nwjs Framework -rw-rw-r-- 26 Resources -rw-rw-r-- 28 XPCServices
正常な状態
lrwxr-xr-x Helpers -> Versions/Current/… lrwxr-xr-x Internet Plug-Ins -> … lrwxr-xr-x Libraries -> Versions/Current/… lrwxr-xr-x nwjs Framework -> … lrwxr-xr-x Resources -> Versions/Current/… lrwxr-xr-x XPCServices -> …
先頭がlならリンク、-なら通常ファイルです。壊れている側の24〜34バイトという中途半端なサイズは、パスの文字列そのものです。壊れるのは計7箇所あります。
macOSでは、実行できるファイルに「実行権限(実行ビット)」が必要です。Windowsにはこの概念自体が存在しないため、ディスクに置いた瞬間に情報の保存先がなく、消えます。
壊れている状態(Windows経由)
-rw-rw-r-- Contents/MacOS/nwjs 実行権限つきのファイル: 0個
正常な状態
-rwxr-xr-x Contents/MacOS/nwjs 実行権限つきのファイル: 16個
ゲーム本体であるContents/MacOS/nwjsが実行できないため、「アプリケーション“Game.app”を開けません」と表示されます。
Mac環境をお持ちの方に依頼する場合、あるいはご自身でMacを使える場合の手順です。
Macで作業
Finderの「圧縮」でも通常は問題ありませんが、確実なのはdittoです。
ElectronやNW.js製アプリを配布する際の定番の方法で、Appleの公証(notarization)手順でもdittoが指定されています。リソースフォークとシンボリックリンク、実行権限を保持したまま固められます。
なお、圧縮元のフォルダがすでに壊れていては意味がありません。Windowsマシンを経由したフォルダや、GoogleドライブやDropboxなどで同期したフォルダは、その時点で情報が失われていることがあります。
ツクールMZが書き出すアプリにはDeveloper IDによる署名も公証もありません。そのため、どの方法で配布しても、ダウンロードした方は初回のみ右クリック>「開く」が必要になります。これは圧縮方法では解決できませんので、配布時に一言添えておくと親切です。
« Mac版RPGツクールMZ製ゲームが起動しないときは(プレイヤー向けのトップページ)