blender の箱を消したら

blender を覚えたい蜂砂の発見や操作メモです。オブジェクトの動かし方は覚えたので中級者を目指したい。

自分好みのワークスペーステンプレートをつくる

ワークスペースを自分好みに変えたい

v2.79 と比べて選びやすくなった(気がする)ワークスペース。デフォルトの General を基本的に使うけど、スクリプトなんてわからないんで Scripting いらないし、余計なのが多い。追加や削除もできるんだけど、なんとなくデフォルトのものをいじるのはイヤ。

Generalのワークスペース構成

で、そもそも [File] > [New] で選ぶこのワークスペースのセットって追加したり削除したりできないんだろうかと思った。

File-New

調べてみると、これはアプリケーションテンプレートという機能らしい。ワークスペースだけでなく、以下のものをセットで構成できる。

  • 起動ファイル(startup.blend)
  • 環境設定(userpref.blend)
  • スプラッシュスクリーン(うまくいかなかった。後述)
  • 起動スクリプト(__init__.py)

既存の環境をいじらずに、こういったセットを「アプリケーション」として他人に配布するためのテンプレート機能らしい。

フォルダ構成を知る

まず、この機能、インストールは blender 上でできるが、アンインストールは直接ファイルを消す必要があるので注意。インストールは直接ファイルを置いてもよい。以下のような構成となっている。

  • blenderのアプリケーション設定ディレクト<APP_DIR>
    • %userprofile%\appdata\Roaming\Blender Foundation\Blender\<バージョン番号>
  • テンプレートインストール先(今回作成される)
    • <APP_DIR>\scripts\startup\bl_app_templates_user\<テンプレート名>
  • ユーザ設定保存先(今回作成される)
    • <APP_DIR>\config\<テンプレート名>

間違って入れてしまった場合ややり直したい場合は、上のディレクトリのうち、テンプレートインストール先とユーザ設定保存先(あれば)を削除すればよい。

テンプレートのファイル達を揃える

テンプレートは、必要なファイルを揃えて、ZIPファイルでかためて、UIでインストールすることになる。ちなみに全てを揃える必要はなく、自分の好きなものだけでOK。

テンプレートの名前のフォルダをどこかに作っておく。今回は、hs_app としてデスクトップにフォルダを作った。

まずは起動ファイル

これは画面を好きな状態にして blend ファイルを作るだけ。もちろん、ワークスペースの状態だけでなく、UIのレイアウトなども保存される。

ちなみに、僕の構成は General を基準に、下のようにした.

  • メインで操作する画面は Layout 用途だけじゃないので Main に名前を変更
  • Modeling は、メイン画面でやれるので削除
  • Sculpting もメイン画面でできるし、スカルプトだけなら別に専用テンプレートが用意されてので削除
  • UV EditingTexture Paintは(そこまで作品作ったことないのもあるけど)だいたい一緒の画面でできそうなので1つにまとめる
  • レンダリング結果はモデリングした画面上で見るので Rendering も不要。
  • スクリプトは書かないので Scripting 削除

新しい自分用テンプレート

すっきり♪

完成したら、startup.blend という名前で hs_app フォルダに保存する。

設定ファイル

設定の一部をテンプレート化できる。変更できるのは、テーマ、アドオン、キーマップ、ビューポートのライティングの4つ。

設定画面

設定を反映した状態で、<APP_DIR>\config\userpref.blend にある設定ファイルを hs_app にコピーする。

スプラッシュスクリーン用画像

マニュアルに記載はあるのだが、うまく反映できなかった…。何が間違ってるのかわからないので、誰か知っている方がいたら教えてください。(2020/1/6追記:v2.81でふと見たら画像が表示されてました。v2.80のバグだったのかな)

一応、仕様だけ書いておくと以下の通り。

  • splash.png : 501x282 の PNG画像
  • splash_2x.png : 1002x564 の PNG画像(高解像度モニタ用)

これも、hs_app フォルダに保存する。

起動スクリプト

設定や画面レイアウトなどだけでなく、起動時にPythonスクリプトを走らせることで、もう少し高度なことができる(らしい)。

僕はスクリプトは書けないので、簡単なものでお試し。違いがすぐわかるようUIが2倍になっちゃうやつ。

import bpy 
def register():
    bpy.context.preferences.view.ui_scale = 2.0

def unregister():
    bpy.context.preferences.view.ui_scale = 1.0

if __name__ == "__main__":
    register()

上記のテキストを、__init__.py という名前で hs_app ディレクトリに保存。register()unregister()という名前の関数が必要らしい。

インストールするのです!

ここまでで、hs_app(アプリケーション名、なんでもOK)というディレクトリに、以下の5つのファイルが保存されている。

  • __init__.py
  • startup.blend
  • userpref.blend
  • splash.png
  • splash_2x.png

これをフォルダごとZIPファイルとして固める。

ZIP!

続いて、blenderを開いて、左上のblenderマークをクリック。メニューが表示されるので、一番下の Install Application Template... を選択する。

インストール

ファイルを選択する画面になるので、上で作った ZIPファイルを選ぶ。

これでインストールされた。実際には、テンプレートインストール先のディレクトリにZIPファイルの中身が展開されているだけ。

この状態で、改めて [File] > [New]を選ぶと・・・

自分のテンプレートが追加されている

Hs Appというのが選べるようになっている!選べば、もちろん先程設定したタブの構成となる。(スプラッシュスクリーンは出ない...)

作成時には hs_app というフォルダ名にしていたが、アンダースコアはスペースに変換されて、それぞれの単語の頭が勝手に大文字になる模様。

無事、自分用のテンプレートができた。

テンプレートからさらに設定を変えると?

この状態で、設定やレイアウトなどを変更して Save Startup File をすると、ユーザ設定保存先に 別に 設定が保存される。なので、Load Factory Settings を選べば、テンプレートの初期状態に戻すことができる。

もちろん、これは別のテンプレートには影響がないので、General2D Animation のような標準で用意されているテンプレートにも影響を与えないので安心。

ちなみに、標準テンプレートはどうもソースにハードコーディングされてるっぽく、消すこともできない(だからこそ安心できるけど)。

起動時にアプリケーションテンプレートを指定する

せっかく作ったテンプレートも、起動時にはいつもの General になってしまって、いちいち [File] > [New] するのもめんどくさい。

起動パラメタ --app-template で作ったテンプレートを指定することで、直接そのテンプレートを開いた状態で起動できる。

blender.exe --app-template <template name>

これで、より自分好みの画面や設定で使うことができるようになった。