Blender 2.9とディスプレイのアレコレ

Blender関連の記事を書くのはとても久しぶりの事だと思う。大学関連の事で余裕が無かったり、そもそも他の事に興味が行っていたり。久々にBlenderを弄っていたら、これまた使用用途が限られそうなテクニックを修得してしまった。まぁ、入り口としてはアリかな…

この記事で紹介するアレコレ

  • Blenderをサブディスプレイ上で最大化した状態で起動する

随時更新…するかも?

環境

  • Blender:2.91.0
  • OS:Windows10 Pro
  • PC:GALLERIA GCR1660TGF-QC
    • CPU:Intel Core i7-9750H
    • GPU:GeForce GTX 1660 Ti
    • RAM:16GB(8GB * 2)
    • SSD:512GB + 500GB
  • ディスプレイ
    • ノートパソコンのディスプレイと外部ディスプレイによるデュアルディスプレイ
      • 本体ディスプレイ:メインディスプレイ(1)、FHD、144Hz
      • 外部ディスプレイ:サブディスプレイ(2)、Pixio PX242、 FHD、75Hz
    • 下記の画像のように配置
      • 外部ディスプレイはスリープ状態からの復帰の遅いため、メインディスプレイは本体側に設定。ただし、利便性により、外部ディスプレイが事実上のメイン。
レイアウトチェンジ!

ディスプレイの配置状態。

ディスプレイの配置

ディスプレイの配置

Blenderをサブディスプレイ上で最大化した状態で起動する

上記の環境でも説明した通り、外出時を除き、使用時には外部ディスプレイを中心に使っている。windowsの通知機能(主にメール)によって消灯状態から復帰してくる場合があるのだが、この外部ディスプレイの場合、画面表示が1テンポ遅れてしまうのである。表示そのものが遅延しているのではなく、消灯状態からの表示に少し時間がかかってしまうのである。この遅れが利便性に影響をもたらす為、メインディスプレイに関しては即表示してくれる本体のディスプレイに設定している。フレームレートも高いしね!

大抵のソフトは外部ディスプレイ側で起動すると外部ディスプレイ側に表示される。しかし、どこで起動しても頑なにメインディスプレイに表示してくる困ったソフトも存在する。残念ながらBlender(2.8~)もその中に入るソフトである。

サブディスプレイの悩み

  • 起動時にウィンドウを動かすのが少し面倒
  • 一時ウィンドウが使っていない方のディスプレイに出てくる
    • レンダリング画面は問題ないけど、ファイルブラウザとプリファレンスのはとてもウザい。

適当に列挙してみたけど、地味なウザさがある。
プリファレンスそのものの一時ウィンドウを除き、解決方法を発見している。

一時ウィンドウの設定

一時ウィンドウの設定

一時ウィンドウの設定

結論から書くのだが、Blenderのプリファレンスの設定を変更することで、一部を除いて解決することができた。

レンダリング画像表示は支障が無かったのでそのまま、ファイルブラウザーがサブディスプレイに表示されないのはウザかったので旧バージョンのような全画面方式に。

上記の設定を適用した例

上記の設定を適用した例

左側はサブディスプレイ、右側がメインディスプレイ。レンダリングしたキャラは星のカービィのカプセルJというキャラ。久しぶりにリグをみてみたら結構作りこまれていた。なんだかんだで操作方法は体が覚えているみたい。

この設定で唯一解決できなかったのが、Blenderプリファレンスそれ自体の表示位置。マジメに探せば見つかるのかもしれないが、サブディスプレイには出てこない。ファイルブラウザ程頻繁に使うモノではないにしろ、ウィンドウを動かす必要があるのは少し面倒に感じる。

画像の画面上部の「ウィンドウ」タブから開いた新しいウィンドウなどは同じディスプレイに表示された。一時ウィンドウとは違うモノだと思うけど。

起動時のウィンドウ表示位置をサブディスプレイにする +最大化

適当に調べて出てきた方法がコレ。もっと効率の良い方法はあると思うので、見つかったら更新するかも。
最終的には、ショートカットとして以下のプロセスを実行できるようになる。

※コマンドプロンプトに関するお問い合わせはご遠慮ください。質問コメント等を頂いても回答できない場合がございます。

コマンドラインで起動する+バッチファイル化

blender -p -1920 0 1920 1080 -M

Blenderをコマンドラインで操作することが出来るのは割と知っている人も多いのではないだろうか。ワシはゲームデータのリッピングとLinuxでコマンドラインに慣れた。

方法としては、コマンドプロンプトを開き、blender.exeが存在するディレクトリに移動し、上記のコマンドをそのまま入力する、というもの。

軽く解説をすると、-pはウィンドウの位置とサイズを指定するオプション。-Mは最大化のオプション。

-p X座標 Y座標 width height

この環境で座標を[0 0]とすると右側のメインディスプレイに表示されるので、メインディスプレイが起点になっていると思われる。0より左側に配置するなら、負の値を入力すればよい!というわけ。最大化のオプションが存在する時点でサイズ指定は無意味に感じるかもしれないが、最大化を解除しても同じサイズで表示されるのでコレでも良いと思う。

いちいちコマンドプロンプトを開き、blender.exeのディレクトリまで移動し、コマンドをコピペするのは頑なにメインディスプレイに出てくるウィンドウを動かす作業よりも面倒。なので、バッチファイルにしてショートカットと同じ感覚で起動できるようにする。

テキストエディタを開き、コマンドをコピペし、拡張子をbatにするだけで出来上がり。出来上がったバッチファイルはblender.exeと同じディレクトリに配置しないと動かないので注意。

バッチファイルを実行すると、コマンドプロンプトが表示されてからBlenderが起動する。ただ、これで立ち上がったコマンドプロンプトを終了すると、Blenderも終了してしまう。最小化をしてもタスクバーに残るし、間違って閉じてしまう危険性も多少はある。そのため、以下の方法でコマンドプロンプトを表示させないようにする。

コマンドプロンプトを表示しない

Set objWShell = CreateObject("Wscript.Shell") 
objWShell.run "cmd /c バッチファイル.bat", vbHide

下記の参考サイトより、VBSスクリプトのソースコード。VBS自体を弄るのはコレが初めて。詳しくは参考リンクを参照。

「”cmd /c バッチファイル.bat”」内の「バッチファイル.bat」を上記で作成したバッチファイル名に変更し、テキストエディタでコピペして.vbs形式で保存すれば完成。バッチファイルと同じように、VBSファイルを直接実行することで、文法ミスなどが無ければ、コマンドプロンプト無しでBlenderが立ち上がる。最小化ではないのでタスクバーにも表示されないし、間違えて閉じる可能性も無くなる。

コレのショートカットを作ってデスクトップなどに配置すればいい感じになる…のだが、タスクバーにピン留めしようとしたところ、スクリプトそのものをピン留めすることが出来ず、windows Script Hostがピン留めされてしまった。真面目に探せば解決方法が見つかるかもしれないし、タスクバーの仕様でダメなのかもしれない。

参考リンク

Command Line Arguments - Blender 4.2 Manual

Blender 2.91の公式マニュアル。今回使ったコマンド以外のコマンドも載っている。日本語設定ではあるが、翻訳が終わっていない。読めない場合or面倒な場合は自動翻訳をどうぞ。

[Windows] バッチファイル(.bat)を非表示・最小化した状態で起動する
バッチファイルを実行すると、コマンドプロンプトの黒い画面が表示されます。タスクスケジューラなどで自動実行している場合、コマンドプロン

VBSのソースコードを借りました。ありがとうございました。

 

コメント

タイトルとURLをコピーしました