本日は昨日に引き続きBlenderの調査を行います。
昨日はアドオンなどでよくみられるUIからスクリプトの関数を実行できるウィンドウを作りました。
これは
〇チェックボックス
前回は以下のようなコードでタブを実行しました。
import bpy # メニューを定義するクラス class CustomPanel(bpy.types.Panel): bl_idname = "OBJECT_PT_custom_panel" bl_label = "Custom Panel" bl_space_type = 'VIEW_3D' bl_region_type = 'UI' bl_category = 'Custom' def draw(self, context): layout = self.layout # パネル内にボタンを追加する例 layout.operator("mesh.primitive_cube_add", text="Add Cube") # アドオンを有効化したときに呼び出される処理 def register(): bpy.utils.register_class(CustomPanel) # アドオンを無効化したときに呼び出される処理 def unregister(): bpy.utils.unregister_class(CustomPanel) # スクリプトを実行するときに呼び出される処理 if __name__ == "__main__": register()
これはlayout.operator()によってボタンを表示させています。
ここをチェックボックスにするためにはlayout.prop(context.scene, "my_checkbox_property", text="My Checkbox")を使用します。
layout.prop()は、BlenderのUIにBool型プロパティを表示するための関数です。
これを使用することでチェックボックスが表示できました。
〇コード
import bpy class CustomPanel(bpy.types.Panel): bl_idname = "OBJECT_PT_custom_panel" bl_label = "Custom Panel" bl_space_type = 'VIEW_3D' bl_region_type = 'UI' bl_category = 'Custom' def draw(self, context): layout = self.layout # チェックボックスを追加 layout.prop(context.scene, "my_checkbox_property", text="My Checkbox") # アドオンを有効化したときに呼び出される処理 def register(): bpy.types.Scene.my_checkbox_property = bpy.props.BoolProperty(name="My Checkbox Property") bpy.utils.register_class(CustomPanel) # アドオンを無効化したときに呼び出される処理 def unregister(): bpy.utils.unregister_class(CustomPanel) del bpy.types.Scene.my_checkbox_property # スクリプトを実行するときに呼び出される処理 if __name__ == "__main__": register()