Smooth Frame Rate

エンジンの設定の 1 つである [Smooth Frame Rate] オプションの概要を説明します。

Windows
MacOS
Linux

SmoothFrameRateSetting.png

[Smooth Frame Rate] オプション ([Project Settings (プロジェクト設定)] [General Settings (基本設定)] [Framerate] の下にあります) はデフォルトで有効になっており、アプリケーションごとに設定可能なフレーム レートの最小値および最大値を定義するために使用できます。Smooth Frame Rate の仕組みを詳しく理解するには、共通点の多い垂直同期 (VSync) についても理解する必要があります。

垂直同期

基本的には、VSync は、レンダリングされたアプリケーション内で、画面のティアリング (フレーム レートがモニターの更新レートを超えた場合) やスタッタリング (フレーム レートが制限値、通常は 60 FPS を下回った場合) を制御する方法です。この機能は、ビデオ カードの需要とモニターのリフレッシュ レートに基づいて全体のフレーム レートを設定することで動作します。非常に大きなジャンプが発生し、最新のマシンでは 30 FPS と 60 FPS を行ったり来たりすることがあり、スタッタリングの効果が発生します。

最新のモニターとビデオ カードを使用すれば VSync が致命的な問題となることはあまりありません (ただし、システムの要件や期待する結果によっては問題となる可能性もあります)。そのため、VSync については、ほとんどのユーザーはビデオ カードの設定マネージャー (NVIDIA コントロール パネルなど) でアプリケーションごとに固有の設定を行います。これにより、アプリケーションごとに VSync を使用するかどうかを決めることができます。次の画像は、フレーム レートが下がり、VSync のスタッタリングが発生した場合に何が起こるかを示しています。

AdaptiveVSync.png

最新のビデオ カードのほとんどには Adaptive VSync という機能があり、スタッタリングが少なくなります。

AdaptiveVSync-2-650.png

Adaptive VSync では、フレーム レートの上限を 60 FPS に固定して画面のティアリングを防ぎ、FPS が 60 を下回るときに VSync を無効にすることでスタッタリングを低減します。

上の画像は両方とも、NVIDIA の Adaptive VSync のドキュメント ページで使用されているものです。

Smooth Frame Rate の範囲

Smooth Frame Rate を使用すると、フレーム レートが変動可能な範囲をアプリケーションが決定します。それにより、上限値と下限値の間にフレーム レートを制限できます。これはアプリケーション ベースであり、VSync による変更の**前**にこれらの変更が発生します。

たとえば、あるアプリケーションを Titan X カードを使えば約 75 ~ 85 FPS という非常に高いパフォーマンスで安定的に実行できるとしても、ほとんどのユーザーはそのようなハイエンドのマシンを持っていません (コンソール向けに開発している場合、通常、ターゲットは 60 FPS です)。[Smooth Frame Rate] は 40 から 60 FPS の範囲に設定できます。

こうすることで、ハイエンドのマシンを使用していて高いフレーム レートで実行できる場合でも、すべてのユーザー向けの最適なエクスペリエンスとして、フレーム レートの上限を 60 FPS に設定できます。さらに、ローエンドのマシンを使用しているユーザーが 40 FPS となってパフォーマンスがよくない場合、[Smooth Frame Rate] によって低めの 40 FPS に変更されたあとに、ハードウェアでの VSync により、アプリケーションの FPS が 30 FPS に制限される可能性が高くなります。

この範囲は、[Project Settings (プロジェクト設定)] [General Settings (基本設定)] [Framerate] にある [Smoothed Frame Rate Range:] で定義できます。

Range.png

また、最小値と最大値のそれぞれに、[Exclusive] (値を含まない)、[Inclusive] (値を含む)、[Open] (値を制限しない) のいずれかを設定することもできます。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback