blender python 24

Redo 패널

- 개요Redo 패널은 가장 최근에 수행한 사항을 되돌릴 수 있도록 왼쪽 하단에서 제공하는 패널이다BPY에서 Redo 패널을 생성하는 방법을 알아본다 1) Operator 클래스...class AR_OT_my_op(Operator): bl_label = "Button" bl_idname = "ar.myop_operator" bl_options = {'REGISTER', 'UNDO'} location : bpy.props.FloatVectorProperty() def execute(self, context): bpy.ops.mesh.primitive_cube_add(location = self.location) return {'FINISHED'} ..

타이머

- 개요bpy.app.timers.register(function, first_interval=0, persistent=False)위의 함수를 사용하면 first_interval 인자로 넣은 값만큼의 시간 후에 function 인자로 넣은 함수를 호출한다이때 function 인자로 받는 함수는 인자가 없는 함수여야 한다또 function 인자로 받는 함수에서 실수를 반환하게끔 수정하여 반환된 실수를 주기로 함수를 호출할 수 있다함수의 호출을 중단하고 싶다면 None을 반환하면 된다 1) 일반적인 regsiter 함수의 사용import bpydef test_tick(): bpy.ops.mesh.primitive_cube_add()bpy.app.timers.register(test_tick, first..

Info 메세지 출력

- 개요bpy에서는 report 함수를 사용하여 메세지를 생성할 수 있다인자로는 type과 message를 사용하는데, message는 메세지에 담을 문구를 의미하고type의 경우 메세지의 타입을 의미한다 사용가능한 type의 종류는 위와 같다 1) 메인 패널 클래스...import bpyfrom bpy.types import Panel, Operator class AI_PT_main_panel(Panel): bl_label = "Main Panel" bl_idname = "AI_PT_main_panel" bl_space_type = 'VIEW_3D' bl_region_type = 'UI' bl_category = "New Tab" def draw(self, conte..

랜덤값

- 개요랜덤한 정수값을 생성하고 생성한 값에 따라 다른 동작을 수행하는 애드온을 만든다 1) 프로퍼티 그룹 클래스import bpyimport randomclass MyProperties(bpy.types.PropertyGroup): random_number : bpy.props.IntProperty(name="Random Number", default=0) text_list = ["First Option", "Second Option", "Third Option"] ... MyProperties 프로퍼티 그룹 클래스를 생성한다생성한 랜덤 정수값을 저장하는 random_number 프로퍼티와정수값에 따라 다른 문자열을 저장할 text_list 프로퍼티를 추가한다 2) 메인 패널 클래스....

프로퍼티 서브타입

- 개요블렌더 파이썬에서 사용하는 bpy.props의 Property들에는 subtype이라는 속성이 존재한다subtype 속성을 사용하면 Property에 의해 설정되는 특정 데이터의 값을 더 직관적으로 표현하여사용자가 값을 변경하거나 수정할 때 더 명확하게 이해할 수 있다 블렌더 파이썬에 존재하는 subtype의 종류는 다음의 링크에서 찾아볼 수 있다https://docs.blender.org/api/current/bpy_types_enum_items/property_subtype_items.html Property Subtype Items - Blender Python APIPrevious Property Type Itemsdocs.blender.org 1) 프로퍼티 그룹 클래스import bpy ..

프로퍼티 그룹

- 개요프로퍼티 그룹은 동적으로 정의된 속성 집합의 기본 클래스로사용하면 기존에 존재하던 데이터를 UI나 파이썬으로 접근할 수 있는 사용자 정의 데이터로 확장할 수 있다 단, 프로퍼티 그룹을 사용하는 경우에 주의해야 하는 점이 몇가지 존재한다Blender 데이터에 할당되기 이전에 등록해야 함 : 따라서 register 함수에서 등록등록된 프로퍼티 그룹은 등록해제도 동일하게 수행해야 함 : 따라서 unregister 함수에서 등록해제 이때, 프로퍼티 그룹을 등록하고 등록해제하기 위해 types.Scene.my_tool 프로퍼티를 사용한다my_tool은 사용자 정의 속성 또는 프로퍼티 그룹을 지정하는 용도로 사용한다 1) 프로퍼티 그룹 클래스import bpy class MyProperties(bpy.ty..