LoginSignup
2
0

More than 5 years have passed since last update.

デフォルトキューブをz方向に1動かす (Python for Blender クックブック)

Posted at

デフォルトキューブをz方向に1動かす

Pythonを使ってBlenderでできる事をまとめています。解説もあります。
はじめに
レシピ一覧

Pythonの難易度: ★☆☆☆☆

サンプルコード

例1

import bpy
obj = bpy.data.objects["Cube"]
obj.location.z = obj.location.z + 1

例2(Pythonの難易度: ★★★☆☆)

import bpy, mathutils
obj = bpy.data.objects["Cube"]
obj.location += mathutils.Vector((0,0,1))

上記サンプルコードを、Blender内蔵のテキストエディタに貼り付けた後、Alt-Pを実行してください。

その他、bpy.ops.transform.tranlateを使う方法もあります。

解説

bpy.data.objects["Cube"]

PythonからBlenderを使うにはbpyというライブラリを使います。
例えば、bpy.dataにはBlender内の様々な変数(オブジェクトのインスタンス)が格納されています。

例えば、オブジェクト一覧はbpy.data.objectsから、マテリアル一覧はbpy.data.materialsからアクセスできます。
この一覧の型はbpy.types.bpy_collectionsであり、この型は辞書とリストを合わせたようなものです。1
今回はCubeという名のオブジェクトにアクセスします。

obj.location

obj.locationは3次元ベクトルで、オブジェクトの位置を表します。
これのz座標を使うには.zを使ってください。

mathutils.Vector

PythonからBlenderを使うには基本的にbpyを使いますが、それ以外にもいくつかのライブラリがあります。
例えば、bmeshはメッシュを扱うための、mathutilsは数学を扱うためのライブラリです。

mathutils.Vectorはベクトルを扱うためのクラスであり、クラスのコンストラクタです。
したがって、mathutils.Vector((0,0,1))というのは(0,0,1)のベクトルを指します。

これらのベクトルは足し算が可能です。


  1. bpy.data.objectsの型がbpy_collectionsと説明しましたし、typeやisinstanceを使ってもその通りですが、実際にはbpy.types.BlendDataObjectsです。この辺りはどうやってるんだろう…… 

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0