Unityの「VSync Count」とは?

広告

Unity の VSync Count は、モニターの画面更新タイミング(垂直同期)に合わせて、ゲームの描画フレームを制御する設定です。

場所は:

Edit → Project Settings → Quality → VSync Count

です。


まず「VSync(垂直同期)」とは?

モニターは、1秒間に何回も画面を書き換えています。

例えば:

  • 60Hz → 1秒間に60回更新
  • 144Hz → 1秒間に144回更新

ゲーム側がこの更新タイミングとズレて描画すると、

  • 画面が横にズレる
  • 上半分と下半分で別フレームが見える

という現象が起きます。

これを ティアリング(Tearing) と呼びます。

VSync は、このズレを防ぐための仕組みです。


VSync Count の意味

Every V Blank

毎回の画面更新に同期します。

60Hzモニターなら:

  • 最大60FPS

になります。

つまり:

  • モニター更新1回ごとに
  • ゲームも1フレーム描画

します。


Every Second V Blank

2回に1回だけ同期します。

60Hzモニターなら:

  • 最大30FPS

になります。

つまり:

  • モニター更新2回ごとに
  • ゲーム1フレーム描画

です。


Don’t Sync

VSyncを使いません。

ゲームは可能な限り高速に描画します。

例えば:

  • 300FPS
  • 500FPS

になることもあります。


図でイメージ

60Hz モニターの場合:

モニター:
|更新|更新|更新|更新|更新|更新|

Every V Blank:
|描画|描画|描画|描画|描画|描画|
→ 60FPS

Every Second V Blank:
|描画|   |描画|   |描画|   |
→ 30FPS

なぜ必要なの?

1. ティアリング防止

最も大きな目的です。

VSync OFF だと:

画面上半分 → 前フレーム
画面下半分 → 次フレーム

のようにズレることがあります。

特に:

  • 横スクロール
  • カメラ移動
  • FPSゲーム

で目立ちます。


2. GPU負荷を下げる

VSync OFF の場合:

描画できるだけ描画する

ため、

  • GPU使用率100%
  • 発熱
  • ファン爆音

になりやすいです。

VSync ON なら:

60FPSで十分なら60FPSで止める

ため、負荷が安定します。


注意点

入力遅延(Input Lag)

VSync ON は、

描画待ち

が発生するため、

  • マウス操作
  • キー入力

がわずかに遅れる場合があります。

そのため:

  • FPS
  • 格闘ゲーム
  • 音ゲー

では OFF にすることもあります。


targetFrameRate との関係

Unityには:

Application.targetFrameRate = 60;

もあります。

しかし、

VSync が ON

なら、

targetFrameRate は無視される

ことが多いです。

つまり:

VSync の方が優先される

と考えてください。


実際によくある設定

PCゲーム

一般的

VSync ON

理由:

  • ティアリング防止
  • GPU負荷安定

高FPS競技ゲーム

VSync OFF

理由:

  • 入力遅延を減らしたい

スマホ

スマホでは通常、

VSync相当

の制御がOS側で入っています。

Unity側では:

Application.targetFrameRate = 60;

を使うことが多いです。


重要な理解

VSync は、

「ゲームを何FPSで動かすか」

ではなく、

「モニター更新とタイミングを合わせる仕組み」

です。

ここを誤解しやすいです。


Unityで確認する実験

以下を設定してみます。

void Update()
{
    Debug.Log(1f / Time.deltaTime);
}

VSync OFF

300FPS
500FPS

などになります。


VSync ON(60Hz)

59
60

付近で安定します。


まとめ

設定意味60Hz時
Don’t Sync同期しない制限なし
Every V Blank毎回同期60FPS
Every Second V Blank2回に1回同期30FPS

どれを使えばいい?

初心者向けには、まず:

Every V Blank

がおすすめです。

理由:

  • 安定しやすい
  • GPU負荷が暴れにくい
  • ティアリングが出にくい

ためです。

競技性の高いゲームや、
高FPSを重視する場合だけ、

Don't Sync

を検討します。

訪問数 11 回, 今日の訪問数 11回

広告

Unity

Posted by hidepon