【一応解決】Windows上のRPGツクールMZでMac向けにデプロイしたゲームがMacで動かない件

Telmina

ユーザー
 表題の件で困っております。

 本日より、MZで制作した自作ゲームとしては初めての作品のベータテストを開始しております。
  • 【テストプレイヤー募集】短編アドベンチャー「Maid vs Vampire」 | ツクールフォーラム
 現在、テストプレイに参加していただいている方の中にMacのユーザさんはいらっしゃらないのですが、自分自身も一応MacBook Pro 2018を所有しておりますので、これに最新OS「Big Sur」を適用した上で、そこでも自作ゲームが動くかどうか確認しようとしておりました。

 ところが、いざ実行しようとしたところ、「アプリケーション“Game.app”を開くためのアクセス権がありません。」などと言われてしまい、起動が拒否されました。
スクリーンショット 2020-11-23 13.19.02.png

 検索したところ、フォーラム内で次の記事が見つかり、参考になるかと思ったのですが、残念ながら今回のケースの解決には至りませんでした。
  • Mac版を公開する際のドキュメント | ツクールフォーラム
 実行に失敗したファイルは、制作をおこなっていたWindows PCからあらかじめzipで圧縮したものをMac上で展開した上で実行しようとしておりました。

 zipで圧縮する前の状態の「Game.app」をそのままMacに持ってきて実行したところ、正常起動を確認できました。

 とはいえ、zipで圧縮したものを展開すると起動できないというのは、配布する上では都合が悪いです。

 どなたか、本件について、解決法をご存じの方がいらっしゃいましたら、ご教示いただきたいと思います。よろしくお願い申し上げます。

 参考までに、自分のブログの記事も貼っておきます。
 

Telmina

ユーザー
 zipで圧縮する前の状態の一連のファイルをMacで取得し、Mac上で圧縮してしまえば、それをMac上で展開しても問題なくゲームを実行できることは確認しました。
 …が、できればあんまりMacを起動させたくないので、できればデプロイ→圧縮作業をWindows上で完結させたいですね。
 Windows版のツクールでゲームを制作してMac版も配布している方は、この問題にどうやって対処していますでしょうか???
 

laputa

ユーザー
Telmina様へ

参考になるかはわかりませんが、今回のケースでは、次のパターンでうまくいけば、
おそらくWindowsでの圧縮作業で何らかのトラブルがある可能性があります。

<根拠>
まず、Macで圧縮したケースでは問題が起きていません。
ですので、Windows用のアプリを書き出して、Macで圧縮したデータを
Windowsで解凍した場合、うまく起動できれば、
Windowsでの圧縮で何かしらのトラブルが起きていると考えられます。

<実験>
マック版Steamの環境でWindows用の実行アプリを書き出し、
マックで圧縮して確認しました。

仮想ソフトでのWindows10で解凍し実行。
起動を確認できました。

また、マック用のアプリをWindowsで圧縮したケースでは
解凍後のアプリは実行できませんでした。
マックでの圧縮では解凍後実行できました。

以上から、おそらくWindowsでの圧縮での
トラブルではないかと考えられます。

追記:
Windows環境で圧縮しその場で解凍するテストを追加しました。
Windowsで解凍するため、Macでの解凍に問題がある場合、
結果が異なります。

テストしたところ、解凍後のプロジェクトフォルダをMacへコピーし、
アプリを実行したところ、実行できませんでした。

圧縮しなかったらどうなるのか?
テストしてみました。

マックアプリをWindowsにコピーしてそのままMacへ再度コピーして実行しました。
結果、実行できませんでした。
元のアプリは実行できました。

また、WindowsアプリをWindowsで圧縮し、解凍した場合、
Windowsで実行できました。

上記から、圧縮なしでも実行できないケースが存在するため、
圧縮でのトラブルではなかったようです。
 
最後に編集:

Telmina

ユーザー
 laputa様、返信ありがとうございます。
 反応が遅くなってしまい申し訳ありません。

 詳細にテストしていただきありがとうございます。

<実験>
マック版Steamの環境でWindows用の実行アプリを書き出し、
マックで圧縮して確認しました。

仮想ソフトでのWindows10で解凍し実行。
起動を確認できました。

また、マック用のアプリをWindowsで圧縮したケースでは
解凍後のアプリは実行できませんでした。
マックでの圧縮では解凍後実行できました。

 先ほど自分も、(Windows版Steamのツクールですが)Windows用の実行アプリを書き出し、それをMac環境で圧縮し、Windowsで展開したところ、通常どおりゲームを実行できました。セーブももちろん可能でした。

 また、Mac用の実行アプリを書き出し、それを圧縮しない状態でMacに持ってゆき圧縮し、同じMac環境で展開したときも、ゲームを起動できました。

 やはり、Windows版でMac用のアプリを書き出し、それをWindows上で圧縮し、Mac上で展開すると、どうやっても実行できませんでした。

 なお、Windows上では下記のソフトでの圧縮を試し、Mac上で展開した実行ファイルの起動がすべてNGであることを確認しました。
 Mac上での圧縮(zip)、展開(zip、7z)は、Mac標準機能でおこなっています。
 また、Macで圧縮したファイル(zip)のWindows上での展開は、Windows標準機能でおこないました。

マックアプリをWindowsにコピーしてそのままMacへ再度コピーして実行しました。
結果、実行できませんでした。
元のアプリは実行できました。

 自分も同じことをしてみましたが、(Mac側でWindows端末へのコピーとさらにそれのMacへの書き戻しをやったせいかもしれませんが)実行できてしまいました。

 いずれにしても、しばらくMacを手放せそうにはありません(苦笑)。

 日を改めて、別の視点からも確認してみることにします。
 

Telmina

ユーザー
 標題の件、やっと確認する時間をとれましたので、いろいろと試してみました。

 いずれも「RPGツクールMZ」のWindows版でMac向けにデプロイした同一のゲームプログラムについて。

 まずは、Windows PCからMacに持ち込んだ手段について。
  • 「Game.app」を圧縮せずに持ち込む
    • 起動成功
  • Windows上で「Game.app」をzipで圧縮してそれをMac上で展開
    • 起動失敗
 ここまでがこれまでに判明していたものです。

 まずは、圧縮せずに持ち込んだファイルとzipから取り出したファイルに差分があるのかと思い、確認してみました。

コード:
diff -rq <非圧縮ファイル設置フォルダ>/Game.app/ <zipを展開したフォルダ>/Game.app/

 素材ファイルのうち、ファイル名が日本語になっているものが前者に存在し、その日本語が文字化けしたファイル名になっているものが後者に存在していました。

 次に、Windows上でzipファイルを作るときに文字化けしないようにしました。
 このようにして生成したzipファイルをMacに持ち込んで、先ほどと同じコマンドで差分を確認すると、今度は差分が出ません。にもかかわらず、やはりzipから取り出したゲームを起動することは出来ません。

 まさかと思い、Macのターミナルでls-alコマンドを打ってパーミッションを調べてみたら、非圧縮状態で持ち込んだゲームでは700、zipから取り出したファイルでは775になっていました…。なぜ?

 そこで、次のようにコマンドを打って、ゲームプログラムの中身すべてのパーミッションを無理矢理700に変更しました。

コード:
chmod -R 700 <zipを展開したフォルダ>/

 その後、パーミッションを変更したゲームを起動したら、無事にタイトル画面が表示されました。

 なお、先ほど素材ファイルの日本語ファイル名文字化けの件についても申し上げておりましたが、文字化けしたままの状態でゲームを進めると、その素材を使った場面に来たところでゲームがフリーズしてしまいます。Mac向けに配布する際は、必ず文字化け対策をとりましょう。

 …とは言っても、パーミッションとかどうすればいいんだよ。
 結局、Macの実機を持っていないと、配布用のパッケージを作ることは事実上不可能ということ?
 

fspace

ユーザー
横から失礼します。

 まさかと思い、Macのターミナルでls-alコマンドを打ってパーミッションを調べてみたら、非圧縮状態で持ち込んだゲームでは700、zipから取り出したファイルでは775になっていました…。なぜ?

ZIPフォーマット自体は異なるファイルシステムの違いを完全に吸収できるものではないようで、少し調べたところexternal file attributesにそれぞれのファイルシステム用の属性を書き込んでいるそうです。なので、Windowsで作成したZIPファイルにはWindows用のファイル属性しか書き込まれていないんじゃないでしょうか。

直接移した場合とZIPを介した場合で挙動が違うのは謎と言えば謎ですが、パーミッションの変換に関する仕様がなく、処理するプログラムも異なるのであればまあそういうもんかな、と。

 …とは言っても、パーミッションとかどうすればいいんだよ。
 結局、Macの実機を持っていないと、配布用のパッケージを作ることは事実上不可能ということ?

Mac用のZIPを作成できるWindows用ソフトが必要になりそうですね。あとはLinux環境を構築してそっちで作成すればあるいは。
 

laputa

ユーザー
お疲れ様です。

素材ファイルのうち、ファイル名が日本語になっているものが前者に存在し、その日本語が文字化けしたファイル名になっているものが後者に存在していました。

文字化けすることをネットで知りました。そこで文字化けを回避して解凍する方法を試してみたところ、
ゲームが壊れているというメッセージが出ました。

まさかと思い、Macのターミナルでls-alコマンドを打ってパーミッションを調べてみたら、非圧縮状態で持ち込んだゲームでは700、zipから取り出したファイルでは775になっていました…。なぜ?

そういうカラクリが潜んでいたのですか。
fspace様のコメントにありましたMac用のZIPを作成できるWindows用ソフトが見つかるといいのですが。
 

munokura

ユーザー
環境がない自分には興味深く拝見しました。

ZIPフォーマット自体は異なるファイルシステムの違いを完全に吸収できるものではないようで、少し調べたところexternal file attributesにそれぞれのファイルシステム用の属性を書き込んでいるそうです。なので、Windowsで作成したZIPファイルにはWindows用のファイル属性しか書き込まれていないんじゃないでしょうか。

WindowsのファイルシステムにLINUX系のパーミッション情報がないため、コピー・解凍時にMacで動作するソフトが自動的にパーミッションを書き込んでいるということですよね?
となると、Mac側の解凍アプリを変更することで、挙動が変わる可能性もありますよね?
例えば、下記アプリはMacで有名っぽい印象を受けるので、こちらでの解凍を試してみてはいかがでしょうか?

この辺りの手法が難しそうであれば、WSLをWindowsに入れてパーミッションを与えてから圧縮するくらいしか無さそうかな…と思います。

下記は全く関係ないソフトの一部の機能っぽいですが、Windows用アプリケーションでパーミッションをつけることも不可能ではない例にはなるかと思います。

ただ、結構特殊なニーズだからか、自分も探してみましたが見つかっていません。
 

Telmina

ユーザー
 皆様、返信が遅くなってしまい申し訳ありません。
 
この辺りの手法が難しそうであれば、WSLをWindowsに入れてパーミッションを与えてから圧縮するくらいしか無さそうかな…と思います。

 結局、WSLを用いてWindows PCにUbuntuをインストールし、下記のように作業をすることで、Mac上での展開と実行が出来るようになりました。
  1. Windows版「RPGツクールMZ」でMac向けにゲームをデプロイする。
  2. できあがったゲーム一式が格納されているフォルダごと、WSLの配下にあるディレクトリにコピーする。
  3. WSLでLinux(Ubuntu)にログインし、先ほどコピーしたディレクトリに対し、パーミッションを再帰的に700に変更する。
  4. 引き続きWSLのLinux(Ubuntu)でzipコマンドを実行し、当該ディレクトリを圧縮する。
  5. 生成したzipファイルをそのままMacにコピーする。
  6. Macの標準機能でzipを展開する。
  7. ゲームを実行する。
  8. 起動成功。
  9. ついでに、日本語のファイル名になっている素材を使った場面に到達しても問題なし。
これで、今後もしMacを手放さざるを得なくなった場合でも、Mac版のデプロイを出来そうです。念のため、しばらくは上記手段でデプロイしたあとも最低限の動作確認をしてから公開するつもりですが…。

例えば、下記アプリはMacで有名っぽい印象を受けるので、こちらでの解凍を試してみてはいかがでしょうか?

 実はこちらについてはまだ試していません。また、「ゲームを配信する立場」としてはダウンロードしてくださった方にこれを要求するわけにもゆきません。

 ただ、今後、ほかの方が作成されたゲームをあえてMacでプレイする際に、参考とさせていただきます。

Mac用のZIPを作成できるWindows用ソフトが必要になりそうですね。あとはLinux環境を構築してそっちで作成すればあるいは。
fspace様のコメントにありましたMac用のZIPを作成できるWindows用ソフトが見つかるといいのですが。

 昨日あたりにその手のWindows用ソフトがないか探してみたのですが、残念ながら見つかっていません。

 というわけで、先述の通り、しばらくWSLでどうにかすることにします。

 ご回答いただいた皆様、ありがとうございました。ひとまず解決とさせていただきます。
 

munokura

ユーザー
 実はこちらについてはまだ試していません。また、「ゲームを配信する立場」としてはダウンロードしてくださった方にこれを要求するわけにもゆきません。



お手間かとは思いますが、情報共有としてテスト情報だけでも提供いただきたいという気持ちがあります。

ツクールというツールのセールストーク的にPC初心者が大半で、「パーミッションって何?」という人は多いでしょう。
そういう層がWindowsで作成して、Mac用も公開した時に問い合わせを受けるのは確実でしょう。

その時に「このソフトで解凍いただければ、動作するはずです」とReadMeに書けるかどうかは大きな違いと思います。

現実に(侮蔑的な意味合いは無いと受け取っていただきたい)下記のような人がツクールを使用しているのですから。

ttps://tm.lucky-duet.com/viewtopic.php?t=10425
 

Telmina

ユーザー
 お疲れ様です。



お手間かとは思いますが、情報共有としてテスト情報だけでも提供いただきたいという気持ちがあります。

 お待たせ致しました。

 結論から述べますと、一応展開は出来るのですが、展開して即座にゲームを始めることが出来ず、ちょっと手間がかかることが判明しました。

 まず、展開後のゲームをパーミッションの問題で実行できなかったzipファイルをMacBook Proのデスクトップで展開し、そのままゲームを実行しようとしたところ、ゴミ箱に入れることを要求されてしまいました。
スクリーンショット 2020-11-30 21.21.38.png
 そこで、このファイルを開けるようにする必要があります。

 要求どおりゴミ箱に入れることはせず、Macの「システム環境設定…」→「セキュリティとプライバシー」の順に選択し、開いたウインドウで「一般」タブを選択すると、下の方に「"Game.app"は開発元を確認できないため、使用がブロックされました。」というメッセージと「このまま開く」ボタンが表示されます。そこで、そのボタンを押します。
スクリーンショット 2020-11-30 21.29.59.png
 再度ゲームを起動しようとすると、今度は開くかどうか尋ねられます。
スクリーンショット 2020-11-30 21.30.18.png
 しかし、ここで「開く」を選択すると開けるようになるかと思いきや、どういうわけか「Your browser does not support WebGL.」と言われてしまいます。
スクリーンショット 2020-11-30 21.28.05.png
 それでも開こうとすると、メッセージが変化し、「Please move the Game.app to a different folder.」と言われます。
スクリーンショット 2020-11-30 21.30.33.png

 適当に別のフォルダにGame.appを移したところ、ゲームが起動するようになりました。

 なお、その後元のフォルダに戻しても開くようです。

 ゲーム中、ファイル名が日本語になっている素材を採用しているシーンにたどり着いても、フリーズせずに普通にゲームを続行できました。

 …とはいえ、環境設定をいじるのも面倒なのかなと思っています。現在自分が制作中の自作ゲーム第4弾以降では、一応この展開方法についても参考程度にReadmeに書いておこうとは思いますが、初心者にこの方法を要求するのはちょっと厳しいかなと思っています。
 

munokura

ユーザー
レポートいただき、ありがとうございます。
自分はMac環境がないので、比較しようもないので、よそで質問をされた時の参考にさせていただきます。

ざっと見て「あれ?これ似た情報を見たことあるような?」と検索したところ、MVの時と解決方法は似ていると感じました。


根本がファイルシステムの問題で、パーミッションが設定できるWindowsアプリがあれば簡単になるのでしょうけれども、状況的には難しそうですね。
ただ、ファイル名はウェブ上でなければ日本語でも問題無さそうだというのは、大きな情報だと感じました。

大変、お手数をおかけしました。
情報共有いただき、ありがとうございました。
 

Telmina

ユーザー
ざっと見て「あれ?これ似た情報を見たことあるような?」と検索したところ、MVの時と解決方法は似ていると感じました。


 実は、ゴミ箱云々以降については完全にそちらの方を参考に作業を進めておりました。

 こちらとしても、今後の参考になりそうです。

 有用なソフトのご紹介をいただき、ありがとうございました。
 

ポテト修行

ユーザー
こんにちは。
私も、Windowsでゲーム開発した方が出力したMac用のGame.appを開けず、困っております。
OSはBig surです。

Telminaさんの解決方法、およびリンク先のMVの解決方法を試しましたが、下記で詰まっております。

 要求どおりゴミ箱に入れることはせず、Macの「システム環境設定…」→「セキュリティとプライバシー」の順に選択し、開いたウインドウで「一般」タブを選択すると、下の方に「"Game.app"は開発元を確認できないため、使用がブロックされました。」というメッセージと「このまま開く」ボタンが表示されます。そこで、そのボタンを押します。
View attachment 9277

私の場合は、「アプリケーション"Game.app"を開くためのアクセス権がありません。」と表示されます。
そのため、システム環境設定では「このまま開く」ボタンが表示されません。
スクリーンショット 2020-12-30 10.45.29.png
もちろん権限はあります。
スクリーンショット 2020-12-30 11.05.38.png

Macは先週初期化したばかりですので、私のMacBookの不具合かもしれません。
それならば諦めますが、もし解決策がありそうでしたら、アドバイスいただきたいです。
 

Telmina

ユーザー
こんにちは。
私も、Windowsでゲーム開発した方が出力したMac用のGame.appを開けず、困っております。
OSはBig surです。

Telminaさんの解決方法、およびリンク先のMVの解決方法を試しましたが、下記で詰まっております。



私の場合は、「アプリケーション"Game.app"を開くためのアクセス権がありません。」と表示されます。
そのため、システム環境設定では「このまま開く」ボタンが表示されません。

 Mac標準の方法でzipを展開するとそうなってしまいます。

 もしかして、展開ツール「The Unarchiver」を使ってzipファイルを展開した場合でもそうなってしまいますでしょうか?


 あと、ターミナルを開けるなら、Game.appのパーミッションを700に変更した上で実行するという手もあります。

Bash:
chmod -R 700 Game.app

 たぶん、パーミッションを変える方法のほうが手っ取り早いと思いますので、まずはそちらから試していただければと思います。
 

ポテト修行

ユーザー
 Mac標準の方法でzipを展開するとそうなってしまいます。

 もしかして、展開ツール「The Unarchiver」を使ってzipファイルを展開した場合でもそうなってしまいますでしょうか?


 あと、ターミナルを開けるなら、Game.appのパーミッションを700に変更した上で実行するという手もあります。

Bash:
chmod -R 700 Game.app

 たぶん、パーミッションを変える方法のほうが手っ取り早いと思いますので、まずはそちらから試していただければと思います。

返信ありがとうございます。

展開ツール「The Unarchiver」や、他の展開ツールを2つほど試したところ、
無事(?)に、「開発元を確認できないため〜」のエラーが出て先に進めました。
しかし、どれも一瞬だけゲームのウィンドウ(画面は真っ黒)が一瞬だけ表示された後、下記のエラーがでました。
スクリーンショット 2020-12-30 11.18.21.png
スクリーンショット 2020-12-30 11.17.40.png


また、「アーカイブユーティリティ」で展開したGame.appを、記載していただいたコマンドで権限変更したところ、
こちらも「開発元を確認できないため〜」のエラーが出て先に進めましたが、上と同じ「Gameが予期しない理由で終了しました」と出ました。

これらの解決方法はあるでしょうか。
ゲーム開発者の方とは連絡がとれるので、開発者の方のほうで作業が必要でしたら、お願いできると思います。
 

Telmina

ユーザー
返信ありがとうございます。

展開ツール「The Unarchiver」や、他の展開ツールを2つほど試したところ、
無事(?)に、「開発元を確認できないため〜」のエラーが出て先に進めました。
しかし、どれも一瞬だけゲームのウィンドウ(画面は真っ黒)が一瞬だけ表示された後、下記のエラーがでました。
View attachment 9624
View attachment 9625


また、「アーカイブユーティリティ」で展開したGame.appを、記載していただいたコマンドで権限変更したところ、
こちらも「開発元を確認できないため〜」のエラーが出て先に進めましたが、上と同じ「Gameが予期しない理由で終了しました」と出ました。

これらの解決方法はあるでしょうか。
ゲーム開発者の方とは連絡がとれるので、開発者の方のほうで作業が必要でしたら、お願いできると思います。

 済みません。反応が遅くなり申し訳ありません。

 多分、「予期しない理由」は、Macの権限の問題とはまた別の問題と思われます。

 本件につきましては、ゲームの作者様にご報告いただき、対処を依頼していただいた方が良いかと思います。

 お力になれず、申し訳ありません。
 

ポテト修行

ユーザー
こちらこそ、スレッドが解決済みですのにすみません。
開発者でないと対処が難しいとわかっただけでも、うれしいです。
解答ありがとうございました。
 
トップ