Я работаю над переносом нашего плагина appleseed в Blender 2.8
В рамках рабочего процесса 2.79 мы создавали наши узлы затенения динамически, когда аддон был включен. Мы сделали это, создав классы узлов при запуске:
ntype = type(node_name, (AppleseedOSLNode,), {})
И затем создание свойств внутри узла с помощью setattr:
setattr(ntype, prop_name, bpy.props.EnumProperty())
В новой системе 2.8 все bpy.props должны быть определены как аннотации. Те не работают с setattr. Есть ли подобный метод для динамического создания свойств, который делает? Я читал о том, как манипулировать диктовкой __annotations__
в классе:
ntype.__annotations__[prop_name] = bpy.props.EnumProperty())
Но я не знаю, так ли это.