Blender의 추가 개발을 통해 하나의 Operator 클래스에서 여러 개의 단추를 만들 수 있습니다

9618 단어 BlenderPythontech

날과 씨


Python에서 Blender의 추가를 개발할 때 패널에 여러 개의 파라미터가 다른 단추를 놓으려고 할 때

Operator 클래스 정의에서 별도의 매개변수를 생성하려는 인스턴스(버튼)
좋은 검색어가 떠오르지 않아 조사하는 데 시간이 걸렸기 때문에 메모

Blender 버전 확인


릴리즈
3.1.2

메서드


버튼을 표시하는 방법bpy.types.UILayout.operator()의 반환값bpy.types.OperatorProperties 반환 형식의 데이터
이 데이터를 통해 Operator 클래스에 정의된 속성을 읽거나 쓸 수 있습니다.
호출 필요 횟수bpy.types.UILayout.operator(), 각자의 반환값을 통해 속성 설정

이루어지다


다음과 같은 느낌에서 이루어지다
버튼의 Operator 클래스 정의
class MY_BRUSH_OT_Size(bpy.types.Operator):
    bl_idname = "my_brush_size.id"
    bl_label = "text"
    bl_options = {'REGISTER', 'UNDO'}

    #パラメータ用のプロパティ
    size: IntProperty(default=0, min=0, max=100, options={'HIDDEN'})

    def execute(self, context):
        # ウェイトペイントのブラシサイズを変更する
        bpy.context.scene.tool_settings.\
            unified_paint_settings.size = self.size
        return{'FINISHED'}
도면 패널
def draw(self, context):
    layout = self.layout
    row = layout.row(align=True)
    #btn: bpy.types.OperatorProperties
    btn = row.operator(MY_BRUSH_OT_Size.bl_idname, text="10")
    btn.size = 10 #プロパティ設定
    btn = row.operator(MY_BRUSH_OT_Size.bl_idname, text="20")
    btn.size = 20 #プロパティ設定
    btn = row.operator(MY_BRUSH_OT_Size.bl_idname, text="30")
    btn.size = 30 #プロパティ設定

결실


감각이 좋다

잡담: 라디오 버튼화


설정 중인 버튼의 색상을 바꾸고 싶어서 라디오 버튼으로 만든 경우bpy.types.UILayout.operator()depress 매개 변수로 비슷하게 하다
  • 설치 예제
  • 대시보드 그리기(라디오 버튼)
    def draw(self, context):
        layout = self.layout
        row = layout.row(align=True)
        #現在のブラシサイズ取得
        cur_val = bpy.context.scene.tool_settings.unified_paint_settings.size
    
        #btn: bpy.types.OperatorProperties
        btn = row.operator(MY_BRUSH_OT_Size.bl_idname, text="10", depress=(cur_val == 10))
        btn.size = 10
        btn = row.operator(MY_BRUSH_OT_Size.bl_idname, text="20", depress=(cur_val == 20))
        btn.size = 20
        btn = row.operator(MY_BRUSH_OT_Size.bl_idname, text="30", depress=(cur_val == 30))
        btn.size = 30
    
  • 결과
    지금 선택한 버튼이 알기 쉬워졌어요.

  • 참고 자료


    https://memoteu.hatenablog.com/entry/2019/06/17/132448

    좋은 웹페이지 즐겨찾기