#はじめに
揮発性の話題になると思いますが、これはエディタを10分~1時間ほど使い続けたときに発生する、
- メニューウインドウやツールチップ・右下の通知ウインドウの表示がチラついたり、一瞬しか表示されない
- サブウインドウ上でメニューウインドウを出すと、メニューウインドウのサイズでサブウインドウがくり抜かれる
- メインウインドウのサイズを変えると真っ黒になる
以上の現象を解消するために行った対処法です。
約3ヶ月ほど苦しめられたので情報共有として記事にした次第です。
※ue4 menu flickering
(flickering は "ちらつく" のこと)で検索すると、様々なユーザーが悩まされているのを確認することができます。
#発生する現象の対象環境
- Windows10
- NVIDIAグラフィックドライバーの v457.09 より後のバージョン
#解消法
対策はいくつかあるようですが、どうやら環境依存が強いようです。
Windows Update や NVIDIA グラフィックドライバーの状況によって起きたり起きなかったりするようです。
※ UE4.12 でも似たような現象が起こっていたとの情報もあり
##対処その1 - グラフィックドライバーのダウングレード
上の回答内ではNVIDIAグラフィックドライバーを v457.09 にダウングレード(クリーンインストール)することで解消できたようです。
私の環境ではRTX3060ですので、そもそもそのバージョンがありませんでした...
なお、最近のグラフィックドライバーで脆弱性が発見されているので、ダウングレードはおすすめできません。
##対処その2 - UE4をDirectX12で動作させる
上のトピックは単純にDirectX12を有効にするにはどうすればよいか?の内容ですが、私が解決できた対処になります。
- ue4editor.exe の起動コマンドラインに
-dx12
を追加する - もしくは、UE4エディターの プロジェクト設定 → プラットフォーム → Windows → ターゲットのRHI → デフォルトのRHI を、"DirectX 12" に指定し、エディターを再起動する
以上でエディターが DirectX 12 で動作します。(DirectX 11では再現しました)
ただし、グラフィックボードによっては負荷が高く、ファンが唸るかもしれません。レイトレーシング対応グラフィックボード(RTXシリーズ)であれば大丈夫っぽいです。
試していませんが、他の RHI(Vulkan など)でも解消すると思います。
もしかしたら環境によっては逆(DirextX 11を指定しないと解消しない)かもしれません。
ちなみに解消はされているものの、大体同じようなタイミング以降、特定のポップアップ検索ウインドウのサイズが微妙に(1pxほど)震える現象を確認しています。
##対処その3 - 最終兵器「OS再インストール」
上のトピック主は、最終的に OS を再インストールしたら直ったようですが、解決の最終手段と見るべきでしょう。(UE4 Editorだけの不具合ですので我慢できるならしたほうが良いかもしれませんし)
##対処?その4 - エディタを再起動
解消するまでだましだまし使う方法ですね。
現象が発生したら、早やかに編集を全て保存し再起動するだけです。
操作が面倒な方は、以下のプラグインの使用を検討しても良いかもしれません。(Ctrl+Shift+Rで一発)
無料ですが、執筆時点で UE4.25 までしか対応していませんので、以下の記事を参考にすれば UE4.26 でも使えます。
#最後に
今回発生している現象は、Unreal Engine Issues で報告( UE-113639 ) されてはいるものの、再現せずとなっており、修正が困難、もしくは放置される可能性があります。
おそらくシェーダーコードに潜在的バグが入り込んでいて、ふとした時に直ったり再発するんじゃないかなーと個人的に思っています。