该技能用于开发 Sverchok 自定义节点,包括创建新节点类型、打包为插件以及集成 BMesh。核心约束:自定义节点必须同时继承 SverchCustomTreeNode 与 bpy.types.Node;不得直接调用 process(),应由 updateNode 或 tree.force_update() 触发;bpy.props 的 update 回调须使用 updateNode;除非 deepcopy=True,不得修改 sv_get() 返回的数据;插槽只能在 sv_init() 或 sv_update() 中创建,否则会引发无限更新循环。
主要能力与用法:提供最小节点模板,含 sv_init 创建插槽、process 读取输入并写出结果;生命周期方法 sv_init、process、sv_update、sv_copy、sv_free、sv_draw_buttons、sv_draw_buttons_ext 的用途;插槽创建方式(sv_init 直接创建、sv_new_input 绑定 prop_name 或 is_mandatory);可用插槽类型(SvStringsSocket、SvVerticesSocket、SvMatrixSocket 等);标准 process 五步流程(输出检查、读取输入、match_long_repeat 对齐长度、逐对象处理、sv_set 输出);BMesh 集成使用 bmesh_from_pydata 与 pydata_from_bmesh,必须调用 bm.free();NumPy 向量化模式;使用 SvNoDataError 与 self.exception 的错误处理;依赖标志 is_animation_dependent、is_scene_dependent、sv_dependencies;注册与反注册(外部插件需 bl_info,反注册按注册逆序);日志使用 self.debug/info/warning/error/exception 而非 print。
适用场景为在 Blender 4.0+/Sverchok v1.4.0+ 中扩展节点、处理几何与性能敏感计算。限制:需遵循上述约束;未提供具体价格、平台或效果信息。