Takunojiの日記

自分が勉強したプログラム技術メモ

Blender Python 5〜テキストエディタを使う〜

前回 Pythonコードを実行して見ましたが、うまく動きませんでした。
結局何も解らずじまいだったのでリベンジします。

まずは基本、BlenderPythonを扱うのに基本部分を理解します。

参考にするサイトは、Blender 3D: Noob to Pro/Advanced Tutorials/Python Scripting/Introduction - Wikibooks, open books for an open worldです。
色々と探したのですが、結局英語サイトになってしまいました。

そして、中途半端になっていたターミナル、コマンドプロンプトについて
Macであれば、Blenderをターミナルから起動します。

>/Applications/Blender.app/Contents/MacOS/blender

そして、テキストエディタで作成した。First.py(例)を起動します。
するとテキストで起動した、時のコンソール出力したものが
ターミナルに出力されます。デバックに使用できます。

f:id:Takunoji:20180121083839p:plain

 あとでスクリプトでオブジェクトを作成するためにキューブを削除しておきます。
記載してあるのでとりあえず、スクリプトを実行します。
※「コンソール」→「Pythonスクリプトのコンソール」のこととします。

1. >bpy.の後にコンソール画面の下らへんにある「AutoComplete」ボタンを押下
 →bpyオブジェクトの中にあるもの(プロパティ)が表示されます。
2. >bpy.data.objectsと入力してエンターキーを押下します。
 →オブジェクトの内容がコンソールに出力されます。でも意味がわかりません。。
3. > list(bpy.data.objects)
[bpy.data.objects['Camera'], bpy.data.objects['Lamp']]
画面上にあるオブジェクトの一覧が出力されています。(キューブは削除しました)

f:id:Takunoji:20180120203230p:plain
ちょっと悔しいので、キューブを作成してもう一度

f:id:Takunoji:20180120203343p:plain

f:id:Takunoji:20180120203352p:plain

そして、キューブの参照を変数に代入します → 操作するためです。
4. >cube = bpy.data.objects['Cube']
ついでにコンソール出力して見ます。そして、オートコンプリートもして見ました。
が、量が多いのでここにはアップしません。

f:id:Takunoji:20180120204106p:plain

Vectorが出てきました。。。以前テンソルフローでコテンパンにやられた奴です。。。
こいつは、「mathutils」パッケージに入っているようです。
インポートするには以下のように記述します。
> import mathutils
このままだと「mathutils.Vector」とコーディングします。
これが面倒臭いというときは「from mathutils import Vector」と書きます。

f:id:Takunoji:20180120205059p:plain

今度は、キューブを移動します。下は実行前の画像

f:id:Takunoji:20180120205450p:plain

入力するコマンドは

Cube.delta_location += mathutils.Vector((1, 1, 1))

です。

f:id:Takunoji:20180120205712p:plain

キャプチャだと微妙ですが。。。実際にコードを書いてみると動きます。
環境により動かないときはbpyなどのインポートができていないなど原因があるので
そいつを解決する必要があります。

今回は、ここまでにします。
次回は、今回の続きを行います(参考サイトの次ページ)