Closed elleonard closed 1 year ago
MakeScreenCaptureにおいて、Scene_Bootなどのウィンドウレイヤーを持たないシーンでキャプチャを撮影しようとするとエラーが発生するため、修正案のPRを出します。
MZ版は PluginCommonBase にコピーされた convertEscapeCharacters を使うようになっているため、ウィンドウレイヤーを持たないシーンでのキャプチャに不都合はありません。 SceneManager._sceneがnullの状態でキャプチャしようとすると落ちますが、これは通常、起動直後の一瞬だけですので問題にはなりにくいと思います。
convertEscapeCharacters
ウィンドウレイヤーを持たないため、制御文字変換のためダミーのウィンドウオブジェクトを生成します。
$gameSystem や $gameVariables が初期化されておらず、ウィンドウオブジェクトの生成や \V 制御文字の変換でエラーになってしまうこと、このシーンでのスクリーンショットは流石に需要がないだろうということから、キャプチャの保存自体を無効化します。
$gameSystem
$gameVariables
\V
MZ版では制御文字の変換時に $gameVariables が初期化されていなかった場合、制御文字そのものを消す処理を行っており、この点でMZ版と仕様がズレてしまいますが、今回はコードの複雑さを避けるためこうしています。
MakeScreenCaptureにおいて、Scene_Bootなどのウィンドウレイヤーを持たないシーンでキャプチャを撮影しようとするとエラーが発生するため、修正案のPRを出します。
MZ版は PluginCommonBase にコピーされた
convertEscapeCharacters
を使うようになっているため、ウィンドウレイヤーを持たないシーンでのキャプチャに不都合はありません。 SceneManager._sceneがnullの状態でキャプチャしようとすると落ちますが、これは通常、起動直後の一瞬だけですので問題にはなりにくいと思います。ウィンドウレイヤーを持たないシーンでの処理
ウィンドウレイヤーを持たないため、制御文字変換のためダミーのウィンドウオブジェクトを生成します。
ゲームオブジェクト初期化前のシーン (Scene_Bootなど) での処理
$gameSystem
や$gameVariables
が初期化されておらず、ウィンドウオブジェクトの生成や\V
制御文字の変換でエラーになってしまうこと、このシーンでのスクリーンショットは流石に需要がないだろうということから、キャプチャの保存自体を無効化します。MZ版では制御文字の変換時に
$gameVariables
が初期化されていなかった場合、制御文字そのものを消す処理を行っており、この点でMZ版と仕様がズレてしまいますが、今回はコードの複雑さを避けるためこうしています。