Takunojiの日記

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

Blender Python Basic and Script 〜基本とスクリプト〜

前回は、ブレンダーのインストールからPythonでのハローワールド
オブジェクトの移動までやりました。

takunoji.hatenablog.com

今回は、オブジェクトのプロパティを変更してみようと思います。
プロパティとはオブジェクトの持っている情報のことです。
前回の「移動」に関しては位置情報のプロパティを変更して移動しました。

プロパティ一覧はこちら

Context Access (bpy.context) — Blender 2.73.0 b4d8fb5 - API documentation

英語が苦手な人はこのまま進んでください。
ちなみに自分も見たけどプロパティの操作方法がわかりませんでした。

とりあえず、前回の「location」の操作
>bpy.context.object.location = (2,0,0)
これでCubeが移動します。

f:id:Takunoji:20180312220051p:plain

次は、角度を変更します。
>bpy.context.object.ratation_euler = (1,0,0)

f:id:Takunoji:20180312220256p:plain

>bpy.context.object.rotation_euluer = (0,1,0)

f:id:Takunoji:20180312220359p:plain

>bpy.context.object.rotation_euler = (0,0,1)

f:id:Takunoji:20180312220457p:plain

回転する向きが変わるようです。
>bpy.context.object.rotation_euler = (2,0,0)

そして、変形するために「オブジェクトモード」(デフォルト)から「エディットモード」に変更します。

>bpy.ops.mode_set(mode='EDIT', toggle=False)

f:id:Takunoji:20180312221552p:plain

ちょっと長いですが点の移動を行います。
>bpy.ops.transform.translate(value=(-0.383242, -0.874999, -0.00590833), constraint_axis=(False, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)

ちなみにこれも選択している点を操作するスクリプトになります。

そして、点の選択方法は1行でやっているスクリプトが見つかりませんでした。
https://blender.stackexchange.com/questions/23113/select-vertices-of-mesh-in-python

mport bpy,bmesh

ob = bpy.data.objects['Cube']
mesh=bmesh.from_edit_mesh(bpy.context.object.data)
for v in mesh.verts:
    v.select = True

# trigger viewport update
bpy.context.scene.objects.active = bpy.context.scene.objects.active

今日はここまでにします。