先日NHKBSで放送された「全ファイナルファンタジー大投票」の作品ランキングでも1位となったファイナルファンタジー10(以下FF10)ですが、こちらはFF10-2とセットになったSteam版も出ています。
2016年にリリースされたSteam版はHDリマスター版となっているため、PS2のオリジナル版(2001年)からおよそ20年経った現在でもそれほど見た目の古さを感じることなくプレイを楽しむことができるのですが、ひとつだけ問題がありました。
それは、一定の周期で画面の描画がカクカクしてしまうという現象です。
このゲームは仕様で最大30fpsまでしか出ないため自分のPCスペック(Intel Core i5 8600k、AMD Radeon RX Vega56)が不足しているとは考えにくく、試しにフレームレートを計測してみても、プレイ中は常時30fps出ていました。
それでもなお描画のカクつきが発生しているということは、垂直同期(Vsync)の設定がおかしいのではと思い、今度はゲーム内の設定やドライバの設定を何度か変更してみたのですが、それでもカクつきが直る気配はありません。
そこで色々と情報収集したところ、どうやらこのゲームは垂直同期(Vsync)周りに問題を抱えているらしいことが判明しました。
ただし、それはMODを導入することで解決できるという事も分かったので、本ページではその手順について解説していきたいと思います。
Steam版FF10でカクつきが起こる原因
Steam版FF10(およびFF10-2)でカクつきが起こる原因は、このゲームではフルスクリーンモードを設定しても、実際には仮想フルスクリーンモード(ボーダーレスのウインドウモードを画面全体に引き伸ばしているだけ)となっているためです。
そのため垂直同期(Vsync)を設定しても正常に機能せず、その結果、画面の描画がカクカクしてしまうという訳です。
つまりSteam版FF10で垂直同期をきちんと機能させるには、仮想フルスクリーンモードではなく本来のフルスクリーンモード(排他的フルスクリーンモード)で動作するように修正する必要があります。
Untitled Project Xの導入方法
Steam版FF10(FF10-2)で垂直同期(Vsync)を有効にするには、「Untitled Project X」というMODを導入する必要があります。
このMODを導入することで、Steam版FF10を排他的フルスクリーンモードで動作させることができ、垂直同期が機能するようになります。
Untitled Project Xのダウンロード
まずは、こちらからMODのインストーラー(SKIM64.exe)をダウンロードします。
(リンク先のページではSteamの警告が表示されるので、「外部サイトに進みます」をクリックしてダウンロードを開始して下さい。)
なお、このMODはVisual C++ 2015 Runtimeが必要となります。
お使いのシステムに入っていない場合は、事前にこちらもインストールして下さい。
Untitled Project Xのインストール
ダウンロードしたインストーラーを起動すると次のようなウインドウが表示されます。
「Select a Product」にあるプルダウンメニューから「”Untitled” Project X」を選択し、その下にある「→ Install」をクリックするとMODのダウンロードが開始されます。
ダウンロードが完了しインストールの準備ができると次のようなウインドウが表示されるので、「Yes」をクリックしてMODをインストールします。
インストールが完了すると次のようなウインドウが表示されるので、「→ Finish Install」をクリックします。
するとインストーラー起動時のウインドウに戻るので、それを閉じて終了します。
フルスクリーン表示でのカクつきを抑える方法
MODの導入が完了したら、FF10(もしくはFF10-2)のゲームを起動します。
MODが正常に導入されていると、下の画像のように、ゲーム起動画面で「MOD Enabled」と表示されます。
ゲーム内の垂直同期設定
ゲームのプレイ画面でEscキーを押し、「システム設定」>「グラフィック」にある「垂直同期」をONにします。
(ここで「画面モード」をフルスクリーンに設定する必要はありません。)
なお、この時点で安定して30fps出ていない(ゲームが重い)場合は単純にスペック不足の可能性があります。
その場合は以降の設定を行う前に、ここで解像度を下げたりグラフィック設定を低くするなどして、安定して30fpsが出る状態にしてから先に進んで下さい。
MODの垂直同期設定
ゲームのプレイ画面でキーボードの「Ctrl + Shift + Backspace」、もしくは「Select + Start」(Playstationゲームパッドの場合)、「Back + Start」(Xboxパッドの場合)を押すと、次のようなMODのコントロールパネルが表示されます。
コントロールパネルの「Direct3D 11 Settings」>「SwapChain Management」にある「Presentation Interval」の数値(画像内の矢印で示された部分)を0から-1に変更します。
ちなみに、ここで設定される数値の意味は以下の通りです。
設定した値 | 効果 |
---|---|
-1 | ゲーム内の垂直同期設定に合わせる |
0 | 垂直同期無効 |
1 | 垂直同期有効(強制) |
上の表にもあるように、-1ではなく1を設定しても垂直同期は有効となります。
ただし、1を設定すると実際には快適にプレイできない可能性があるので、ここでは-1を設定して下さい(理由は後述します)。
設定を終えたら再び同じキーを押すかコントロールパネル右上のXをクリックしてゲーム画面に戻り、キーボードの「Alt + Enter」を押すとフルスクリーンモード(排他的フルスクリーンモード)となります。
以上の設定で、FF10(FF10-2)の垂直同期(Vsync)がフルスクリーンモードで正常に機能するようになります。
それでも問題が発生する場合
ここまででFF10(FF10-2)のカクつきを抑えるための設定は終了なのですが、自分の場合はそれでも問題が完全に解決した訳ではありませんでした。
以下はこちらの環境(グラフィックボード:AMD Radeon RX Vega56、モニター:27GL850-B)だけで起こる特殊な問題なのかもしれませんが、似たようなケースが起こらないとも限らないので、参考までに一応記述しておきます。
リフレッシュレートが60Hzもしくは75Hzの場合
自分の環境では、モニターのリフレッシュレートが60Hz(もしくは75Hz)の場合、まずグラフィックボード側の設定で「GPUスケーリング」を有効にしていないと、排他的フルスクリーンモードにならず垂直同期(Vsync)も機能しませんでした。
GPUスケーリングを有効にしてFF10を起動すると、無事に排他的フルスクリーンモードとなり垂直同期も正常に機能するようになったのですが、今度は戦闘の開始時あるいは終了時に画面が切り替わる際、ものすごく時間がかかってしまうようになってしまいました。
また、グラフィックボード側の設定(Radeon設定)で「Radeon Enhanced Sync」が有効になっていると垂直同期が機能せず、ティアリングが発生しました。
「Radeon Enhanced Sync」を無効にして、その下にある「垂直リフレッシュを待機」を「常にオン」に設定すると垂直同期は正常に機能するのですが、上記の通り戦闘画面の切り替えに時間がかかる問題が依然として残ってしまいます。
結局のところ、リフレッシュレートが60Hzもしくは75Hzの場合、自分の環境では垂直同期を有効にして快適にプレイできる状態にすることはできませんでした。
リフレッシュレートが90Hz以上の場合
※こちらの設定は、お使いのモニターとグラフィックボードの仕様を確認し、表示可能なリフレッシュレートのみ指定するようにして下さい。表示可能なリフレッシュレートを超える数値を設定すると、画面が表示されなくなるのはもちろん、最悪モニターやグラフィックボードが壊れてしまう可能性があるため、十分に注意して下さい。
MODの設定ファイル(dxgi.ini)を編集することで、フルスクリーンモード時のリフレッシュレートを指定することができます(ゲームを終了している状態でファイルを編集して下さい)。
dxgi.iniファイルは、デフォルトのインストール先では以下の場所にあります。
C:\Program Files (x86)\Steam\steamapps\common\FINAL FANTASY FFX&FFX-2 HD Remaster\dxgi.ini
このファイルを開くと[Render.FrameRate]という項目があるので、その下にある「RefreshRate」の値をデフォルトの-1から90(90Hzの場合)に書き換えて、上書き保存します。
このように、リフレッシュレートを90Hz以上に設定してFF10を起動すると、60Hzや75Hzで起きた戦闘画面の切り替えに時間がかかる問題は発生しなくなりました。
ただし、MODの設定で「Presentation Interval」の数値を-1(ゲーム内の垂直同期設定に合わせる)ではなく1(強制的に垂直同期を有効)に設定していると、90Hz以上でもやはり戦闘画面の切り替えに時間がかかる問題が発生しました。
以上のことから、自分の環境ではMODの設定で「Presentation Interval」の数値を-1(ゲーム内の垂直同期設定に合わせる)に指定し、さらにdxgi.iniファイルでリフレッシュレートを90Hz以上に設定することで、ようやくFF10(FF10-2)をカクつきのない状態で快適にプレイできるようになりました。
なお余談ではありますが、dxgi.iniファイルの[Render.FrameRate]項目内にある「BackBufferCount」の値を3に設定すると、トリプル バッファリングとなります(デフォルトはダブルバッファリング)。
こちらは必須の設定ではありませんが、これまでの設定を行ってもまだカクつきが生じる場合、この設定を変更することで解消されるかもしれません。
ウインドウ表示でのカクつきを抑える方法
リフレッシュレート60Hzで戦闘画面の切り替えに時間がかかる問題が発生し、なおかつお使いのモニターとグラフィックボードがリフレッシュレート90Hz以上に対応していない場合、残念ながら上記のフルスクリーンモード設定は使えません。
そこで、描画のカクつき問題が完全に解消される訳ではないのですが、ウインドウモードで少しでも快適にプレイできるようにする設定も見つけましたので、最後にご紹介しておきたいと思います。
(ただし、こちらは十分に動作確認した訳ではなく、またお使いの環境によっても効果が異なる可能性があります。予めご了承ください。)
こちらの設定もフルスクリーンモードの設定と同様に、MODの設定ファイル(dxgi.ini)を編集します(ゲームを終了している状態でファイルを編集して下さい)。
このファイルを開くと[Render.FrameRate]という項目があるので、その下にある「BackBufferCount」の値を4もしくは5に書き換えます。
さらに、その下にある「PresentationInterval」を0に書き換えて上書き保存します。
なおWindows10の場合は、上記の設定に加えて[Render.DXGI]という項目の下にある「UseFlipDiscard」をtrueに書き換えると、パフォーマンスが向上する可能性があります。
これらの設定が終わりましたら、ウインドウモードでゲームをスタートさせてみて下さい。
コメント