Graphics.frame_resetを多用しても問題ない?
Posted: 2017年6月03日(土) 01:17
今、VXAceのマップ画面のフレームスキップ(「カクつき」現象)を減らすための
効果的な方法を探しています。
安定した描画はゲームの基礎となるもので、安定していないとゲームの中身が良かろうが悪かろうが
全く見てもらえなくなります。特に2Dでスクロールのカクつきは厳しいです。
「カクつき」現象に限っては、絶対に解決しなくてはなりません。
Graphics.frame_resetについて詳しい方、
または詳しい解説サイトをご存じの方いらっしゃいませんか。
ヘルプは勿論、解説サイトも私なりに調べてはみましたが、ヘルプ以上のことを語っているサイトは
無さそうです。
前提として、ウィンドウモードでのプレイです。全画面は使用しません。
VXAceのマップ画面ではPCのスペックが足りていても
標準ではフレームスキップが多く発生することがあります。
素材RGSS3を一切組み込んでいない初期プロジェクトのサンプルマップでも
キャラクターを歩かせていると発生するので、簡単に確認することができます。
現在、次の方法でフレームスキップの発生を相当程度抑え、目立たなくする
ことができることが分かっています。検証期間が短いため安定性は不明です。
・ゲームモードON(Creators Update以降は、設定しないとむしろCPUを割り当ててくれない)
・標準の 60 FPS を 80 FPS に変更 (70 FPSは効果なし。75 FPSは効果あり。80 FPSは暫定値)
・「画面描画のちらつきを抑える」にチェックON
チェック無しでは(80 FPSで描画されてしまうため)余計悪化。カクつきの見本市状態。
・適切なタイミングで、フレーム毎に Graphics.frame_reset を使用する。
どのタイミングがベストかは調査中
フレームスキップ(「カクつき」現象)が完全に無くなるわけではなく、発生回数が減り
発生しても目立ちにくくなるといった改善効果です。
こんな方法でなぜ改善するのか理由はよくわかりませんが
どうもVXAce本体側の「60 FPSを保つための仕組み」には、些細なバグが残っている
としか考えられません。些細なものなのでフレームスキップは稀にしか発生しません。
しかし、マップのスクロール中のフレームスキップは1回でも目立つため非常に気になります。
この点は、本体側の描画のロジックが優れているウディタが羨ましくなりますね。
VXAce本体側の修正はもう無いですよね……。ということは、RGSS3側で何とかするしかありません。
また上記の方法には欠点もありまして、FPSの測定が全くできなくなります。
タイトルバーには常時 "61 FPS" と表示されます(本当に 61 FPSとなっているわけではない)
プレイする上での不都合はありませんが、制作中は面倒かもしれません。
これは質問でもあるのですが、
Graphics.frame_resetを使いまくりますので(毎秒80回)、
何か見落としている重大な欠点や、副作用がないかどうか知りたいです。
効果が無かったり、逆効果になるケースもあると思いますので、
そのあたりはテストプレイなどで調べて判断すればいいかなと考えています。
複雑で、答えにくい質問ですみません。
基本、私が時間をかけて調べて、結果を報告すればいいことだとは思っています。
安定して動くなら、素材化してもいいでしょう。
ただ、それには時間がかかりますし、限界もあります。間違った方向に進むこともあります。
詳しい方に教えていただけたら、とても嬉しいです。
効果的な方法を探しています。
安定した描画はゲームの基礎となるもので、安定していないとゲームの中身が良かろうが悪かろうが
全く見てもらえなくなります。特に2Dでスクロールのカクつきは厳しいです。
「カクつき」現象に限っては、絶対に解決しなくてはなりません。
Graphics.frame_resetについて詳しい方、
または詳しい解説サイトをご存じの方いらっしゃいませんか。
ヘルプは勿論、解説サイトも私なりに調べてはみましたが、ヘルプ以上のことを語っているサイトは
無さそうです。
前提として、ウィンドウモードでのプレイです。全画面は使用しません。
VXAceのマップ画面ではPCのスペックが足りていても
標準ではフレームスキップが多く発生することがあります。
素材RGSS3を一切組み込んでいない初期プロジェクトのサンプルマップでも
キャラクターを歩かせていると発生するので、簡単に確認することができます。
現在、次の方法でフレームスキップの発生を相当程度抑え、目立たなくする
ことができることが分かっています。検証期間が短いため安定性は不明です。
・ゲームモードON(Creators Update以降は、設定しないとむしろCPUを割り当ててくれない)
・標準の 60 FPS を 80 FPS に変更 (70 FPSは効果なし。75 FPSは効果あり。80 FPSは暫定値)
・「画面描画のちらつきを抑える」にチェックON
チェック無しでは(80 FPSで描画されてしまうため)余計悪化。カクつきの見本市状態。
・適切なタイミングで、フレーム毎に Graphics.frame_reset を使用する。
どのタイミングがベストかは調査中
フレームスキップ(「カクつき」現象)が完全に無くなるわけではなく、発生回数が減り
発生しても目立ちにくくなるといった改善効果です。
こんな方法でなぜ改善するのか理由はよくわかりませんが
どうもVXAce本体側の「60 FPSを保つための仕組み」には、些細なバグが残っている
としか考えられません。些細なものなのでフレームスキップは稀にしか発生しません。
しかし、マップのスクロール中のフレームスキップは1回でも目立つため非常に気になります。
この点は、本体側の描画のロジックが優れているウディタが羨ましくなりますね。
VXAce本体側の修正はもう無いですよね……。ということは、RGSS3側で何とかするしかありません。
また上記の方法には欠点もありまして、FPSの測定が全くできなくなります。
タイトルバーには常時 "61 FPS" と表示されます(本当に 61 FPSとなっているわけではない)
プレイする上での不都合はありませんが、制作中は面倒かもしれません。
これは質問でもあるのですが、
Graphics.frame_resetを使いまくりますので(毎秒80回)、
何か見落としている重大な欠点や、副作用がないかどうか知りたいです。
効果が無かったり、逆効果になるケースもあると思いますので、
そのあたりはテストプレイなどで調べて判断すればいいかなと考えています。
複雑で、答えにくい質問ですみません。
基本、私が時間をかけて調べて、結果を報告すればいいことだとは思っています。
安定して動くなら、素材化してもいいでしょう。
ただ、それには時間がかかりますし、限界もあります。間違った方向に進むこともあります。
詳しい方に教えていただけたら、とても嬉しいです。