Sarmaticus

誰も読まないような趣味の話しかしないほうのブログ

マウントアンドブレード2のグラフィック関係の厄介なエラーの対処例


初めに

マウントアンドブレードIIはグラフィックエンジンが非常に不安定で, すぐクラッシュする. 自分が知っている範囲で解決方法を書いておく. あくまで経験則なので, ここに書いてある方法で必ず解決できる保証はないが, もしかすると役に立つかもしれない.


起動後即終了する

起動してから, ほとんど何も操作できずに強制終了し, わかりやすいエラーメッセージも出ない場合は, クリーンインストールをすると解決したことがある.

MB2に関係するファイルは, ゲーム本体のインストールフォルダと, マイドキュメントの設定やセーブデータを保存するフォルダの2箇所に分かれている. ここで言うクリーンインストールとは, ゲーム本体を一旦消してインストールし直すことを意味する. セーブデータが何らかの原因になっている可能性も, もしかしたらあるかもしれないが, マイドキュメントのファイルを消すのは最後の手段にした方が良い. まずは,

  1. Steamの「整合性を確認」を実行するか, はアンインストールとインストールを繰り返す
  2. ゲーム本体のインストールフォルダの Shaders フォルダを消してから「整合性を確認」を実行する

シェーダー関連のキャッシュファイルはインストール後にゲーム本体に生成されてしまうため, アンインストールしても消されない (仕事が雑). (1) だけでは解決しないなら, (2) を試してシェーダー情報のキャッシュをリセットすると問題が解決することがある. この場合, 明るさ調整の設定も消えてしまい, 設定をやり直すことになるが, そこまで大きな問題でないだろう.


キャンペーンやサンドボックスなどを開始しようとするとクラッシュする

メインメニューまではたどり着けるが, キャンペーンなどを解しようとするとクラッシュする症状である. modを入れていて, なおかつ ButteLib を入れていても ButterLib のログが表示されない場合は, 十中八九XMLに問題がある. そしてそれは, mod 単体の問題と言うより, 依存modを入れなかったり競合する組み合わせだったりすることが多いと予想する. もしmod単体でXMLに欠陥があるならば, そのmodの配布ページなどで報告が殺到していることだろう. Mod によってはカスタムバトルに対応していないなどと明記してあるものもある.

modを入れていない場合は, 先述のシェーダー関係の問題か, 後述の設定が勝手に書き換えられる問題かもしれない.


それでもよくわからないクラッシュが多発する

これらを試しても, クラッシュ時にButteLibがエラーを生成せず, GPUがどうこうというエラーメッセージのみが何度も発生する場合は, フレームレート制限も確認すると良いかもしれない. これは私の個人的な経験に基づくもので, 因果関係がはっきりしてないが, とにかく私の場合は解決したことがある.

フレームレートが高すぎると, GPUの低レイヤのエラーがよく出る. 物理演算に関するバグなのかもしれないが, よくわからない. MB2のオプションにある「フレームレートを制限する」で, ハードウェアに合ったフレームレートに下げると問題が起こらないことがある. たいていのモニタは60FPSだから, 60に設定すればよいだろう.

関係のありそうな設定項目

そもそもフレームレートを変えた記憶はないのだが, マウントアンドブレード2はここに限らず設定が勝手に変えられることがよくあるので厄介である.

私が出くわした具体的な症状は, 以下のようなものである. このようなエラーメッセージがダイアログボックスに表示される.

d3d_device_context_->Map at rglGPU_deice::lock-_texture Failed! GPUデバイスインスタンスが中断されています。 GetDeviceRemovedReasonを使用して適切なアクションを確認してください。

英語だとこうなる.

3d_device_context_-> Map at rglGPU_device::lock_texture failed! The GPU device instance has been suspended. Use GetDeviceRemovedReason to determine

この問題については, このTWのスレッドが最も参考になった.1 ここでの報告によれば, 「フレームレートの制限」だけでなく垂直同期など他の設定も勝手に書き換えられ, それが不具合の原因になっていることもあるようだ.

https://forums.taleworlds.com/index.php?threads/%E2%80%9Cd3d_device_context_-map-at-rglgpu_device-lock_texture-failed-the-gpu-device-instance-has-been-suspended-use-getdeviceremovedreason-to-determine.414757/

しかし, 4年くらい前から開発側に伝えているのに, まだ直る気配がないのか…


GPUが頻繁に唸りを上げる

何もしてないのにGPUファンが頻繁に唸る. 大勢で戦闘しているとかではなく, キャンペーンマップで停止するとか, ほとんど負荷がなさそうな状況でも唸る. 私は大量にmodを使っているので, そのせいで負荷が大きくなりすぎたのかと思って諦めていたが, プレイ中の負荷の大小に関係なく起こる, modを外しても症状がある, といった特徴があったのでおかしいことに気づいた. サイバーパンク2077を遊んでいてもここまで頻繁に唸らない.

これも前述のように, いつの間にか勝手に書き換えられていたフレームレート制限を修正すると少しマシになった気がする. 気のせいかもしれない.


戦闘中に何かボタンを押してからカメラアングルがおかしくなる

これはバグと言うか仕様というか, 手抜きである. MB2は, ミッションマップにいるときはプレイヤーキャラの向いている方向に合わせて, 常に背を向けるようにカメラアングルが変わる. そして,「半角全角」キーを押してマウスでアングル移動ができる「キャラクタービュー」モードになる. この状態はキーは押している間だけ有効になるが, 半角全角キーなので一度押すとキーアサインが変わってしまい, 永久に戻らなくなるため問題が起こるようだ. このようなJISキーボードの仕様を考慮していない開発元の手抜きが原因である.2

よって, この問題には2つの解決方法がある.

  • キーボードレイアウトを英語にする.
  • キーアサインを変更する

前者の方法は, 英語レイアウトにすることで, 変換機能をなくしてしまうことで解決するというものになる. ゲームの起動時と終了時に毎回レイアウトを戻す必要がある. Windowsのメニューバーの文字アイコンを押して現れる「その他のキーボード設定」を選択すれば, キーボードを追加する設定ウィンドウが表示される.

後者の方法は, MB2のキーアサインオプションで, 視点操作のキーアサインを半角全角キー以外にすることで, デッドロックを回避することである. 私の日本語修正・校正modでは, この問題を回避するためにキーアサインを変更した設定ファイルも配布している. 説明書のこのセクションに詳細を書いている.


やや古い問題

以降は, 最新のバージョンではほとんど気にならなくなっている不具合である.


キャンペーンマップ上で変なところに赤や青の影法師が発生する

v1.0台で, なおかつDLSSを有効にしている場合, ゲーム本体をv1.1以降の新しいバージョンにすると解決する.

詳しい話はここに書いてある.


戦闘中にアイテムや操作できるオブジェクトを強調表示する黄色い輪郭線がずれている

これも上と同じ原因で起こっている. ゲーム本体をv1.1以降の新しいバージョンにすると解決する.


NPCの顔の表示がおかしい

百科事典限定で, 黒いシルエットになっているというのなら, それはv1.1 以降のFog of War 機能なので仕様である.

目玉が飛び出ている or 眼球がない or 目玉だけになっている -> 最近は見かけないが古いバージョンではよく発生した. 確実な解決方法はない. もしかすると, 間違えて modding kit を起動しているかもしれない. modding kit ではグラフィックが適切に表示されない. mod作成者でないならアンインストールして問題ないだろう.

参考になる画像を保存してなかったので, 一例が紹介されているredditのリンクを貼っておく.

https://www.reddit.com/r/Bannerlord/comments/ltn0ky/textures_and_meshes_seem_to_load_improperly_at/

https://www.reddit.com/media?url=https%3A%2F%2Fpreview.redd.it%2Feecll8y7sfk61.png%3Fwidth%3D1618%26format%3Dpng%26auto%3Dwebp%26s%3D99fa26268e42e0892ac14e4b8107d39f549a3719


テクスチャの読み込みが遅れる

画面が切り替わって数秒待ってから, NPCのテクスチャが読み込まれることがある. 解決方法はわからない.


  1. Steamの日本語フォーラムには別のゲームのよく似たエラーメッセージが出るから試せという投稿を見かけた. しかし別のゲームではGPUの問題以外にあまり共通点がないような気がする…確実な解決方法はわかっていないので, 以降の方法を試して効果がないなら試してもいいだろうが…↩︎

  2. 誰か既に開発元に報告しているのかは知らない↩︎