Sponsored Links
Blender2.8でPytonを使って「シーンに配置された選択中の板をその法線方向へ移動する」手順をまとめました。
目次
準備
シーンに板オブジェクトを配置して、選択した状態で下記コードを実行すると、オブジェクトをその法線の向きに動かすことができます。
コード
1 2 3 4 5 | import bpy obj = bpy.context.object obj.location = obj.location + obj.data.polygons[0].normal |
解説
import bpy
Blenderのオブジェクトへアクセスしたり操作をPythonから行うための大元のモジュールをインポートします。
obj = bpy.context.object
bpy.context.objectは現在アクティブな作業エリアにおいて選択されているオブジェクト(Object(ID))を返します。今回は配置した板オブジェクトが変数に格納されることになります。
obj.location = obj.location + obj.data.polygons[0].normal
obj.locationはオブジェクトの位置なので、現在の位置に法線の値を足して移動しています。今回取得したオブジェクトはメッシュなので、obj.dataにはMesh(ID)インスタンスが格納されています。Mesh(ID).polygons[0].normalから面法線ベクトルを取得します。
まとめ
- PythonでBlenderを操作するにはbpyモジュールをインポートする。
- bpy.context.objectで現在のパネルで選択されているオブジェクトを取得できる。
- bpy.context.objectが返すのはObject(ID)インスタンスで、位置を表すlocationを保持する。
- オブジェクトがメッシュならObject(ID).dataにはMesh(ID)インスタンスが格納されている。Mesh(ID)からメッシュの頂点、エッジや面などのデータへアクセスできる。
Sponsored Links