テストプレイ時、画面の左上に処理にかかった時間を表示します。
基本情報
前提スクリプト
拡張タイプ
★ 既成 (導入するだけでゲームの挙動が変化する)
説明
概要
テストプレイ時、画面の左上にフレームごとの処理時間を表示します。
時間計測は Graphics.update が呼ばれたタイミングで行います。
- 計測された時間は一時変数に蓄積され、Graphics.frame_rate / Update_Freq 回目のGraphics.update が呼ばれたときに左上の表示に反映します。
- 基本的には「1 秒につき Update_Freq 回更新する」ということです。
- 表示される数値は「ゲーム内の 1 秒を処理するのに現実でかかった時間(ミリ秒)」を意味します。つまり、1000前後が正常な状態、1000を大きく超える場合は何らかの処理落ちが発生している状態ということになります。
- 表示される情報は、上から順に下記のように並んでいます。
① 前回の Graphics.update が呼ばれてからの時間(の累積)
- つまり、画面更新そのものを除く全ての処理時間の合計です。
- これが大きいほど「重い」状態ということになります。
- 直近の 1 秒間でメインループの処理時間が 1F(60FPS なら約 0.017 秒) を超えることがあった場合、この数値が赤く表示されます。
- トランジション(Graphics.transition)などにより Graphics.update が呼ばれない画面更新が行われた場合は 1000 を超えることがあります。
② Graphics.update 自体により経過した時間(の累積)
- 通常、① との合計がちょうど 1000 となるように調節されています。
- 直近の 1 秒間で画面表示の処理時間が 1F を超えることがあった場合、この数値が赤く表示されます。
- RGSS_Player が非アクティブ(=他のアプリを操作中)だった場合 1000 を超えることがあります。
③ ①と②の合計
- 通常、ちょうど 1000 となるように ② が調節されています。
- 測定値の累積により、995-1010 程度のばらつきはあります。
- 直近でフレームスキップが一度でも発生すると、この数値が赤く表示されます。
- 「フレームスキップ」とは、Graphics.updateにかかる時間が 1F を超えそうなときに、画面更新を飛ばして次のループに移るというRGSSの機能のことです。
- フレームスキップが発生すると、F2 キーでタイトルバーに表示されるFPSの値が 60(Graphics.frame_rate)よりも小さくなります。
備考
再定義されるメソッド
なし
設定項目
- Update_Freq <既定値 1 >
- 1 秒に何回更新するか
更新履歴
- 2021/01/07 重いときに色が赤くなる機能を追加
- 2020/12/28 公開
- こんにちは。不具合を発見したのでご報告いたします。 LNS000 組み込み拡張 LNS010 Input拡張 LNS100 プリセット拡張 LNS102 マウス操作 LNS140 マップ/キャラ拡張 の5つを導入した状態で、マップ画面でマウスカーソルをゲームウインドウの外側で大きく動かすなどすると、「 スクリプト 'LNS 140 マップ/キャラ拡張' の 980 行目で IndexError が発生しました。 index -1 too small for array; minimum: 0 」というエラーメッセージが表示され、ゲームが終了してしまいます。 スクリプトは全て最新で、内容は改変していません。 -- 2022-07-26 01:29:40
- 確認が遅れましたが、対応修正しました。正確には「既に対応済みであったがアップロードを忘れていた」という状態でした…… -- 2022-11-01 15:39:07
- 対応ありがとうございます!しかし LNS000, 010, 100, 102, 140 の5つを入れた状態で起動直後に「スクリプト 'LNS140 マップ/キャラ拡張' の 1719 行目で NameError が発生しました。 undefined method 'lns102_dash?' for class 'Game_Player'」と表示され、終了します。 -- 2022-12-24 16:39:35
最終更新:2021年01月07日 20:30