はじめまして、すらです。
今回はずっと悩みであったフレームレートが定期的に落ちたり上がったりしてしまう現象を解決できたので、自分の備忘録として記事に残しておきたいと思いました。
どういった問題が起きていたのか
上記スクリーンショットでは左下にフレームレートを表示してあると思いますが、PC版の原神では最大60fpsまでだせるようになっています。
しかし私のPCでは定期的にフレームレートが30台までに下がる現象が度々起きていました。
60→30→60→30…というように、それぞれ大体15秒間隔くらいでフレームレートが上下していました。
PCを再起動したり要らないファイルなどを削除してストレージをあけたりしたり色々と試してみましたが解決には至らず、ネットで検索して同じような悩みを持った人たちの解決策を試してみてもダメで、あきらめていました。
というのもそこまでプレイに支障はなかったのと、原神以外のゲームではこのような現象は起きませんでしたので。
(→原因がわかった今、なぜこのような現象が原神だけに起きていた時期があったのかは謎ですが…。)
しかしある日、このフレームレート上下問題は原神だけにとどまらず、すべてのゲームで起きるようになったのです。
気づいたきっかけは久しぶりに紳士用MODで魔改造されたSKYRIMをプレイしようとしたときです。フィールドを歩いていると例のフレームレート上下問題が発生。
この現象…原神と同じだ…。ここでいやーな予感がし始めます。
(SKYRIMの世界に出張したエウルアさんと死体の2ショット)
ま、まあSKYRIMはMOD入れまくってるし、重いゲームだからね…。軽めのゲームなら大丈夫でしょ!
ということでいつも150~200fpsほど出ていたphasmophobiaを起動してみることに。
頻度は低いものの、しっかりとフレームレートが上下していましたとさ…。
その他のゲーム全部が上下している始末。原神はフレームレートが落ちるといっても30台でしたので我慢できるレベルだったのですが、他のゲームでは10台まで下がることがありかなりイライラする状況に。
さすがに我慢できん!!ということで重い腰を上げ、本気で解決策を模索し始めました。
原因はこいつでした
4~5時間の格闘の末、原因を特定。CPUの熱暴走でした。
私の使っているお粗末なPC(しかもノート)では排熱機能が十分ではなく、このような現象が起きていました。
具体的には以下のようになっていたと推測。
CPUが熱暴走しそうになるとCPUに制限がかかる
↓
CPU機能低下によりfpsが低下
↓
CPU制限のおかげでCPU温度が下がる
↓
CPU制限解除でfps上昇
↓
CPUが熱暴走しそうになるとCPUに制限がかかる
↓
………以下繰り返し
フレームレートが下がるときと上がるときでCPUやGPUの各パラメータを見て、温度が変動していたので、もしやと思い原因を突き止められました。
解決までの手順
ノートパソコンの弱点は排熱です。PCスペック的にもう無理じゃね?とあきらめていましたが、ゲーム中のCPUの温度を下げる方法を紹介しているサイトを発見し、実行。無事フレームレートが安定しました。
以下はその手順です。
1コントロールパネルを開く
(Windowsボタン→Windowsシステムツール→コントロールパネル)
2「システムとセキュリティ」をクリック
3電源オプション
4「選択されたプラン」でチェックされているプランの「プラン設定の変更」をクリック
5「詳細な電源設定の変更」をクリック
6「プロセッサの電源管理」の「最大のプロセッサの状態」を99%に設定
以上で設定は完了です。これで私はフレームレートが安定しました。お疲れ様でした!
…とはいかず、そもそも「プロセッサの電源管理」がない人もいると思います。私も最初はありませんでした。
そこで「プロセッサの電源管理」を出現させる方法を紹介。
※【注意】以下の方法はPCの起動に大きくかかわる部分をいじります。くれぐれも操作には十分にお気をつけください。
キーボードのWindowsボタンとRを同時に押して以下のように regedit と入力しOKを押してレジストリエディターを開きます。
【HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\bc5038f7-23e0-4960-96da-33abaf5935ec】
上記の階層まで降りていきます。
よくわからない方は左から順番にクリックしていってください。HKEY_LOCAL_MACHINE→SYSTEM→CurrentControlSet…
bc5038f7-23e0-4960-96da-33abaf5935ecが開けたら、「Attributes」をダブルクリックして、データの値を「2」に変更してください。
「Attributes」が存在しない人もいると思います。私も最初はありませんでした。
その場合は何もない場所で右クリック→新規→DWORD(32ビット)値(D)
その後追加されたものを「Attributes」にリネームして、ダブルクリック、値を2にしましょう。
これで「プロセッサの電源管理」が出現しているはずです。
一度全部閉じてから再度電源オプションのページへ行ってみてください。
なんで99%にするとCPUが熱暴走しないの?
100%に設定するとCPU君は全力を出そうと張り切ります。その結果私のような低スぺのPCだと冷却が追いつかず熱暴走…ということになってしまうわけなのですが
99%に設定するとCPU君はほどほどの力で頑張ってくれるのでCPUが熱暴走しないで安定したフレームレートがだせるといったわけです。
たった1%の差ですが、全力なのか全力ではないのかが大事な部分なのではないでしょうか。詳しいことは正直わかりません。
まとめ
フレームレートが安定しない理由はCPUの熱暴走が原因でした。
私のような低スペックなPCや、ノートパソコンでやっている方は排熱機能が弱く熱暴走が起こりやすいです。
そこでCPU君には全力ではなくて程よく頑張ってもらうことで今回の問題は解決することができました。
もちろん全力ではないので全体的なfpsは多少下がると思います。が、60上限の原神では常に60ですので全然許容範囲だと思います。
上記方法で解決できなかった人は以下のキーワードで検索してみてください。私が試した今回解決に至らなかったほかの方法です。
・フレームレート msconfig
・フレームレート 背景から自動的にアクセントカラーを選ぶ 無効化
・GPUドライバー 更新