yuuho.wiki

カオスの欠片を集めて知恵の泉を作る

ユーザ用ツール

サイト用ツール


tips:blender:start

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

設定

Python tooltips

Python開発の必要な設定を行う. bpy.context.preferences.view.show_tooltips_python = True

アドオン

アドオンとはサードパーティが作成するプラグインのようなものである. アドオンでインストールするファイル自体は ~/.config/blender/2.79/scripts/addonsに入る.

日本語化

日本語化をするには設定を変更する必要がある. 設定は設定ファイルとして特定の場所に保存されている.

初めて環境設定をしたときに~/.config/blender/$(version)/config/userpref.blendが出来る.

設定系ファイルの一覧

設定ファイルディレクトリ ~/.config/blender/$(version)/config/ の中身
ブックマーク 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

新) Edit > Preferences > Interface > Translation をチェックしないと日本語文字が表示されない.

言語設定のトグル切り替え

日本語話者で海外のチュートリアルなど参照して勉強している場合は, 日本語で操作したい場面と英語で操作したい場面があると思う.

トグル設定をしておくと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)

現在選択中のものなどからアクセスしていく. モーダルなので自動化ではあまり使いたくはない.

types (bpy.types)

Blenderに存在するあらゆるものはここに記述された何らかのクラスのインスタンスである.

実例

環境設定を自動的にやってみる

import bpy
 
# 言語の変更設定をONに
bpy.context.preferences.view.use_international_fonts = True
# 使用言語を日本語に
bpy.context.preferences.view.language = 'ja_JP'
# インターフェース,新規作成ファイル名,ツールヒントを翻訳対象に
bpy.context.preferences.view.use_translate_interface = True
bpy.context.preferences.view.use_translate_new_dataname = True
bpy.context.preferences.view.use_translate_tooltips = True
 
# 設定を保存
bpy.ops.wm.save_userpref()

使い方

CLI

  • pythonスクリプトファイルで使う場合
    blender –background –python hogehoge.py
  • python対話でやる場合
    blender –python-console

GUI

独特

モード

見方変更

  • ミドルクリック ドラッグ で注視点を中心に回転
  • shift ミドルクリック ドラッグ で平行移動
  • ctrl ミドルクリック 上下ドラッグ または スクロール で拡大縮小

オブジェクトの移動/回転/拡縮 (オブジェクト選択状態で)

  • G : 移動
  • R : 回転
  • S : 拡縮

オブジェクトの作成削除

  • 作成: オブジェクトモードで Add → Mesh → Cube
  • 削除: X
tips/blender/start.txt · 最終更新: 2022/01/24 04:33 by yuuho