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
。