本日は Blender の技術調査枠です。
Blenderで利用可能なpythonスクリプトを作ります。
bluebirdofoz.hatenablog.com
メッシュオブジェクトの作成
シーンに立方体オブジェクトを作成します。
・make_cube_mesh.py
# bpyインポート import bpy # math インポート import math # メッシュオブジェクトの作成 # 引数 # 戻り値 def make_cube_mesh(): # Cubeオブジェクトを作成する bpy.ops.mesh.primitive_cube_add(\ # 配置場所の指定 location=( 0, 0, 0 ),\ # 回転の指定 rotation=( math.pi/3, 0, 0 ),\ ) # 作成したオブジェクトの参照を取得する ob = bpy.context.scene.objects.active # 名前を変更する ob.name='MakeCube' # スケールを変更する ob.scale=( 1, 1, 1 ) # 選択状態を解除する ob.select=False return # 関数の実行例 make_cube_mesh()
指定オブジェクトのレイヤ変更
名前を指定してオブジェクトを任意のレイヤに移動します。
・move_object_layers.py
# bpyインポート import bpy # 指定オブジェクトのレイヤ変更 # 引数 arg_objectname:指定オブジェクト名 # arg_movelayer :移動レイヤ(0~) # 戻り値 def move_object_layers(arg_objectname='Default',arg_movelayer=0): # 指定オブジェクトを取得する ob = bpy.data.objects[arg_objectname] # レイヤを変更する if arg_movelayer == 0: ob.layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False) elif arg_movelayer == 1: ob.layers=(False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False) elif arg_movelayer == 2: ob.layers=(False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False) elif arg_movelayer == 3: ob.layers=(False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False) elif arg_movelayer == 4: ob.layers=(False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False) elif arg_movelayer == 5: ob.layers=(False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False) elif arg_movelayer == 6: ob.layers=(False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False) elif arg_movelayer == 7: ob.layers=(False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False) elif arg_movelayer == 8: ob.layers=(False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False) elif arg_movelayer == 9: ob.layers=(False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False) elif arg_movelayer == 10: ob.layers=(False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False) elif arg_movelayer == 11: ob.layers=(False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False) elif arg_movelayer == 12: ob.layers=(False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False) elif arg_movelayer == 13: ob.layers=(False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False) elif arg_movelayer == 14: ob.layers=(False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False) elif arg_movelayer == 15: ob.layers=(False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False) elif arg_movelayer == 16: ob.layers=(False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False) elif arg_movelayer == 17: ob.layers=(False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False) elif arg_movelayer == 18: ob.layers=(False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False) elif arg_movelayer == 19: ob.layers=(False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True) else: ob.layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False) return # 関数の実行例 move_object_layers('Cube',2)