ページ 1 / 1
【解決済み】テストプレイで強制終了してしまう原因がわかりません
Posted: 2016年11月01日(火) 22:34
by 吉 良
初めまして、吉良と申します。
初めてツクールシリーズを購入し、ピクチャを多用する着せ替えゲームを作っていたのですが
最近になりテストプレイ時に画面がブラックアウトし強制終了してしまうようになりました。
ゲームを起動直後にピクチャを大量に切り替えるとこの症状が起きるのですが
テストプレイを起動して一分ほどおいてから動かすとこの現象が起きません、
画像をプリロードさせていてもこの現象が起きるため非常に困っています。
どなたかお分かりになる方がいらっしゃいましたら解決策を教えていただけますでしょうか。
プロジェクトデータを下記にアップロードしております。
成人向けの着せ替えゲームのため性的表現が多く不快に感じる方もいらっしゃると思いますが
大丈夫という方は是非助けていただければ幸いです。
Pass:MV2016
http://fast-uploader.com/file/7033562062769/
起動後に宝箱を開け右クリックで着せ替え画面に移行、その後左下のランダムボタンを連打していると
ブラックアウトし強制終了してしまいます。
一定時間経過後は連打しても終了しなくなります、
どうぞよろしくお願いいたします。
Re: テストプレイで強制終了してしまう原因がわかりません
Posted: 2016年11月02日(水) 00:10
by まっつUP
吉 良様
お世話になります。
やってみたところ、ブラックアウトや強制終了は起こしませんでした。
単純に処理が重すぎるのではないかと思います。
( というか、イベント処理が煩雑で処理の遷移が不明瞭です。)
ピクチャの処理に関しては
ピクチャの表示・回転は比較的重いイベントコマンドらしいなので
並列処理によって頻繁に使い倒すのは避けたいところです。
(移動や消去はあまり重くないらしいです。)
また並列処理にウェイトが一切入っていないことがありました。
並列処理は条件を満たすときほぼ毎フレーム実行されるのでウェイトで休めないと重くなりやすいです。
変数の操作やピクチャの表示を短い間隔で連続して行うと重くなると思います。
条件分岐はあまり重くないので、条件を満足した時並列処理を中断するとかなら
大丈夫かもしれません。
マップイベントにも並列処理があるようですが
隣接する自動実行と条件が同じでした。
混乱の原因になりますので条件を同じにするのは避けた方がいいと思いました。
また、マップイベントも数が多いと重くなりやすいので極力少なくした方がいいです。
Re: テストプレイで強制終了してしまう原因がわかりません
Posted: 2016年11月02日(水) 08:14
by 吉 良
まっつUP様、早速の御回答ありがとうございます。
何もわからないところから手探りでイベントを作っていたため
処理が無駄に煩雑になっているかなとは自分でも思っておりました。
並列処理やその他イベントの中身を見直して処理を軽くするように
修正してみます。
見辛いイベントを細かく見ていただきましてありがとうございました。
Re: テストプレイで強制終了してしまう原因がわかりません
Posted: 2016年11月02日(水) 17:45
by まっつUP
プロジェクトを修正されるようなので
ダウンロードしていたこちらのプロジェクトは削除しておきました。
何かあればまたの機会に。
Re: テストプレイで強制終了してしまう原因がわかりません
Posted: 2016年11月02日(水) 20:25
by 吉 良
現在処理が軽くなるようにイベントを見直しているのですが
強制終了する際に
Error
Uncaught TypeError:Cannot read property 'width' of null
という表示がたまに出てくるようになりました。
これが処理を軽くしていけば解決するものなのか
また自分のPCのスペックが低いせいなのか調べているのですが未だわかっておりません。
もし原因がわかるかたがいらっしゃいましたら、
また私がアップロードしたデータで強制終了した方がいらっしゃいましたら
教えていただけたらと思います。
よろしくお願いいたします。
Re: テストプレイで強制終了してしまう原因がわかりません
Posted: 2016年11月03日(木) 18:24
by トリアコンタン
エラーメッセージ単独で原因を特定することは難しく、
あくまで可能性ですが、こちらで管理している障害のNo.1に該当する可能性があります。
https://docs.google.com/spreadsheets/d/ ... 1574986713
当該エラーは「ピクチャの表示」「ウェイト1フレーム」「ピクチャの消去」の順番でイベントを実行した場合にまれに発生します。
入れてみて症状が改善しない場合は、またご相談ください。
Re: テストプレイで強制終了してしまう原因がわかりません
Posted: 2016年11月04日(金) 08:11
by 吉 良
トリアコンタン様、ありがとうございます。
いつもプラグインを使わせていただいてます。
早速プラグインをいれたところメッセージは出なくなったのですが
強制終了の症状は治りませんでした……
一定時間放置してからだとこの症状は起きないので
内部的な処理と関連してるのかなと思うのですが
そこからがまったくわからず、お手上げ状態です。
問題個所がどこなのか、もう少しがんばってみようと思います。
ありがとうございました。
Re: テストプレイで強制終了してしまう原因がわかりません
Posted: 2016年11月04日(金) 21:25
by トリアコンタン
お疲れさまです。
不定期の強制終了かつ、ピクチャを多用しているケースではメモリが枯渇している(メモリリークとは違います)可能性が高いです。
起動直後に大量のピクチャを一気に表示することで、一時的にメモリ使用量が跳ね上がるため発生しているものと思われます。
イベントの組み方を工夫する以外の解決法として、さば缶様がパフォーマンスプラグインを作成されています。
こちらはピクチャを多用するゲームに対して一定の効果があるようです。(別途規約をご確認の上ご使用ください)
ただし、現状では本体バージョン1.3.2以降では動作しない可能性があります。
https://raw.githubusercontent.com/sabak ... ormance.js
また、こちらでも「並列プリロードプラグイン」を公開しています。ただし、当プラグインは1.2.0の頃に作成されたもので
1.3系での動作確認は不十分なのが現状です。あくまでダメ元でお試しください。
https://raw.githubusercontent.com/triac ... Preload.js
Re: テストプレイで強制終了してしまう原因がわかりません
Posted: 2016年11月05日(土) 00:57
by 吉 良
トリアコンタン様、ありがとうございます!
さば缶様のパフォーマンスプラグインを導入したところ
強制終了しなくなりました。
この症状が起きだしてから、ずっと悩んでいたので
本当に助かりました!
ありがとうございました。