ゲーム開発において、フレームレートやリフレッシュレートの知識は重要です。しかし、これらの基本的な概念を解説した記事は意外と見つけにくいのが現状です。そこで、この機会に簡単に説明してみたいと思います。
フレームレートとは何か?
フレームレートは、ゲームが1秒間に何回画面を更新(描画)するかを示す値です。「このゲームは60fpsで動作する」という表現は、1秒間に60回の画面更新、つまり各フレームが約16ミリ秒ごとに描画されることを意味します。高いフレームレートは、ゲームの描画が滑らかに見え、プレイヤーにとってよりリアルな体験を提供します。
リフレッシュレートとは何か?
一方、リフレッシュレートは、ディスプレイが1秒間に何回新しい画像を表示するかを示す値です。たとえば、60Hzのディスプレイは、1秒間に60回新しい画像を表示します。近年では、120Hzやそれ以上のリフレッシュレートを持つディスプレイも増えてきています。
この値は、ディスプレイの性能を示しています。つまり、ディスプレイが1秒間にどれだけの新しい画像を表示できるかを示しています。
-
フレームレート
1秒間のゲームの更新回数 -
リフレッシュレート
1秒間のディスプレイの更新回数
以下はWindowsの「システム > ディスプレイ > ディスプレイの詳細設定」で確認出来るものです。
フレームレートもリフレッシュレートも勿論ですが高いほうが、1秒間の処理できる数が増えるのですから精度が良くなります。
フレームレートとリフレッシュレートの関係性
フレームレートとリフレッシュレートは、異なる概念ですが、ゲームの体験においては密接に関連しています。たとえゲームが非常に高いフレームレートで描画できたとしても、それを表示するディスプレイのリフレッシュレートがそれに追いつかなければ、その効果を十分に発揮することはできません。
そのため、もしリフレッシュレートが低いディスプレイで高フレームレートのゲームをプレイすると、全てのフレームが正確に表示されず、画面のちらつきや遅延を感じることがあります。これは、ディスプレイがゲームの描画速度に対して遅れてしまい、その結果として生じる現象です。
この問題を解消するために、ディスプレイのリフレッシュレートとゲームのフレームレートが同期するようにVSYNC(垂直同期)と呼ばれる仕組みを使っていました。
垂直同期(VSYNC)は、ゲームのフレームレートとディスプレイのリフレッシュレートを同期させるための技術です。具体的には、ディスプレイが新しい画像を表示するタイミング(リフレッシュ)に合わせて、ゲームが新しいフレームを生成するタイミングを調整します。これにより、ゲームのフレームレートがディスプレイのリフレッシュレートを超えてしまい、画像の乱れ(ティアリング)を引き起こすのを防ぐことができます。
ただし、VSYNCを使用すると、新しいフレームが生成されるまでの待機時間が発生し、これが入力遅延(ゲームへの入力と画面上での反応の間の遅れ)を引き起こす可能性があります。また、ゲームのフレームレートがディスプレイのリフレッシュレートを下回ってしまうと、フレームレートが大幅に低下する可能性があります。
フレーム落ち(フレームドロップ)とは何か?
さらに、「フレーム落ち」や「フレームドロップ」という現象について説明します。これは、ゲームがフレームを生成するのに必要な時間が、ディスプレイのリフレッシュ間隔を超えてしまった場合に発生します。例えば、60fpsのゲームでは、新しいフレームを16ms以内に生成しなければなりませんが、もし16msを超えてしまった場合、そのフレームはディスプレイに表示される前にスキップされてしまいます。これがフレーム落ちです。
この現象は、ゲームが重くなり、カクつきを感じる原因となります。そのため、ゲームの開発者は、フレームレートを安定させ、フレーム落ちを最小限に抑えるための最適化を行います。
以上が、フレームレートとリフレッシュレートの基本的な説明です。これらの理解は、ゲームのパフォーマンスを最大限に引き出すために重要な要素となります。