SuperAPI AI 工具集

blender-errors-context

设计与创作

查看项目

更新于 10-16 04:30

技能介绍

用途:该技能用于诊断和解决 Blender Python 上下文错误,这是 Blender 脚本失败中最常见的一类问题,通常发生在代码访问 bpy.context 成员或在上下文不可用、受限或配置错误时调用 bpy.ops 操作符。

主要能力:覆盖受限上下文访问(handlers、timers、draw 回调)引发的 RuntimeError;操作符 poll() 失败与 bpy.ops 调用上下文不正确;Blender 4.0+ 移除字典式上下文覆盖及 temp_override() 迁移;模态操作符上下文问题;依赖上下文的属性访问(如 bpy.context.active_object、edit_object);撤销、数据修改或模式切换后的失效引用。版本覆盖 Blender 3.x、4.x、5.x,并明确标注破坏性变更。

使用方式:在受限上下文中应使用 bpy.data 只读访问,禁止调用 bpy.ops 或修改 blend 数据,需延迟修改时用 bpy.app.timers.register()。调用操作符前先检查 poll() 或显式设置上下文,如设置 view_layer.objects.active 并 select_set(True)。上下文覆盖必须使用 bpy.context.temp_override(),不要使用字典式覆盖。模态操作符应在 invoke() 中保存 area/region 引用。撤销或数据修改后按名称重新获取引用,不要跨操作保存 bpy.types 实例引用。禁止在后台线程访问 bpy.context、bpy.ops 或修改 bpy.data,应通过 bpy.app.timers.register() 调度到主线程。

适用场景:Blender 插件与脚本开发、操作符调试、版本迁移(尤其 4.0 上下文覆盖移除)、处理撤销与模式切换导致的引用失效。

限制:该技能依赖 blender-core-api 与 blender-syntax-operators 基础;资料未提供安装命令、收费方式或平台信息,暂未提供。