[GameMaker: Studio] 1.4.1760以降のHTML5出力でPhysicsが使えない(追記あり)

これは困りました。
v1.4.17601763Physicsを使用すると、HTML5では動作しなくなっています。


gms_phy_test_1

このように、もうこれ以上にシンプルにできないというプロジェクトでさえ動きません。

試しにv1.4.1757まで戻してみると、同じプロジェクトでも正しく動作しました。


1763ではIEの開発者ツールを立ち上げるとIEが丸ごと落ちるという恐ろしい状態です。
Firefoxの開発者ツールは大丈夫だったので、17571763でコンソール出力を比べてみました。

1757は問題ないですね。

gms_phy_test_2

1763はこのように、未定義変数の参照エラーが無限ループしています。

gms_phy_test_3


デバッグ実行だとプロジェクト自身のコードは難読化されないので見比べてみましたが、そちらは特に問題はありませんでした。

それ以下の難読化されたGM:Sのコア部分には違いがあり、未定義エラーもそこで発生しているようです。

おそらくはscripts.html5.zipの中のファイルに問題がありそうですが、このアーカイブはパスワードがかけられているので、自力で修正するのは難しそうです。


1760で多数の不具合修正や大きな変更がありAndroidlibPNG問題も解決されているため、現状では1760もしくは1763はどうしても使わざるを得ないので、Physicsを使用する場合は当面HTML5出力は諦めるしかなさそうです。

どうしてもという場合は、HTML5出力だけ1757に戻すということになりますが、1757HTML5にはオーディオバグがあるので注意が必要です。

 

 

 


[追記]

これはちょっと裏技というか強引な解決方法です。
非推奨なのでちょっと試す程度にしてください。

  • まず1.4.1757をインストールします。
  • C:\Users\ユーザー名\AppData\Roaming\GameMaker-Studio\scripts.html5.zip
    をどこかにコピーしておきます。
  • 1.4.1763に更新します。
  • コピーしておいたscripts.html5.zipを上書きで書き戻します。

これで一応は1763でもHTML5Physicsが使えるようになりました。
やはり1760以降のscripts.html5.zipに問題があるようです。

ただ、この方法は古いバグは残ったままになりますし、本体とのバージョン不整合で何か他の問題が発生しないとも限りません。

試す場合は自己責任でお願いします。