LR2遅延対策入門 alpha 6版
最終更新:2015/07/31
文責:Stairwayの中のやつ
alpha 5
alpha 4
はじめに
「遅延」それは音ゲーマーを悩ます事象です。
本記事では、基本的な設定はもちろん、誤解されがちな設定も含めた遅延対策方法を記載します。
目次
本記事は、以下の三本立てとなっております。
描画遅延対策
音遅延対策
入力遅延対策
1.描画遅延対策
LR2の描画遅延は以下の要素から成り立っています。
GPUによる遅延
出力モニターによる遅延
それぞれ潰しましょう。
1.1.GPUによる遅延
GPUの設定により、通常では3フレームの遅延が発生します。
この3フレームというのが曲者で、垂直同期ONとOFFでは劇的にその長さが違います。
垂直同期ONで60Hz(=60fps):3フレーム=50msです。本家の緑数字で30違います。
垂直同期OFFで1000fps:3フレーム=3msです。本家の緑数字で1.8違います。
この遅延を解消する方法は以下を参照してください。GPUごとに手順が違います。
どのGPUでも設定値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.出力モニターによる遅延
1.2.1.(SDブラウン管以外の場合)
この項目でどれだけの遅延が解消されるかは、モニター側のスケーリング速度に依存します。
たいていの場合、モニター側でスケーリングするよりも、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.2.2.SDブラウン管の場合
特になし。
1.3.補講:遅延以外の描画に関する事項
遅延には関係ありませんが、描画周りでつまづくアレコレについての解決方法など。
1.3.1.フルスクリーンとAero(Windows Vista/7)
「Windous VistaまたはWindows7のとき、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.互換モードと遅延(Windows 8)
以下はWindows8 Pro(かつ私の環境)での内容です。
※Windows 10では解消されています。
LR2のAuto Adjustにて複数回検証した結果となります。
exeのプロパティから、互換モードを設定すると、およそ16〜25ms程度の遅延が発生しました。
互換モードは設定せず、
・管理者権限にて実行。
または
・LR2本体のフォルダ(サブフォルダ含)に対してUsersにフルコントロール権限を与える。
以上のどちらかにより、遅延回避しつつ動作を損なわないことが可能であるようです。
※XPから移行した環境の場合、上記の対応を行わないとIRフォルダ以下にランキングファイルを保存できなかったり、
スコア保存ができない場合があります。
2.音遅延対策
WASAPIを使っている方、または「FMOD Exを使用しない」にチェックを入れている方、
それで遅延が解消されたと思ってるとしたら、それはプラシーボ効果です。
まずは
「FMOD Exを使用しない」のチェックを外して
ください。
2.1.FMOD Exを使用する(チェックオフ)
FMOD Exを使用する場合は、Direct Sound、ASIO、WASAPIから出力方法を選べますが、
Creative ALchemyが使えない環境ではASIO一択です。
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の場合
2.1.2.1.一般的な場合
Windows Vista以降のDirect Soundはソフトウェアミキサによるエミュレートになりました。
ソフトウェアミキサは26ms程度(バッファ数320程度)の遅延が発生します。
※バッファ数320未満だとプチノイズが入ります。
ASIOを使いましょう。
2.1.2.2.Creative ALchemyが使える場合
Creative ALchemyが使える環境では、DirectSoundのハードウェア支援を有効にできます。
2.1.2.2.1.Creative ALchemyの設定
Creative ALchemyの設定が、実際の遅延時間になります。
Creative ALchemyではバッファを2〜10、時間を5〜50の間で設定できます。時間の単位は明記されていませんがミリ秒です。
Creative ALchemyの遅延時間は以下の計算で求めることができます。
Creative ALchemyの遅延時間 = バッファ * 時間
例)バッファ=2、時間=5のとき、2 * 5 = 10ms遅延
2.1.2.2.2.LR2の設定
LR2のバッファ数は以下のように設定します。
LR2のバッファ数 = Creative ALchemyの時間 * 1.2 * 12
例)Creative ALchemyの遅延時間が5の時、 5 * 1.2 * 12 = 72なので、72を設定します。
2.1.3.WASAPIの場合
LR2のWASAPIは共有モードのため、遅延を解消する効果はありません。
カーネルミキサーを経由しますし遅延もします。
ASIOを使いましょう。
参考:
楽しいハック講座 (4) Windows7 オーディオアーキテクチャの概要
https://twitter.com/tbstk/status/33958102776823808
2.2.FMOD Exを使用しない(チェックオン)
FMOD Exを使用しない場合は全ての設定が無効となり、強制的にDirectSoundになります。
※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を超えた以後の差は無いと考えられる。