Blenderは高性能な3DCGソフトウェアであり、多くのクリエイターに利用されています。しかし、リモートデスクトップ(RDP)環境でBlenderを起動しようとすると、以下のようなエラーメッセージが表示されることがあります。
「Blender 3DCG モデリング・マスター」という本を購入しました。
常にWindowsのリモートデスクトップ(RDP)でコンピュータを操作しています。
BlenderをWindows7にインストールして起動しようとしてみたところ、以下のエラーが発生しました。
Blender - Unsupported Graphics Card or Driver
---------------------------
A graphics card and driver with support for OpenGL 3.3 or higher is required.
Installing the latest driver for your graphics card may resolve the issue.The program will now close.
---------------------------
このエラーは、リモートデスクトップ接続時にBlenderが必要とするOpenGL 3.3以上のサポートが得られないことが原因です。本記事では、この問題の背景、原因、そして具体的な解決策を初心者にもわかりやすく解説します。
目次
背景と原因
OpenGLとBlenderの関係
OpenGLは、3Dグラフィックスを描画するためのAPI(Application Programming Interface)であり、BlenderはこのOpenGLを利用して3Dモデルの表示や編集を行います。Blenderのバージョン2.8以降では、OpenGL 3.3以上のサポートが必須となっています。
リモートデスクトップ環境の制限
Windowsのリモートデスクトップ接続(RDP)では、接続時に仮想的なディスプレイアダプターが使用されるため、OpenGLのハードウェアアクセラレーションが無効化されることがあります。その結果、Blenderが必要とするOpenGL 3.3のサポートが得られず、起動時にエラーが発生します。
Blenderがリモートデスクトップで起動できない問題の解決策1
TeamViewerで接続すれば、Blenderを起動することができます。
起動できたら、リモートデスクトップの接続に切り替えれ使用できます。
TeamViewerなどのリモートアクセスツールを使用すると、リモート接続時にもホストPCのグラフィックドライバーがそのまま利用されるため、OpenGLのハードウェアアクセラレーションが有効になります。これにより、Blenderを正常に起動・操作することが可能です。
手順:
-
ホストPCとクライアントPCの両方にTeamViewerをインストールします。
-
TeamViewerを使用してホストPCに接続します。
-
Blenderを起動し、正常に動作することを確認します。
-
必要に応じて、リモートデスクトップ接続に切り替えて作業を続けます。
Blenderがリモートデスクトップで起動できない問題が解決しない方法
バッチファイルで遅延起動させるようにしてみました。
次の内容のバッチファイルを作りました。
@echo off
timeout /t 10 /nobreak
call "C:\Program Files\Blender Foundation\Blender\blender.exe"
バッチファイル実行後10秒待たせてからblender.exeを起動。
blender.exeを起動する前にリモートデスクトップの接続を切っておきます。
これは、駄目でした。
Blenderがリモートデスクトップで起動できない問題の解決策2
バッチファイルの内容を次のように変更しました。
@echo off
tscon 1 /dest:console
call "C:\Program Files\Blender Foundation\Blender\blender.exe"
tscon コマンドにより、一旦物理的なコンソールを持つセッションに切り替えてアプリケーションの起動をするという処理です。
Windowsのtscon
コマンドを使用して、リモートデスクトップセッションをコンソールセッションに切り替えることで、OpenGLのハードウェアアクセラレーションを有効にすることができます。
これを実行するとリモートデスクトップは一旦切断されますが、再接続するとBlenderが起動していることがわかります。
tscon 1 /dest:console でエラーが発生する場合
この場合、セッションIDが間違っています。
コマンドプロンプトで「query session」というコマンドを実行してみます。
次の画像の場合、セッションIDは2にする必要があります。
「tscon 0 /dest:console」を実行してみると、エラーコード5が発生します。
エラー [5]:アクセスが拒否されました。
「tscon 1 /dest:console」を実行してみると、次のエラーが発生します。
「tscon 1 /dest:console」を実行してみると、エラーコード7045が発生します。
5
エラー [7045]:要求されたセッション アクセスは拒否されます。
セッションIDを取得してtsconの後ろに埋め込むバッチファイルを書いてみましたが、うまく作ることができませんでした。
tsconコマンドを使用してセッションを切り替える方法
Windowsのtscon
コマンドを使用して、リモートデスクトップセッションをコンソールセッションに切り替えることで、OpenGLのハードウェアアクセラレーションを有効にすることができます。
手順:
1.コマンドプロンプトを管理者権限で起動します。
2.現在のセッションIDを確認するため、以下のコマンドを実行します。
3.表示されたセッションIDを確認し、以下のコマンドでセッションを切り替えます。
例: セッションIDが2の場合
この操作により、リモートデスクトップ接続が切断され、ホストPCのコンソールセッションに切り替わります。その後、再度リモートデスクトップ接続を行うと、Blenderが正常に起動することがあります。
注意点:
-
tscon
コマンドの実行には管理者権限が必要です。 -
セッションIDが正しくない場合、以下のようなエラーが表示されることがあります。
エラー [7045]:要求されたセッション アクセスは拒否されます。
この場合、正しいセッションIDを確認し、再度コマンドを実行してください。
よくある質問(FAQ)
Q1: Blenderのバージョンによってはリモートデスクトップで起動できるものがありますか?
A1: Blender 2.7x系など、OpenGLの要件が低いバージョンでは、リモートデスクトップ環境でも起動できる場合があります。ただし、最新の機能や安定性を求める場合は、最新バージョンの使用をおすすめします。
Q2: 他のリモートアクセスツールでもBlenderは正常に動作しますか?
A2: TeamViewer以外にも、AnyDeskやChromeリモートデスクトップなどのツールでも、Blenderが正常に動作する場合があります。ただし、各ツールの仕様や設定によって異なるため、事前に確認が必要です。
Q3: tsconコマンドを自動化する方法はありますか?
A3: バッチファイルを作成し、tscon
コマンドを自動で実行することが可能です。以下はその例です。
for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
%windir%\System32\tscon.exe %%s /dest:console
)
このバッチファイルを管理者権限で実行することで、現在のセッションをコンソールセッションに切り替えることができます。
※本記事で紹介している方法は2019年時点のものであり、WindowsやBlenderのバージョンアップにより現在では動作仕様が異なる可能性があります。最新の環境における挙動については、公式サイトやフォーラムなどでの確認をおすすめします。