bpy.context 是 Blender 中的一个非常重要的属性,它代表当前上下文环境,可以访问到当前操作的场景、对象、材质、物理属性、动画等信息。它是 Blender Python API 中的一个核心属性。
在 Blender 中,上下文环境指的是当前用户正在操作的环境。例如,用户在编辑(Edit Mode)和对象(Object Mode)之间切换时,上下文环境就会发生变化。当用户在渲染(Render)和动画(Animation)中切换时,上下文环境也会发生变化。
Blender 提供了许多上下文环境,每个环境都有一个唯一的标识符,包括:
"SCENE":当前场景"OBJECT":当前对象"EDIT_MESH":当前网格编辑环境"EDIT_CURVE":当前曲线编辑环境"EDIT_SURFACE":当前曲面编辑环境"EDIT_TEXT":当前文字编辑环境"EDIT_ARMATURE":当前骨骼动画编辑环境"EDIT_METABALL":当前 Metaball 编辑环境"PARTICLEMODE":当前粒子编辑环境"POSE":当前骨骼动画姿势编辑环境"PAINT_WEIGHT":当前权重画环境"PAINT_VERTEX":当前顶点颜色画环境"SCULPT_MODE":当前雕刻模式编辑环境"IMAGE_PAINT":当前纹理画环境"SEQUENCE_EDITOR":当前序列编辑器环境"CLIP_EDITOR":当前剪辑编辑环境"DOPESHEET_EDITOR":当前动画帧编辑环境"GRAPH_EDITOR":当前曲线编辑环境"NLA_EDITOR":当前非线性动画编辑环境"TEXT_EDITOR":当前文本编辑环境"NODE_EDITOR":当前节点编辑环境"LOGIC_EDITOR":当前逻辑编辑环境bpy.context 通过上下文环境提供了访问和操作 Blender 编辑器所显示的上下文数据的有效方法。
以下是 bpy.context 中常用的属性和方法:
bpy.context.scene:当前场景bpy.context.object:当前对象bpy.context.active_object:当前激活的对象bpy.context.selected_objects:当前选择的对象bpy.context.mode:当前编辑器模式(如:EDIT_MESH、 OBJECT、 EDIT_CURVE 等)bpy.context.tool_settings:工具相关的设置bpy.context.user_preferences:用户偏好设置bpy.context.view_layer:当前视图图层bpy.context.area:当前激活的编辑区域(如:3D 视图编辑区、 UV 编辑区、渲染输出区等)bpy.context.screen:当前激活的屏幕以下代码示例演示了如何使用 bpy.context 来访问当前场景和对象:
import bpy
# 获取当前场景和对象
scene = bpy.context.scene
object = bpy.context.object
# 输出场景名称和所选对象名称
print("Scene Name: ", scene.name)
print("Object Name: ", object.name)
bpy.context 的许多属性和方法都是与当前的上下文环境相关的。因此,它们在不同的上下文环境下可能会被调用或访问到的内容是不同的。
此外,不能在渲染时(如bpy.ops.render.render())访问 bpy.context,因为此时没有交互会话。因此,建议在交互会话中使用 bpy.context。