LR2遅延対策入門 alpha4版

最終更新:2013/03/03
文責:Stairwayの中のやつ

はじめに

「遅延」それは音ゲーマーを悩ます事象です。
本記事では、基本的な設定はもちろん、誤解されがちな設定も含めた遅延対策方法を記載します。

目次

本記事は、以下の三本立てとなっております。
  1. 描画遅延対策
  2. 音遅延対策
  3. 入力遅延対策

1.描画遅延対策

LR2の描画遅延は以下の要素から成り立っています。 それぞれ潰しましょう。

1.1.デフォルト3フレームの遅延に対処する

GPUによる遅延の対策となります。GPUごとに設定が異なります。
Windows、もしくはGPUドライバのデフォルト設定は、必ず3フレーム遅延となっています。
この3フレームというのが曲者で、垂直同期ONとOFFでは劇的にその長さが違います。
この遅延を解消するためには、以下の設定を行います。
0だと表示がガタつきますので、1程度をお勧めします。

GeForce:レンダリング前最大フレーム数
参考URL http://ff2400.jp/Column/game/Mftra/Mftra.html

Radeon:FlipQueueSize
参考URL http://cypH2r.blog129.fc2.com/blog-entry-28.html

Intel:????

1.2.モニター側スケーリングを回避する(SDブラウン管以外の場合)

出力モニターによる遅延の対策となります。GPUごとに設定が異なります。
この設定でどれだけの遅延が解消されるかは、出力モニター側のスケーリング速度の遅さに依存します。
たいていの場合、モニター側でスケーリングするよりも、GPU側でスケーリングするほうが圧倒的に速いです。

GeForce:アスペクト比固定拡大
参考URL http://swordfish.s53.xrea.com/2010/05/04/p918/

Radeon:GPUスケーリングを有効にする
参考URL http://d.hatena.ne.jp/clearorzhm/20090416

Intel:ディスプレイ>一般設定>スケーリング
参考URL http://blog.livedoor.jp/pangya_kaorin/archives/1421852.html

1.3.補講:遅延以外の描画に関する事項

遅延には関係ありませんが、描画周りでつまづくアレコレについての解決方法など。

1.3.1.フルスクリーンとAero

画面設定まわりで誤解されがちなAeroについて。
「Vista以上のとき、LR2をフルスクリーンでプレイするためにはAero切りが必須!」
なんてことを時々見かけますが、これは誤りです。
LR2プレイ時のみAeroが切れる設定にすればよく、それは以下の手順で可能です。
  1. 「LR2body.exe」を右クリックしてプロパティを開く
  2. 「互換性」タブをクリック、「デスクトップ コンポジションを無効にする」にチェックを入れる
  3. 「OK」ボタンで確定
これでAeroは切らずに、フルスクリーン化することができます。

1.3.2.RadeonとHDMIとGPUスケーリング

RadeonでGPUスケーリングを行い、HDMIでモニターに接続すると、
全画面にはなるけれど、画面より小さいという問題が発生するかと思います。
Catalyst Control CenterでScaling Optionsを0%に設定するわけですが、
これだけでは不十分で、解決しないということもあるかと思います。
きちんと修正するための、具体的な手順を以下に示します。
  1. Catalyst Control Centerを開き、ディスプレイマネージャからHDMI接続しているモニタの解像度を640x480に変更
  2. 左部ツリーから、対象のモニタ設定を展開し、「Scaling Options」を0%に設定
    ※この時、GPUスケーリングの設定も同時に行うと良いでしょう
  3. 「Apply」ボタンで適用
設定後、解像度は元に戻していただいて大丈夫です。

1.3.3.AC IIDX DJT筐体の遅延と液晶と判定ライン

  1. ACのDJT筐体は、ボタンが押された後、4フレームで画面に反映されます。
  2. DJT液晶は秒間60回描画の黒挿入(なのでパネル的には120Hz動作)です。
  3. DJT筐体の判定ラインは、判定ラインへ到達する1フレーム前から存在します。
    描画遅延が非常に少ないLR2環境を構築した場合、DJT筐体の判定ラインを再現するための
    JUDGE TIMINGは-8ms〜-25msの間にあると推測されます。
以上はLincle稼動中のDJT筐体を、CASIO HIGH SPEED EXILIM EX-FH100の420fps録画モードにて撮影し、検証した結果です。
ここで全ての前提を覆すことになるのですが、判定調整しさえすれば、描画の遅延は無視してもいいかもしれません。
なおEMP以降の筐体の遅延や液晶に関する詳細は未調査です。

1.3.4.互換モードと遅延

以下はWindows8 Pro(かつ私の環境)での内容です
LR2のAuto Adjustにて複数回検証した結果となります。

exeのプロパティから、互換モードを設定すると、およそ16〜25ms程度の遅延が発生しました。
互換モードはやめ、
・管理者権限にて実行。
または
・LR2本体のフォルダ(サブフォルダ含)に対してUsersにフルコントロール権限を与える。
以上のどちらかにより、遅延回避しつつ動作を損なわないことが可能であるようです。

※上記の対応を行わないと、IRフォルダ以下にランキングファイルを保存できなかったり、
スコア保存ができない場合があります。(XPからアップグレードした環境等)

2.音遅延対策

2.1.FMOD Exを使用する

FMOD Exを使用する場合は、Direct Sound、ASIO、WASAPIから出力方法を選べます。
※FMOD Exを使用しない ですと、ASIOは使えません。WASAPIも同様かと予想していますが、手元のOSがXPのため、不明です

よく誤解されがちですが、(XPなら)遅延の面でDirect SoundがASIOに劣るということはほとんどありませんので、
各自の環境で最適な設定を探ってみましょう
VistaならWASAPIかASIOで設定を探りましょう。

2.1.1.Direct Soundの場合

Direct Sound使用時の遅延設定はLR2から行えます。
バッファ数(低くすれば音の出が早くなりますがノイズが増えます)
という項目です。
遅延は
バッファ数 x 4 / 48[KHz]
で求めることができます。
※48KHzは環境依存かもしれません

例1)バッファ数16の場合
16 * 4 / 48[KHz] = 1.333msの遅延

例2)バッファ数192の場合
192 * 4 / 48[KHz] = 16msの遅延

※こまかな検証はこちらで行ってますので、興味があればご覧くださいませ。

2.1.2.ASIOの場合

またしてもよく誤解されがちですが、LR2上からASIOの遅延は設定できません。
ASIOの遅延はASIO caps等で設定できます。
デバイスによって設定のしかたが違います。 上記のとおりに、どのくらい遅延するかが決まります。

2.1.3.WASAPIの場合

Windows版ASIOとでも言うべきWASAPIですが、私の手元にあるのはXPのため、
当該項目に関しましては省略させていただきます。

これもASIOと同様に低レイテンシであることがウリのようですので、
使用できる環境でしたら、一考の余地はあるかと思います。

2.2.FMOD Exを使用しない

FMOD Exを使用しない場合は、全ての設定が無効となります。
サウンドデバイスとしてASIOを指定しても、実際にはDirect Soundが使用されます(※)。
※LR2のログ出力にて確認
遅延に関する設定は行えず、バッファサイズはハードウェアの規定値が適用されるはずです。

2.3.補講:その他の遅延要因

2.3.1.OSとサウンドデバイス

OSとサウンドデバイス(主にSound Blaster)に関して、確定している情報のみをいくつか。
またオーディオI/F系デバイスの評価は、AV Watch - 藤本健のDigital Audio Laboratoryが参考になります。

OSがVista以降の場合
DirectSoundのハードウェア支援が廃止されているため、酷く遅延します。
そのためWASAPI(VistaSP1以降)かASIOが推奨されます。

OSがXPの場合
DirectSoundでもASIOでもどちらでもどうぞ。

SoundBlasterでOSが32bitの場合
デバイスDirectSoundASIO備考
Sound Blaster(内蔵型)遅延小遅延小
Sound Blaster(外付型)遅延大多分使えない
TASCAM US-200(USBオーディオIF)常時ノイズがあり未評価遅延小

SoundBlasterでOSが64bitの場合
デバイスDirectSoundASIO備考
Sound Blaster(内蔵型)遅延大未対応
Sound Blaster(外付型)遅延大未対応

64bit環境だとSound Blasterはドライバの出来が散々なため、32bitのときとは変わって全くお勧めできないものとなっています。
そもそもASIOに対応していません。
内蔵型Sound Blaster X-Fiについて、Windows8 64bit環境にて最新ドライバ(2013/02/24時点)でCreative ASIOが使用できることを確認しております。

2.3.2.PCから出力したあと

音の出力が遅延する原因となるのは、PCの設定やPC周辺のサウンドデバイスだけではありません。
以下のようなものを通して音を出力している場合、遅延する可能性があります。

要因理由
AVアンプ AVアンプに接続し、イコライザやエフェクトをかけて出力している場合、
AVアンプ内部のデジタル回路で処理を行ってから出力するため、遅延する可能性があります。
ソースダイレクトで出力すると、解消されるケースが多いです。
テレビ 映像出力の遅延と同期させるために、わざと遅延させるケースがあります。

3.入力遅延対策

この部分で遅延が起こると、映像・音声の両方で遅延が起こっているように見えます。 積極的に解消していきましょう。

3.1.コンバータ

1P用コンバータを使いましょう
DP時は1P用コンバータを2つ用意しましょう

サンワサプライのコンバータがレスポンス高いですが、空打ちPOORが多くなるとの報告もあります。
エレコム製コンバータの新パッケージも、サンワサプライ製コンバータと同等の性能のようです。
参考:第三科学研究所 - 連射速度の限界に挑戦!第十四回 エレコム JC-PS101U、JC-PS201U新旧パッケージ品比較調査

USBのポーリングレートを高めると、レスポンスが向上しますが、自己責任で。
やりかたを自分で調べられない場合は、行わないのが懸命です。

3.2.垂直同期OFF

注意!この項目は、現状の動作から内部処理を予測して記述しているため、確実性に欠けます!




ボタン入力状態のチェックが、描画のタイミングと同期しているため、垂直同期をOFFにすることで、入力遅延の解消が期待できます。