文書の過去の版を表示しています。
目次
Blender
インストール
Ubuntu 18.04の場合
Ubuntu18.04では最初からapt install blenderでインストールが可能.
インストールされるバージョンは2019年5月現在は2.79である.
Ubuntu 16.04の場合
Inria大学のThomas Schiexさんが管理しているppaからインストールするのが良さそう.
sudo add-apt-repository ppa:thomas-schiex/blender sudo apt update sudo apt install blender
アドオン
アドオンとはサードパーティが作成するプラグインのようなものである.
アドオンでインストールするファイル自体は
~/.config/blender/2.79/scripts/addonsに入る.
日本語化
日本語化をするには設定を変更する必要がある. 設定は設定ファイルとして特定の場所に保存されている.
初めて環境設定をしたときに~/.config/blender/$(version)/config/にuserpref.blendが出来る.
設定系ファイルの一覧
設定ファイルディレクトリ ~/.config/blender/$(version)/config/にuserpref.blend の中身 |
||
|---|---|---|
| ブックマーク | bookmarks.txt | ファイルを開くとき等に表示される Bookmarks と Recent のフォルダ名が書かれている |
| 最近のファイル | recent-files.txt | File - Open Recent に表示される最近使ったファイルが書かれている |
| テンプレート | startup.blend | File - New で新規ファイルを作成したときに利用されるテンプレートファイル |
| 設定 | userpref.blend | File - User Preferences での設定が書かれている |
日本語化
Blender2.8にて,
Blender > Preferences > Interface > Translation > Language
言語設定のトグル切り替え
日本語話者で海外のチュートリアルなど参照して勉強している場合は, 日本語で操作したい場面と英語で操作したい場面があると思う.
トグル設定をしておくとPauseキーで一発切り替えできるようになる.
設定にはサードパーティのアドオン(プラグイン)が必要.
以下のようにダウンロードしてアドオンのディレクトリに置く.
wget https://blender.jp/modules/newbb/download.php?url=/1_ToggleTranslatedUI-111.zip.1368622219000 -O ToggleTranslatedUI.py.zip unzip ToggleTranslatedUI.py.zip
Python API
BlenderにはPythonで操作するためのAPIであるbpyパッケージがある.
bpyは/usr/share/blender/scripts/modules/bpyにある
実行されているPython自体のバイナリがどこにあるのか sys.executable で調べられるのだが,
BlenderのPythonコンソールでこれを調べると,/usr/lib/blender/blenderというバイナリファイルのようだ(pythonという名前では無いっぽい).
ちなみに普通のpythonでこれを調べると /home/horiuchi/.pyenv/versions/anaconda3-2018.12/bin/python みたいな感じで出てくる.
| Blender Python API 基本事項 | |
|---|---|
| 実行されているPython自体 | /usr/lib/blender/blender |
| bpyパッケージのディレクトリ | /usr/share/blender/<VERSION>/scripts/modules/bpy |
ちなみにパッケージ検索パス一覧(弊実行環境での例)
/usr/share/blender/2.80/scripts/addons_contrib /home/horiuchi/.config/blender/2.80/scripts/addons /usr/share/blender/2.80/scripts/addons /usr/share/blender/2.80/scripts/startup /usr/share/blender/2.80/scripts/modules /usr/lib/python37.zip /usr/lib/python3.7 /usr/lib/python3.7/lib-dynload /home/horiuchi/.local/lib/python3.7/site-packages /usr/lib/python3/dist-packages /usr/share/blender/2.80/scripts/freestyle/modules /usr/share/blender/2.80/scripts/addons/modules /home/horiuchi/.config/blender/2.80/scripts/addons/modules
| bpyの使用方法 | |
|---|---|
| Blender GUI | 外部ライブラリの制限(乗っ取りで解決可能) |
| Blender CUI | 外部ライブラリの制限(乗っ取りで解決可能) |
| Pythonから呼び出し | contextへアクセスできない |
Blenderの全機能を利用しPythonでフルコントロールするならBlender CUIを利用するのが良さそう.
Python操作でBlender環境外のライブラリなどを使う
ライブラリの検索パスを動的に変更してしまえばnumpyなどが使えるようになる.
GUIのBlender,CUIのBlenderで外部パッケージを使う
blenderが使用しているpythonのパッケージを見えないようにして, anacondaのsite-packageを検索対象として追加してしまえば良い.
import sys # システムのpythonはnumpyが動かないので消す sys.path.remove('/usr/lib/python3/dist-packages') # anacondaの環境のパッケージを追加する sys.path.append('/home/$(USER)/.pyenv/versions/anaconda3-2018.12/envs/$(ENVNAME)/lib/python3.6/site-packages')
pythonからbpyパッケージを呼び出す
それ専用にコンパイルして作ったバイナリが必要.
面倒くさいのでpythonコードを生成してsubprocess.callでCUIのblenderを呼び出したほうが楽かも.
API利用の基本
難しいので dir(hoge) などで中のattributeを確認するのが良い.
| いくつかの基本アクセス | |
|---|---|
| ops | 操作(選択中のものへの?) |
| data | データオブジェクトへのアクセス?基本的にこれを使って操作していくのが推奨?Blender自体もデータ? |
| types | この名前空間以下に型が定義されている? |
| context | 選択中のものに対する処理.Blender CUIではないpythonからは使えない(?) |
ops (bpy.ops)
operatorsの略.処理のまとまりがOperatorクラスで作られていて, たとえばアドオンなどではOperatorクラスを継承したクラスを作成してシステムにそのOperatorを登録して使えるようにする. ユーザーはそのOperatorを呼び出すことで処理が行われる.
Operatorsクラスのexecuteメソッドが呼ばれる.引数はcontext.
data (bpy.data / D)
blend データへのアクセス. なるべくこれだけで処理できるとmodelessになって嬉しい.
context (bpy.context / C)
現在選択中のものなどからアクセスしていく. モーダルなので自動化ではあまり使いたくはない.
実例
環境設定を自動的にやってみる
bpy.context.preferences.active_section = 'INTERFACE'
使用
CLI
blender –background –python hogehoge.py
GUI
独特
