Open9
Blender+Python
カスタムプロパティを追加する方法
例:選択中のオブジェクトにScaleというカスタムプロパティを追加する
import bpy
if bpy.context.selected_objects != [] :
bpy.context.active_object['Scale'] = 7.0
タイプ別追加方法
bpy.context.active_object['プロパティ名'] = 0.0 # Float
bpy.context.active_object['プロパティ名'] =[0.0,0.0,0.0] # Float配列
bpy.context.active_object['プロパティ名'] = 0 # Int
bpy.context.active_object['プロパティ名'] =[0,0,0] # Int配列
bpy.context.active_object['プロパティ名'] = "文字列" # 文字列
どれにも当てはまらなかった場合Pythonタイプになる
カスタムプロパティを編集する
例:Float配列のカスタムプロパティのサブタイプをLinearColorに変更する
bpy.context.active_object.id_properties_ui("プロパティ名").update(subtype='COLOR')
例2:Floatの最大、最小を設定する
bpy.context.active_object.id_properties_ui("プロパティ名").update(min=-10,max=10)
参考サイト
_RNA_UIは3.0で廃止されたっぽい
記事を探すと_RNA_UIを使った方法が色々引っかかるけど、_RNA_UIは3.0で廃止されているようです。
参考サイト
アウトライナーで選択されたコレクションを取得する
bpy.context.view_layer.active_layer_collection.collection
アウトライナーで選択されたコレクション内のオブジェクトを取得する
bpy.context.view_layer.active_layer_collection.collection.objects[0]
選択中のノード
bpy.context.object.active_material.node_tree.nodes.active
選択中のノードの座標
bpy.context.object.active_material.node_tree.nodes.active.location
マテリアル出力のサーフェスに入力されているノード
bpy.context.object.active_material.node_tree.nodes["Material Output"].inputs[0].links[0].from_node
選択中のマテリアル
bpy.context.object.active_material
現在のblendファイルのファイルパス
bpy.data.filepath
ファイルが一度でも保存されているか
if bpy.data.filepath != "" :
現在のblendファイルのあるフォルダをブラウザで開く
subprocess.Popen(["explorer", os.path.dirname(dir)], shell=True)
選択中のメッシュの三角ポリゴン数を取得する
bpy.context.active_object.data.calc_loop_triangles()
len(bpy.context.active_object.data.loop_triangles)
オブジェクトの位置を変更する
bpy.context.selected_objects[0].location(1,1,1)
頂点カラーを追加する
bpy.ops.geometry.color_attribute_add(name="Output", domain='CORNER', data_type='BYTE_COLOR')
bpy.ops.geometry.color_attribute_add(name="Color", domain='CORNER', data_type='FLOAT_COLOR')