背景
- Blender 2.83 LTS 長期リリース版でました
- いままではバージョンアップでころころ仕様や UI, python プラグインの書き方が変わる感じで, 毎回覚えなおしでつらかった
- LTS 登場により, しばらく(5 年?)は安定して使えそうです(覚えたことが無駄にならない)
Ubuntu の場合
Ubuntu software か snap でインストールできます.
手動インストール
以下は手動で Blender を落とした場合です.
Ubuntu 18.04 のドックに登録する.
毎回コンソール開いて ./blender
も面倒なので, Ubuntu 18.04 利用している場合は, ドックに登録できるようにしておきましょう.
blender.desktop
を編集し, blender のパスを絶対パスにし, ~/.local/share/applications
にコピーします.
(~/.local/share/applications
に配置しないと, Dock に Favorite 登録できない)
chmod +x blender.desktop
で実行パーミッション付与が必要かもしれません.
Blender のバージョン変わったら ~/.local/share/applications/blender.desktop
のパスをアップデートしましょう.
(変更あったら Gnome 側が自動でリロードし即時反映してくれるっぽい)
Maya 的(?)モードにする
Blender オリジナルのキーバインドは独特です. 少なくとも **Blender 歴 22 年(!)**の私は慣れませんでした.
最近は Blender の見た目も Maya に近づいてきたような感もありますので, Maya 的モードにするとよいでしょう(あとで Maya にも移行しやすくなる)
Maya のキーバインドは他の 3D ソフトで似たように使えることが多いため, Blender では industry compatible(業界互換?)という項目になっています.
最初の起動時, splash screen で industry compatible + Maya theme を選びます.
キーマップまとめ
default keymap
industry compatible
https://docs.blender.org/manual/en/latest/interface/keymap/industry_compatible.html
q
で選択モード
w
, e
, r
で移動、回転、スケール
Shift + 'a' での物体追加は industry compatible mode では無いっぽい.
(とりあえずは, Tab
から add
, cube
などと打って物体追加でしょうか)
もしくは, (画面レイアウトが初期設定の場合)左下の時計アイコンで Preferences
を選んで設定できます.
(そのままだと画面隠れてしまうので, ペインをちょっと上にもっていくとよい)
座標系
Maya モードなどにしても, 座標系は Z up + right handed です.
構造的に座標系を変えるのはいろいろなところに影響があり無理と思われますので, Z up に慣れましょう.
import/export では, デフォルト値では概ね業界標準に合わせて変換してくれます
(e.g. .obj の場合は Y up になる)
単位
デフォルトではメートル([m]
)です.
フォント設定
フォントサイズは, 4K display だとフォントなど小さいので, resolution scale を 1.25 ~ 1.5 あたりにするとちょうどよいです.
デフォルトで設定が auto save されるようになっていますので, (以前の Blender と異なり)明示的に設定の保存は不要です.
Blender 標準フォントはちょっとオシャンティ感がありませんね.
また, ソースコード用フォントもちょっと読みにくいです.
Preferences -> Text Rendering でフォント指定できました.
.ttf フォントあたり読めました(.otf あたりも読めそうです)
スクショは Interface, Mono-space 両方に Ricty フォントを設定したものです.
Alt キーの再割当て(ubuntu)
Maya keybinding の場合, Alt + left mouse ドラッグで viewport 回転できますが,
Ubuntu(Gnome desktop)だと, gnome desktop 側のキーバインド(ウィンドウを移動)とかち合うかもしれません. Ubuntu 側で設定を変えておきましょう(e.g. Super
に割当など).
ショートカットを割り当てる
wavefront .obj インポートとか, 毎回メニューで選ぶのだるいですよね.
Blender では, いろいろなメニューアイテムとかに右クリック -> Assign Shortcut
でショートカットキー割り当てできます.
ただ, 既存のショートカットがあると, 既存のほうが優先されてしまいます
(重複チェックは行われない)
Pie menu を出す
Maya っぽいやつです.
Addon で有効にします.
デフォルトでは shift
+ space
や ctrl
+ 'a' などで出ます.
Viewport 操作
Industry compatible keymap と仮定します.
a
でシーン全体
f
で選択したオブジェクト
に画面をフィットさせることができます.
ctrl
+ h
で, 選択オブジェクトを hide(非表示)
(Maya と異なり, shift
+ h
の動作がことなるので注意!)
選択物体を unhide(reveal)するには, alt
+ h
になります)
Wireframe 表示
Viewport ペインの左上あたりにある Viewport Overlays -> Wireframe でいけます.
法線表示
面がどちらを向いているかなどの確認用.
Edit mode(1
key)にして, Viewport Overlays で設定できます.
Geometry -> Face Orientation にもチェックいれておくと, よりわかりやすくなります.
ただ, Object mode (4
key)だと, 法線は表示されないようです(orientation の色表示のみ)
Arrow object
Object -> Arrow ありました.
Arrow object ありました. ありがとうございます pic.twitter.com/I5ZR8DSLKl
— Syoyo Fujita 🌸 レイトラ 🐯 2 周年 🎉 (@syoyo) August 4, 2020
Grouping
Collection と名前が変わりました.
Parenting とはまた別の概念っぽい.
Transform
複数オブジェクトを選択して, 複数の物体の transform を設定しようとしてもうまくいきません(e.g. N
での transform tool pane).
Collection でまとめたりしても, 最初のオブジェクトだけにしか影響がありません.
Is there a way to move multiple objects?
https://devtalk.blender.org/t/is-there-a-way-to-move-multiple-objects/8328/2
Alt
キーを押しながら設定する必要があります.
親子関係の作成
子にするオブジェクトをまず選び(e.g. Shift
+ click で一括選択), 最後に親にしたいオブジェクトを追加で選んで(Ctrl
+ click), Parenting します.
Transform node みたいなのを親として作りたいときは, Empty
object あたりをつくると良さそうです.
オブジェクトを移動させると, 親子関係にないオブジェクトも勝手に追随してしまう.
Proportional Editing Object あたりが有効になっています(輪っかみたいなアイコン).
Off になっているのを確認しましょう.
Viewport で使うレンダラを切り替える
右のペインでカメラアイコン -> Render Engine で切り替えできます.
EEVEE: インタラクティブレンダー用
Cycles: オフライン(バッチレンダー)用だが, インタラクティブレンダーにも使える
でしょうか. Workbench はなんでしょうかね?
物体の生成パラメータを変える
Blender では, 最初に Primitive を作るときにしか設定できないようです...
Maya などみたいに履歴が残っていてあとで球の分割数を変える, などはできません.
Add すると, 左下に生成タブが出ます.
F6
でもいけるっぽい?
マテリアルを割り当てる
Cycles レンダラになっているのを想定します.
オブジェクトを選択して, チェッカーボード球っぽいアイコンで割り当てます.
デフォルトは Principled BSDF(Disney BSDF)が割り当てられます.
Maya Arnold の Standard Surface と似たような感じです.
業界標準で使いやすいっぽい?らしいようですが, 私はどうも使いづらいなぁという感じです(specular color とかを直感的かつ細かく指定できない)
テクスチャ(画像)を張り付ける
色とかのパラメータの丸ぽちっぽいアイコンをクリックして -> Image Texture を選びます.
Open
で画像ファイルを指定します.
Shader node editor
細かいことをやりたい場合は, shader node editor でシェーダグラフ編集します.
T.B.W.
背景の色を変える
標準では Background shader(背景を定数色やテクスチャで埋める)でちょっとグレーなものが設定されています.
右のペインで地球アイコン(World) -> Surface でいけます.
環境マップを設定する
Blender では, 設定一発で行う方法はなさそうです.
いくらか shader の知識が必要になります.
環境マップは latlong 形式(equiangular 形式)を想定します.
(HDRIhaven https://hdrihaven.com/ にあるようなもの)
Color で Environment Image Texture を選び, テクスチャに HDRI 選択, Vector に Texture coordiante | Generated を使います.
環境マップを回転させたい
最初に mapping を作ります.
背景を消したい
物体への環境マップの効果はほしいが, 背景は消したいなど.
2つほど方法があります.
primary ray の visibility を off にする
Scene -> Film で transparent にする.
TODO
- Shader editor で background shader をいじりたい
- ロトスコープと, envmap を共存させる方法を探す
View レイヤー
Blender ウィンドウの上右側にあります.
Collection と併用するようです.
イマイチ使い方がよくわからないですね.
VDB ファイルの import
export 機能は 2.83 LTS ではまだありません.
import は Add -> Volume, もしくは .vdb をドラッグアンドドロップでいけます.
標準でプレビュー表示とかしてくれるはずです.
VDB のレンダリング
EEVEE ではうまくレンダーできないようです.
Volume 扱うときは Cycles を選びましょう.
サンプル数増やすときは, Scene -> Sampling で増やします.
Volume で CPU だとやはり計算にはかなり時間かかります.
GPU で動くといいですが, 少なくとも Linux + 2080 Ti ではだめでした.
GPU volume render, Windows + OptiX 対応版だといけるかも?
また, .vdb で対応するアトリビュートをシェーダに設定していることが必要です
(Principle Volume では density
なので, smoke.vdb はうまくレンダーできる)
たとえば bunny.vdb はアトリビュートが ls_bunny
なので, シェーダ側も ls_bunny
を設定する必要があります.
.vdb がどのアトリビュート持っているかは, openvdb のツールか, 別ソフトなどで調べる必要があります.
(玄人になると, バイナリダンプツールで .vdb ファイルのヘッダから読み取ることできます )
シーンのマージ
.blend と別の .blend を取り込んでマージしたい.
File
-> Append になります.
シーン全部を取り込むのはできないようで, オブジェクトやマテリアルを選らんで取り込みます.
(名前とかがかぶっていたらどうなるのかな?)
object で読み込むとマテリアル設定は引き継がれるようですが, transform などは反映されませんので注意です.
リソース管理
別マシンに移行したらテクスチャファイルが切れているなど.
File -> External Data -> Find missing files
で治す.
Image を .blend に埋め込む
File -> External Data で .blend に埋め込むことできます.
Image を削除する
Blender で Image 設定していたが、途中でファイル上で画像ファイルを消したりリネームしたため, embed できなくなりクリーンアップしないといけないとき.
Image pane で, shift + "X" button click で unlink し(ファイルリストに 0
が付く), 一旦セーブする. その後 .blend を開き直せば消える
オレオレ Python addon へのパス
Preferences -> File Paths -> Scripts
で一応設定できますが, ここでは複数パスを設定することができません.
BLENDER_USER_SCRIPTS and multiple paths?
https://devtalk.blender.org/t/blender-user-scripts-and-multiple-paths/10395
Blender 標準のパスに, scripts/addons
を作って, そこに置く(Linux の場合は symlink でもよい)がよさそうです.
e.g.
$HOME/.config/2.83/scripts/addons/rprblender
UI 上の操作がどの Python コマンドに対応するか調べる
Python でいろいろ操作したいですよね.
たとえば物体の位置をスクリプトで変えるとか.
しかし Blender のマニュアル探すのはめんどいです.
右クリック -> Copy DataPath
でもある程度情報わかりますが, いつのまにか(2.83 LTS から?)Info をひらくと, UI 操作などに対応する Python コマンド出してくれるようになりました
これがこのまま使えるかは不明ですが, 少なくともアタリをつけるのに参考になります.
Python scripting
アクティブなオブジェクトを取得する
bpy.context.object
でいけます.
Viewport で選択しているオブジェクトを取得.
> bpy.context.view_layer.objects.active
bpy.data.objects['Sphere.001']
移動させる
.location
プロパティをいじります.
example
bpy.context.object.location[0] = 100
スケーリングは .scale
回転させる(オイラー角)
.rotation_euler
で指定.
回転順は .rotation_mode = 'XYZ'
のように文字列指定します.
Quaternion で回転させる(T.B.W.)
.rotation_quaternion
プロパティ
.rotation_mode
を QUATERNION
にします.
T.B.W.
問題点
file explorer でインタラクティブサーチ(?)が使えない
Explorer で, w と打つと w に相当するフォルダやファイルに移るあれです.
Blender file explorer では使えません.
フォルダパスのバーでは, tab
で補完聞きますが, bash などでのふるまいとちょっと違って戸惑います.
Windows ではコンソールウィンドウが出る
エラーメッセージ表示用などで必要になります.
うまくやれば消せたような気がします.
UI がもっさりする
GTX 2080 Ti など利用しても, UI のレスポンスはちょっともっさり(2~3 fps 遅い?)してます.
OpenGL で描画している以上しょうがないですね.
いずれ Vulkan などで書き直されてレスポンスよくなるかもしれません.
TODO
- GPU 対応 Windows 10 WSL(2021 年予定) で Blender を動かす.
- python スクリプトとか, Linux 環境で作業できるので, Windows でしか動かないソフト(e.g. 3ds Max 連携とか)はかどりそうです.
- Layer/Collection の使いかたを覚える