Blender

【Blender】起動時に強制終了してしまう問題

通常、Blenderを起動すると
一瞬コンソールが立ち上がった後、Blenderのウィンドウが立ち上がると思います。

今回は、一瞬コンソールが立ち上がった後
いくら待ってもBlenderのウィンドウが表示されない
という状況に陥りましたので、その解決方法と自分が辿った手順を
忘れないように記録したいと思います。

Blender関係の環境トラブルの記事は少ないので
少しでも誰かの役に立てばと思います。

環境

PC環境かなり古いです

OS: windows 10
メモリ: 32GB
CPU: Intel Corei7-6700 CPU@3.40GHz

GPU1: Intel(R) HD Graphics 530
ドライバ: ver. 27.20.100.8682
GPU2: NVIDIA Quadro K620
ドライバ: ver. 10.18.13.5330

Blender: ver. 2.90 -> 2.91 -> ver. 2.83

何が原因だったか

NVIDIA GeForce とかにしとけばよかったのかなって思いました。

何が原因だったのか、結論から言うと
Blenderを2.90から2.91にアップデートしたことにより
OpenGL関係のファイルが足りなくなったこと と、もう一つ
IntelGraphicsドライバのバージョンが間違っていた ことが原因でした。

opengl32.dll というファイルをblender.exeと同じディレクトリに置くことで
Blenderが起動できるようになりました。

その後、Blenderの動作が異様に重くなったため
原因調査したところ、IntelGraphicのバージョンがおかしいと気付き
ダウングレードしてみたら快適に動くようになりました!

今回試した修正方法を
この後詳しく触れていきます。

現象

Blenderの2.91が最新版としてリリースされていたので使ってみようと思いインストール

Blenderを起動すると、一瞬コンソールが立ち上がり、すぐに消える。
その後、いくら待ってもBlenderのウィンドウが立ち上がらない。

おかしいなと思い
一瞬表示されるコンソールの文字を目を凝らして見てみると
なんかアプリがclashしてるっぽいことが書いてあった(と思う)

まずは、Blenderのログファイルを確認する

何らかの原因で、Blenderが落ちている。

起動中のコマンドプロンプトを見たところ
logが吐かれていそうなので、logファイルを探してみることに

C:\Users\name\AppData\Local\Temp/blender.clash.txt ここにあるっぽい

clash.txt ということは、やはり起動中にクラッシュしてしまったのか

中身はこんな感じ

# Blender 2.90.1, Commit date: 2020-09-23 06:43, Hash 3e85bb34d0d7

# backtrace
Exception Record:


ExceptionCode         : EXCEPTION_ACCESS_VIOLATION  # これがエラーコード?
Exception Address     : 0x0000000000000000
Exception Module      : 
Exception Flags       : 0x00000000
Exception Parameters  : 0x2
	Parameters[0] : 0x0000000000000008
	Parameters[1] : 0x0000000000000000


Stack trace:
blender.exe         :0x00007FF648697950  bli_windows_system_backtrace_stack_thread
blender.exe         :0x00007FF648696BC0  BLI_system_backtrace
blender.exe         :0x00007FF644895D10  windows_exception_handler
KERNELBASE.dll      :0x00007FFDA47E0F90  UnhandledExceptionFilter
ntdll.dll           :0x00007FFDA7203600  memset
ntdll.dll           :0x00007FFDA71ECC40  _C_specific_handler
ntdll.dll           :0x00007FFDA7201730  _chkstk
ntdll.dll           :0x00007FFDA71CA4F0  RtlRaiseException
ntdll.dll           :0x00007FFDA7200490  KiUserExceptionDispatcher

EXCEPTION_ACCESS_VIOLATION
これがエラーコードっぽいので、これでぐぐってみる。

調べてみるとドライバのアップデートで解決したという記事が多いので
NVIDIAのドライバアップデートと、Intelのドライバアップデートを試してみる。

NVIDIAとIntel Graphicsのアップデート

NVIDIAとIntelのバージョンアップして、以下のバージョンになりましたが
やはりBlenderは起動せず。

NVIDIA Quadro K620 ver. 27.21.14.527
Intel(R) HD Graphics 530 ver. 27.20.100.8682

ドライバのバージョン確認手順

ドライバのバージョン確認方法とアップデート手順も記載します。

  1. Windowsキー+ Rで、実行ウィンドウを開きます。
  2. 「dxdiag」と入力してOKをクリックし、DirectX 診断ツールを開きます。
    DirectX 診断ツールでは、OSバージョンやGPUのバージョンを確認できます。
  3. 診断ツールの「ディスプレイ」から、グラフィックカードのバージョンを確認することができます。

Blenderをデバッグモードで起動してログを確認する

ドライバのバージョンアップでも改善しなかったので
さらにググってみると、Blenderをデバッグモードで起動できるよう。

--debug-all オプションをつけて、powershell から起動させて
ログを見れるようなので、試してみることに。

手順

blender.exeファイルのあるフォルダで
Shift+右クリック -> 「Power Shellウィンドウをここで開く」をクリック

PowerShellが起動するので、以下のコマンドを実行

./blender.exe --debug-all

この状態で起動すると、デバッグログがPowerShellに表示される

Logは以下

Switching to fully guarded memory allocator.
read file
  Version 280 sub 39 date unknown hash unknown
DEG_relations_tag_update: Tagging relations for update.
DEG_relations_tag_update: Tagging relations for update.
DEG_relations_tag_update: Tagging relations for update.
DEG_relations_tag_update: Tagging relations for update.
DEG_relations_tag_update: Tagging relations for update.
graph_id_tag_update: id=SCScene flags=LEGACY_0 source=USER_EDIT
Error   : EXCEPTION_ACCESS_VIOLATION
Address : 0x0000000000000000
Module  :
Thread  : 00003670
Writing: C:\Users\name\AppData\Local\Temp\blender.crash.txt

graph_id_tag_update: id=SCScene flags=LEGACY_0 source=USER_EDIT` のところでエラーになっているのだろうか・・・?

opengl32.dllを入れる

調べていくと
似たような症状が出ているページで、後日解決したとのことでコメントがついていました。
opengl32.dll をダウンロードして、blender.exeと同じディレクトリに入れればOK、ということらしい。。。

ダメ元でやってみたら、起動は一応できた!
が、すぐに終了してしまう。。。別のエラーが発生していました。。

別のエラーが発生した

opengl32.dll を入れて、再度BlenderをPowerShellから
デバッグモードで起動してみた時のログ。

# コマンド実行
PS D:\programs\Blender\2_91> ./blender.exe --debug-all

# ログ
Switching to fully guarded memory allocator.
read file
  Version 280 sub 39 date unknown hash unknown
DEG_relations_tag_update: Tagging relations for update.
DEG_relations_tag_update: Tagging relations for update.
DEG_relations_tag_update: Tagging relations for update.
DEG_relations_tag_update: Tagging relations for update.
DEG_relations_tag_update: Tagging relations for update.
graph_id_tag_update: id=SCScene flags=LEGACY_0 source=USER_EDIT
ED_screen_refresh: set screen

~~ 中略 ~~

Python Script Load Time 0.1910
Warning, unregistered class: ObjectConstraintPanel(Panel)
Warning, unregistered class: BoneConstraintPanel(Panel)
Warning, unregistered class: ConstraintButtonsPanel(Panel)
Warning, unregistered class: ConstraintButtonsSubPanel(Panel)
Warning, unregistered class: SEQUENCER_PT_sound(Panel)
Warning, unregistered class: CYCLES_RENDER_PT_sampling_total(Panel)
loading preset: D:\programs\Blender\2_91\2.91\scripts\presets\keyconfig\blender.py
FRS_set_context: context 0x00000276D8C92F58 scene 0x00000276DB14B428
UI_menutype_draw: opening menu "WM_MT_splash"
ghost_event_proc: ghost redraw 1
ghost_event_proc: window 1 state = maximized
win move event pos 0 40 size 2560 1377
ED_screen_refresh: set screen
UI_menutype_draw: opening menu "TOPBAR_MT_editor_menus"
UI_menutype_draw: opening menu "TIME_MT_editor_menus"
UI_menutype_draw: opening menu "VIEW3D_MT_editor_menus"

# ここでエラーが発生
ERROR (gpu.shader): OVERLAY_shader_outline_prepass_pointcloud_1223 Linking:
      |
      | Error:  Input block `ShaderStageInterface' is not an output of the previous stage

Error   : EXCEPTION_ACCESS_VIOLATION
Address : 0x00007FF74F13DBF0
Module  : blender.exe
Thread  : 00001108
Writing: C:\Users\name\AppData\Local\Temp\blender.crash.txt

エラー部分のみの抜粋

ERROR (gpu.shader): OVERLAY_shader_outline_prepass_pointcloud_1223 Linking:
      |
      | Error:  Input block `ShaderStageInterface' is not an output of the previous stage

Error   : EXCEPTION_ACCESS_VIOLATION

ShaderStageInterface の出力先が違う、みたいな感じの内容でよいのか。

英語自信ないのもあるけど、そもそも ShaderStageInterface が何を指しているか分からない・・・

Blenderを2.83にダウングレード

調べてると、とりあえずディスプレイドライバをアップデートしろ
というのがやはりある。

ダメ元でもう一度ドライバをアップデート
windows update もあったので、そちらもアップデートしてみる。

ここでアップデートする時に、ドライバのバージョンを間違えて入れてしまい
Blenderの動作が重くなる不具合が発生しました。

アップデート後、.exeから起動すると
グレー画面が表示され応答しなくなる。。。

power-shell から、-debug-all オプションをつけて実行すると
やはり同じ個所でエラーになって強制終了する。。。

試行錯誤している内に
互換性の問題なんじゃないかと思い
とりあえず起動できればなんでもいいやってことで

ダメ元でblender 2.83 を入れ直してみたところ、無事に起動できた。。。
2.9系と2.8系の違いってなんだろう・・・

GPUのサポート状況が2.8と2.9で違いそうだし
そのあたりの影響かもしれない。

Blenderの動作が異様に重くなる現象

Blender2.83を入れ直したあと、Blenderを動かしてみたところ
動作が重い。異様に重い。。。

カメラ操作だけで、CPUの負荷が100%を超えている・・

NVIDIAのドライバ設定の問題

Blenderが任意のGPUを使用してくれるように設定を変更ができるようなので
試してみました。

windowsの設定画面を開きます。
ディスプレイ -> グラフィックスの設定
blender.exeを追加 して
高パフォーマンスの設定 にしておく。

これで、Blenderの処理に、NVIDIAが使われるようになる、はず。
しかし、私の場合結果は変わらずでした。。。

しかもGPUには、ほぼ負荷がかかっていなかった。
つまり、Blenderの処理にNVIDIAが使われていないようだ。

NVIDIAのドライバをダウングレード

NVIDIAのドライバのバージョンを、ダメもとで古い状態に戻してみた

GPU: NVIDIA Quadro K620

ドライバ: ver. 27.21.14.5257 から
ドライバ: ver. 10.18.13.5330 にダウングレード

ver. 10.18.13.5330 が、Blenderが強制終了する不具合が起こる前の状態。
さくさく動いていたころのドライバのバージョン。
そのころにNVIDIAのGPUが使われていたかどうかは分からないが・・・

しかし、変化なし。
相変わらずCPUに負荷がかかりBlenderの動作が重い。

野良でインストールしたopengl32.dllは重いらしい・・・?

2014年のものですが
Blenderの日本公式の掲示板にこんな書き込みが

また、ゲームでは割とポピュラーな方法として、opengl32.dll を実行ファイルと同じフォルダに入れるというのもあります。
ただ、私も下の Mesa の Opengl32.dll を Blender のインストールフォルダに入れてみたのですが、表示されない領域があったり、文字もつぶれて読めない部分もあり、(私の古いPCの所為ですが)速度が遅くて使用できない状態でした。
このDLLはかなり昔の物だったようで、探せばもっと新しい DLL が見つかるかもしれません。
ただし信用できそうなところからダウンロードされることをおすすめします。

https://blender.jp/modules/newbb/viewtopic.php?topic_id=1597&pos=10

opengl32.dll を入れても、うまく動作しない場合もあるようです。
表示されない領域などはなかったので、今回の自分のパターンとは違うかもですが。

信用できそうなところからダウンロード、ということで
やはり本家サイトからのダウンロードが一番良さそうです。

opengl32.dll で検索すると、紹介しているサイトがたくさんでてきて
そこからもダウンロードできますが、

OpenGL32.dllはたぶん、ここが本家かも・・・。
www.opengl.org

WikiDownloading OpenGLから各OS別にダウンロードサイトに飛べるみたい。
(NVidiaだとディスプレイドライバーのダウンロードサイトに飛ばされるし・・・。)
Intelだとシステムを調べてくれるようなので、自分で探して適当なのをインストールするよりは安心できると思います。

https://blender.jp/modules/newbb/viewtopic.php?topic_id=1597&pos=10

IntelGraphicsのバージョンによって
Openglのサポートしているバージョンが違うっぽい。

つまり、今のIntelGraphicsで使っているOpenglのバージョン
Blender2.83で使いたいOpenglのバージョンと食い違ってるってことかな?

Intel Graphics のドライバーを間違えていた可能性・・・?

intel core-i7 6700 で、第六世代なのに
第7世代のドライバを入れていたかもしれない・・・

今 ver 27.20.100.8682 が入っているので
15.45.33.5164を入れてみる

ver. 27.20.100.8682 から ver. 15.45.33.5164 へ、ダウングレード

ドライバを入れなおしたところ、Blenderの動作が軽くなった!!!

まとめ

再度に、Blenderが起動できなくなって自分がためした調査方法
解決策をまとめておきます。

1.Clashログを確認する

C:\Users\name\AppData\Local\Temp/blender.clash.txt ここにあるっぽい

2.NVIDIAとIntel Graphicsのアップデート

バージョン間違えないように!!笑

3.Blenderをデバッグモードで起動してログを確認

blender.exeのあるフォルダでShift+右クリック
PowerShellで ./blender.exe –debug-all を実行!

4.opengl32.dllを入れる

blender.exeのあるフォルダにopengl32.dllを入れる

5.動いていたころのBlenderを入れてみる

2.8系、2.9系など、メジャーバージョンアップでは
大きく仕様が変わることもあるので、別バージョンを入れて検証してみるのも効果的です。

自分は仕事ではMacBookを使っているので
windows環境でのトラブルには結構弱いです。

根本的に知識がないのもあるので
今回のようにバージョン入れ間違えていた、みたいな凡ミスが原因で
Blenderが起動しなくなることもままあります。

ので、少しでも誰かの助けになればと思います!

ピックアップ記事

  1. 【Rails】オブジェクトの中身をログに出力する
  2. 【git】git checkoutする時に、ベースブランチを指定する
  3. 【C97】冬コミ受かってました
  4. 【C98】夏コミ申し込みました。
  5. 【WPテーマ自作】ローカル環境でWP開発ができる「Local」の導入

関連記事

  1. Blender

    【UE4】用語備忘録メモ

    UE4、Blenderを勉強するにあたって初めて知ったCG関連の用語を…

カレンダー

2021年1月
 123
45678910
11121314151617
18192021222324
25262728293031

最近の記事

  1. WordPress

    【その他】ブログのテーマを変えました
  2. 【WPテーマ自作】ローカル環境でWP開発ができる「Local」の導入

    WordPress

    【WPテーマ自作】ローカル環境でWP開発ができる「Local」の導入
  3. Blender

    【Blender】起動時に強制終了してしまう問題
  4. App

    【ツール開発】ポケモンの種族値と実数値を調べるツール – 1
  5. 同人イベント

    【C98】夏コミ申し込みました。
PAGE TOP