ツクールMV 1.3.1 のメモリリーク対策パッチを公開しました

※コアスクリプト 1.3.4 以降では 既に修正されていますので、このプラグインは必要ありません。

RPGツクール1.3.1 にはメモリリークのバグがあり、今回その対策パッチを公開しましたのでお知らせ致します。

なお、バグの原因およびパッチについては既に公式にレポート済みで、次回バージョンで適用していただけるとのことです。

対策パッチはこちらからダウンロードできます。
https://gist.github.com/oggy83/08851bce158191450c42535cdb0e9746

で、何をどう修正したの?

ツクール1.3からテクスチャGC機能が搭載されました。これは、使用していない画像データを自動的に破棄することで、無駄なメモリ消費を抑える効果がありますが、実は RenderTexture と呼ばれるものについては、破棄の対象になっていませんでした。

RenderTexture はプラグインなしの状態では、メニュー開閉時およびマップ移動時に作られますので、これらの操作を行う度に、内部でどんどんこの画像データが溜まっていってしまっていました。その結果、例えば、メニュー開閉をし数十秒連打するだけでメモリ不足となり、最悪、プログラムがクラッシュしてしまう場合がありました。

今回、私が作成したパッチを適用すれば、新たに RenderTexture を作成する前に、古いものを削除するようになりますので、メモリリークを防ぐことができます。

より詳細な説明が欲しい方はこちらをどうぞ(英語)

注意事項

  • このメモリリークは、ツクール1.3以降、かつ WebGLモードのときに発生していました。
  • 対策パッチが効果を保証できるのは、プラグインなしのツクールに対してのみです。お使いのプラグインが独自に RenderTexture を生成し、それを破棄していない場合は防げません(とはいえ、大抵のものは大丈夫かと思います)。
  • テクスチャGCは1分程度の間隔で走っています。メニュー開閉を高速で繰り返すなどして、GCが走る前にメモリが枯渇してしまえば、パッチを適用したとしても、やはりクラッシュしてしまいます。通常のプレイの範囲では大丈夫かと思いますが、モバイル環境ではあやしいかもしれません。このあたりは別途対策が必要に感じます。
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする