LR2遅延対策入門 alpha5版
最終更新:2015/07/06
文責:Stairwayの中のやつ
はじめに
「遅延」それは音ゲーマーを悩ます事象です。
本記事では、基本的な設定はもちろん、誤解されがちな設定も含めた遅延対策方法を記載します。
目次
本記事は、以下の三本立てとなっております。
描画遅延対策
音遅延対策
入力遅延対策
1.描画遅延対策
LR2の描画遅延は以下の要素から成り立っています。
GPUによる遅延
出力モニターによる遅延
それぞれ潰しましょう。
1.1.デフォルト3フレームの遅延に対処する
GPUによる遅延の対策となります。GPUごとに設定が異なります。
Windows、もしくはGPUドライバのデフォルト設定は、必ず3フレーム遅延となっています。
この3フレームというのが曲者で、垂直同期ONとOFFでは劇的にその長さが違います。
垂直同期ONで60Hz(=60fps):3フレーム=50msです。本家の緑数字で30違います。
垂直同期OFFで1000fps:3フレーム=3msです。本家の緑数字で1.8違います。
この遅延を解消するためには、以下の設定を行います。
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が切れる設定にすればよく、それは以下の手順で可能です。
「LR2body.exe」を右クリックしてプロパティを開く
「互換性」タブをクリック、「デスクトップ コンポジションを無効にする」にチェックを入れる
「OK」ボタンで確定
これでAeroは切らずに、フルスクリーン化することができます。
1.3.2.RadeonとHDMIとGPUスケーリング
RadeonでGPUスケーリングを行い、HDMIでモニターに接続すると、
全画面にはなるけれど、画面より小さいという問題が発生するかと思います。
Catalyst Control CenterでScaling Optionsを0%に設定するわけですが、
これだけでは不十分で、解決しないということもあるかと思います。
きちんと修正するための、具体的な手順を以下に示します。
Catalyst Control Centerを開き、ディスプレイマネージャからHDMI接続しているモニタの解像度を640x480に変更
左部ツリーから、対象のモニタ設定を展開し、「Scaling Options」を0%に設定
※この時、GPUスケーリングの設定も同時に行うと良いでしょう
「Apply」ボタンで適用
設定後、解像度は元に戻していただいて大丈夫です。
1.3.3.AC IIDX DJT筐体の遅延と液晶と判定ライン
ACのDJT筐体は、ボタンが押された後、4フレームで画面に反映されます。
DJT液晶は秒間60回描画の黒挿入(なのでパネル的には120Hz動作)です。
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も同様です。強制的にDirectSoundになります。
XPなら遅延の面でDirect SoundがASIOに劣るということはほとんどありません。
各自の環境で最適な設定を探ってみましょう
Vista以降なら
WASAPIか
ASIOで設定を探りましょう。
WASAPIは使えません。LR2のWASAPIは共有モードなので、カーネルミキサーを経由しますし遅延もします。
参考:
楽しいハック講座 (4) Windows7 オーディオアーキテクチャの概要
https://twitter.com/tbstk/status/33958102776823808
WASAPIを使っている方、または「FMOD Exを使用しない」にチェックを入れている方、
それで遅延が解消されたと思ってるとしたら、それはプラシーボ効果です。
2.1.1.ASIOの場合
よく誤解されがちですが、LR2 Setup上からASIOの遅延は設定できません。
ASIOの遅延は
ASIO caps
等で設定できます。
デバイスによって設定のしかたが違います。
ms単位で設定できるデバイスなら、その通り設定されます。
サンプル数単位で設定するデバイスなら、以下の式の通りです。
遅延[ms]=サンプル数/48[KHz]
ASIOに対応していないデバイスの場合、
ASIO4ALL
を使用することになると思いますが、
再生しようとするとLR2が落ちる曲(というかBGA)が存在します。使用には十分注意してください。
参考:
LR2での動画BGA再生を支援するページ(ASIO4ALL&FMOD EX使用時のみ、一部の動画BGAの再生が途中で止まる)
2.1.2.Direct Soundの場合
Windows Vista以降のDirect Soundはソフトウェアミキサによるエミュレートになりました。
Vista以降はASIOしか選択肢がありません。
Direct Sound使用時の遅延設定はLR2から行えます。
バッファ数(低くすれば音の出が早くなりますがノイズが増えます)
という項目です。
遅延は
バッファ数 x 4 / 48[KHz]
で求めることができます。
例1)バッファ数16の場合
16 * 4 / 48[KHz] = 1.333msの遅延
例2)バッファ数192の場合
192 * 4 / 48[KHz] = 16msの遅延
※こまかな検証は
こちら
で行ってますので、興味があればご覧くださいませ。
2.1.3.WASAPIの場合
LR2のWASAPIは共有モードのため、遅延を解消する効果はありません。
Windows版ASIOとでも言うべきWASAPIですが、私の手元にあるのはXPのため、
当該項目に関しましては省略させていただきます。
これもASIOと同様に低レイテンシであることがウリのようですので、
使用できる環境でしたら、一考の余地はあるかと思います。
2.2.FMOD Exを使用しない
FMOD Exを使用しない場合は、全ての設定が無効となります。
サウンドデバイスとしてASIOを指定しても、実際にはDirect Soundが使用されます(※)。
※LR2のログ出力にて確認
遅延に関する設定は行えず、バッファサイズはハードウェアの規定値が適用されるはずです。
2.3.補講:その他の遅延要因
2.3.1.OSとサウンドデバイス
オーディオI/F系デバイスの評価は、
AV Watch - 藤本健のDigital Audio Laboratory
が参考になります。
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にすることで、入力遅延の解消が期待できます。
入力は矢印で指し示した場所で有効になるため、それまでにかかる時間が遅延となる。
垂直同期ONの場合は、平均して1/60/2=8.3333ミリ秒の遅延が存在する。
入力チェックは描画毎に行われるため、FPSが高いほど遅延が小さくなる。
ただし内部のタイマーがミリ秒単位であると考えられるため、1000FPSを超えた以後の差は無いと考えられる。