bpy.context
bpy.contextbpy.context.areabpy.context.asset_file_handlebpy.context.blend_databpy.context.collectiobpy.context.enginebpy.context.gizmo_groupbpy.context.layer_collectionbpy.context.modebpy.context.preferencesbpy.context.regionbpy.context.region_databpy.context.scenebpy.context.screenbpy.context.space_databpy.context.tool_settingsbpy.context.view_layerbpy.context.windowbpy.context.window_managerbpy.context.workspacebpy.context.texture_slotbpy.context.scenebpy.context.worldbpy.context.objectbpy.context.meshbpy.context.armaturebpy.context.latticebpy.context.curvebpy.context.meta_ballbpy.context.lightbpy.context.speakerbpy.context.lightprobebpy.context.camerabpy.context.materialbpy.context.material_slotbpy.context.texturebpy.context.texture_userbpy.context.texture_user_propertybpy.context.bonebpy.context.edit_bonebpy.context.pose_bonebpy.context.particle_systembpy.context.particle_system_editablebpy.context.particle_settingsbpy.context.clothbpy.context.soft_bodybpy.context.fluidbpy.context.collisionbpy.context.brushbpy.context.dynamic_paintbpy.context.line_stylebpy.context.collectionbpy.context.gpencilbpy.context.curvesbpy.context.volumebpy.context.edit_movieclipbpy.context.edit_maskbpy.context.active_filebpy.context.selected_filesbpy.context.asset_library_refbpy.context.selected_asset_filesbpy.context.idbpy.context.edit_imagebpy.context.edit_maskbpy.context.selected_nodesbpy.context.active_nodebpy.context.lightbpy.context.materialbpy.context.worldbpy.context.scenebpy.context.view_layerbpy.context.visible_objectsbpy.context.selectable_objectsbpy.context.selected_objectsbpy.context.editable_objectsbpy.context.selected_editable_objectsbpy.context.objects_in_modebpy.context.objects_in_mode_unique_databpy.context.visible_bonesbpy.context.editable_bonesbpy.context.selected_bonesbpy.context.selected_editable_bonesbpy.context.visible_pose_bonesbpy.context.selected_pose_bonesbpy.context.selected_pose_bones_from_active_objectbpy.context.active_bonebpy.context.active_pose_bonebpy.context.active_objectbpy.context.objectbpy.context.edit_objectbpy.context.sculpt_objectbpy.context.vertex_paint_objectbpy.context.weight_paint_objectbpy.context.image_paint_objectbpy.context.particle_edit_objectbpy.context.pose_objectbpy.context.active_sequence_stripbpy.context.sequencesbpy.context.selected_sequencesbpy.context.selected_editable_sequencesbpy.context.active_nla_trackbpy.context.active_nla_stripbpy.context.selected_nla_stripsbpy.context.selected_movieclip_tracksbpy.context.gpencil_databpy.context.gpencil_data_ownerbpy.context.annotation_databpy.context.annotation_data_ownerbpy.context.visible_gpencil_layersbpy.context.editable_gpencil_layersbpy.context.editable_gpencil_strokesbpy.context.active_gpencil_layerbpy.context.active_gpencil_framebpy.context.active_annotation_layerbpy.context.active_operatorbpy.context.active_actionbpy.context.selected_visible_actionsbpy.context.selected_editable_actionsbpy.context.visible_fcurvesbpy.context.editable_fcurvesbpy.context.selected_visible_fcurvesbpy.context.selected_editable_fcurvesbpy.context.active_editable_fcurvebpy.context.selected_editable_keyframesbpy.context.ui_listbpy.context.asset_library_refbpy.context.edit_maskbpy.context.edit_textbpy.context.active_objectbpy.context.selected_ids
bpy.data
bpy.msgbus
bpy.ops
bpy.ops.actions
bpy.ops.anim
bpy.ops.anim.change_framebpy.ops.anim.channel_select_keysbpy.ops.anim.channels_clean_emptybpy.ops.anim.channels_clickbpy.ops.anim.channels_collapsebpy.ops.anim.channels_deletebpy.ops.anim.channels_editable_togglebpy.ops.anim.channels_expandbpy.ops.anim.channels_fcurves_enablebpy.ops.anim.channels_groupbpy.ops.anim.channels_movebpy.ops.anim.channels_renamebpy.ops.anim.channels_select_allbpy.ops.anim.channels_select_boxbpy.ops.anim.channels_select_filterbpy.ops.anim.channels_setting_disablebpy.ops.anim.channels_setting_enablebpy.ops.anim.channels_setting_togglebpy.ops.anim.channels_ungroupbpy.ops.anim.clear_useless_actionsbpy.ops.anim.copy_driver_buttonbpy.ops.anim.driver_button_addbpy.ops.anim.driver_button_editbpy.ops.anim.driver_button_removebpy.ops.anim.end_frame_setbpy.ops.anim.keyframe_clear_buttonbpy.ops.anim.keyframe_clear_v3dbpy.ops.anim.keyframe_deletebpy.ops.anim.keyframe_delete_buttonbpy.ops.anim.keyframe_delete_by_namebpy.ops.anim.keyframe_delete_v3dbpy.ops.anim.keyframe_insertbpy.ops.anim.keyframe_insert_buttonbpy.ops.anim.keyframe_insert_by_namebpy.ops.anim.keyframe_insert_menubpy.ops.anim.keying_set_active_setbpy.ops.anim.keying_set_addbpy.ops.anim.keying_set_exportbpy.ops.anim.keying_set_path_addbpy.ops.anim.keying_set_path_removebpy.ops.anim.keying_set_removebpy.ops.anim.keyingset_button_addbpy.ops.anim.keyingset_button_removebpy.ops.anim.paste_driver_buttonbpy.ops.anim.previewrange_clearbpy.ops.anim.previewrange_setbpy.ops.anim.start_frame_setbpy.ops.anim.update_animated_transform_constraintsbpy.ops.anim.snapbpy.ops.anim.stashbpy.ops.anim.stash_and_createbpy.ops.anim.unlinkbpy.ops.anim.view_allbpy.ops.anim.view_framebpy.ops.anim.view_selected
bpy.opts.armature
bpy.ops.asset
bpy.ops.boid
bpy.ops.brush
bpy.ops.buttons
bpy.ops.cachefile
bpy.ops.camera
bpy.ops.clip
bpy.ops.clip.add_markerbpy.ops.clip.add_marker_at_clickbpy.ops.clip.add_marker_movebpy.ops.clip.add_marker_slidebpy.ops.clip.apply_solution_scalebpy.ops.clip.average_tracksbpy.ops.clip.bundles_to_meshbpy.ops.clip.camera_preset_addbpy.ops.clip.change_framebpy.ops.clip.clean_tracksbpy.ops.clip.clear_solutionbpy.ops.clip.clear_track_pathbpy.ops.clip.constraint_to_fcurvebpy.ops.clip.copy_tracksbpy.ops.clip.create_plane_trackbpy.ops.clip.cursor_setbpy.ops.clip.delete_markerbpy.ops.clip.delete_proxybpy.ops.clip.delete_trackbpy.ops.clip.detect_featuresbpy.ops.clip.disable_markersbpy.ops.clip.dopesheet_select_channelbpy.ops.clip.dopesheet_view_allbpy.ops.clip.filter_tracksbpy.ops.clip.frame_jumpbpy.ops.clip.graph_center_current_framebpy.ops.clip.graph_delete_curvebpy.ops.clip.graph_delete_knotbpy.ops.clip.graph_disable_markersbpy.ops.clip.graph_selectbpy.ops.clip.graph_select_all_markersbpy.ops.clip.graph_select_boxbpy.ops.clip.graph_view_allbpy.ops.clip.hide_tracksbpy.ops.clip.hide_tracks_clearbpy.ops.clip.join_tracksbpy.ops.clip.keyframe_deletebpy.ops.clip.keyframe_insertbpy.ops.clip.lock_selection_togglebpy.ops.clip.lock_tracksbpy.ops.clip.mode_setbpy.ops.clip.new_image_from_plane_markerbpy.ops.clip.openbpy.ops.clip.paste_tracksbpy.ops.clip.prefetchbpy.ops.clip.rebuild_proxybpy.ops.clip.refine_markersbpy.ops.clip.reloadbpy.ops.clip.selectbpy.ops.clip.select_allbpy.ops.clip.select_boxbpy.ops.clip.select_circlebpy.ops.clip.select_groupedbpy.ops.clip.select_lassobpy.ops.clip.set_active_clipbpy.ops.clip.set_axisbpy.ops.clip.set_center_principalbpy.ops.clip.set_originbpy.ops.clip.set_planebpy.ops.clip.set_scalebpy.ops.clip.set_scene_framebpy.ops.clip.set_solution_scalebpy.ops.clip.set_solver_keyframebpy.ops.clip.set_viewport_backgroundbpy.ops.clip.setup_tracking_scenebpy.ops.clip.slide_markerbpy.ops.clip.slide_plane_markerbpy.ops.clip.solve_camerabpy.ops.clip.stabilize_2d_addbpy.ops.clip.stabilize_2d_removebpy.ops.clip.stabilize_2d_rotation_addbpy.ops.clip.bilize_2d_rotation_removebpy.ops.clip.stabilize_2d_rotation_selectbpy.ops.clip.stabilize_2d_selectbpy.ops.clip.track_color_preset_addbpy.ops.clip.track_copy_colorbpy.ops.clip.track_markersbpy.ops.clip.track_settings_as_defaultbpy.ops.clip.track_settings_to_trackbpy.ops.clip.track_to_emptybpy.ops.clip.tracking_object_newbpy.ops.clip.tracking_object_removebpy.ops.clip.tracking_settings_preset_addbpy.ops.clip.update_image_from_plane_markerbpy.ops.clip.view_allbpy.ops.clip.view_center_cursorbpy.ops.clip.view_ndofbpy.ops.clip.view_panbpy.ops.clip.view_selectedbpy.ops.clip.view_zoombpy.ops.clip.view_zoom_inbpy.ops.clip.view_zoom_outbpy.ops.clip.view_zoom_ratio
bpy.ops.cloth
bpy.ops.collection
bpy.ops.console
bpy.ops.constraint
bpy.ops.curve
bpy.ops.curves
bpy.ops.cycles
bpy.ops.dpaint
bpy.ops.ed
bpy.ops.export_
bpy.ops.file
bpy.ops.fluid
bpy.ops.font
bpy.ops.geometry
bpy.ops.gizmogroup
bpy.ops.gpencil
bpy.ops.gpencil.active_frame_deletebpy.ops.gpencil.active_frames_delete_allbpy.ops.gpencil.annotatebpy.ops.gpencil.annotation_active_frame_deletebpy.ops.gpencil.annotation_addbpy.ops.gpencil.bake_grease_pencil_animationbpy.ops.gpencil.bake_mesh_animationbpy.ops.gpencil.blank_frame_addbpy.ops.gpencil.brush_resetbpy.ops.gpencil.brush_reset_allbpy.ops.gpencil.convertbpy.ops.gpencil.convert_old_filesbpy.ops.gpencil.copybpy.ops.gpencil.data_unlinkbpy.ops.gpencil.deletebpy.ops.gpencil.dissolvebpy.ops.gpencil.drawbpy.ops.gpencil.duplicatebpy.ops.gpencil.duplicate_movebpy.ops.gpencil.editmode_togglebpy.ops.gpencil.extract_palette_vertexbpy.ops.gpencil.extrudebpy.ops.gpencil.extrude_movebpy.ops.gpencil.fillbpy.ops.gpencil.frame_clean_duplicatebpy.ops.gpencil.frame_clean_fillbpy.ops.gpencil.frame_clean_loosebpy.ops.gpencil.frame_duplicatebpy.ops.gpencil.generate_weightsbpy.ops.gpencil.guide_rotatebpy.ops.gpencil.hidebpy.ops.gpencil.image_to_grease_pencilbpy.ops.gpencil.interpolatebpy.ops.gpencil.interpolate_reversebpy.ops.gpencil.interpolate_sequencebpy.ops.gpencil.layer_activebpy.ops.gpencil.layer_addbpy.ops.gpencil.layer_annotation_addbpy.ops.gpencil.layer_annotation_movebpy.ops.gpencil.layer_annotation_removebpy.ops.gpencil.layer_changebpy.ops.gpencil.layer_duplicatebpy.ops.gpencil.layer_duplicate_objectbpy.ops.gpencil.layer_isolatebpy.ops.gpencil.layer_mask_addbpy.ops.gpencil.layer_mask_movebpy.ops.gpencil.layer_mask_removebpy.ops.gpencil.layer_mergebpy.ops.gpencil.layer_movebpy.ops.gpencil.layer_removebpy.ops.gpencil.lock_allbpy.ops.gpencil.lock_layerbpy.ops.gpencil.material_hidebpy.ops.gpencil.material_isolatebpy.ops.gpencil.material_lock_allbpy.ops.gpencil.material_lock_unusedbpy.ops.gpencil.material_revealbpy.ops.gpencil.material_selectbpy.ops.gpencil.material_setbpy.ops.gpencil.material_to_vertex_colorbpy.ops.gpencil.material_unlock_allbpy.ops.gpencil.materials_copy_to_objectbpy.ops.gpencil.move_to_layerbpy.ops.gpencil.paintmode_togglebpy.ops.gpencil.pastebpy.ops.gpencil.primitive_boxbpy.ops.gpencil.primitive_circlebpy.ops.gpencil.primitive_curvebpy.ops.gpencil.primitive_linebpy.ops.gpencil.primitive_polylinebpy.ops.gpencil.recalc_geometrybpy.ops.gpencil.reprojectbpy.ops.gpencil.reset_transform_fillbpy.ops.gpencil.revealbpy.ops.gpencil.sculpt_paintbpy.ops.gpencil.sculptmode_togglebpy.ops.gpencil.segment_addbpy.ops.gpencil.segment_movebpy.ops.gpencil.segment_removebpy.ops.gpencil.selectbpy.ops.gpencil.select_allbpy.ops.gpencil.select_alternatebpy.ops.gpencil.select_boxbpy.ops.gpencil.select_circlebpy.ops.gpencil.select_firstbpy.ops.gpencil.select_groupedbpy.ops.gpencil.select_lassobpy.ops.gpencil.select_lastbpy.ops.gpencil.select_lessbpy.ops.gpencil.select_linkedbpy.ops.gpencil.select_morebpy.ops.gpencil.select_randombpy.ops.gpencil.select_vertex_colorbpy.ops.gpencil.selection_opacity_togglebpy.ops.gpencil.selectmode_togglebpy.ops.gpencil.set_active_materialbpy.ops.gpencil.snap_cursor_to_selectedbpy.ops.gpencil.snap_to_cursorbpy.ops.gpencil.snap_to_gridbpy.ops.gpencil.stroke_apply_thicknessbpy.ops.gpencil.stroke_arrangebpy.ops.gpencil.stroke_caps_setbpy.ops.gpencil.stroke_change_colorbpy.ops.gpencil.stroke_cutterbpy.ops.gpencil.stroke_cyclical_setbpy.ops.gpencil.stroke_editcurve_set_handle_typebpy.ops.gpencil.stroke_enter_editcurve_modebpy.ops.gpencil.stroke_flipbpy.ops.gpencil.stroke_joinbpy.ops.gpencil.stroke_mergebpy.ops.gpencil.stroke_merge_by_distancebpy.ops.gpencil.stroke_merge_materialbpy.ops.gpencil.stroke_normalizebpy.ops.gpencil.stroke_outlinebpy.ops.gpencil.stroke_reset_vertex_colorbpy.ops.gpencil.stroke_samplebpy.ops.gpencil.stroke_separatebpy.ops.gpencil.stroke_simplifybpy.ops.gpencil.stroke_simplify_fixedbpy.ops.gpencil.stroke_smoothbpy.ops.gpencil.stroke_splitbpy.ops.gpencil.stroke_start_setbpy.ops.gpencil.stroke_subdividebpy.ops.gpencil.stroke_trimbpy.ops.gpencil.time_segment_addbpy.ops.gpencil.time_segment_movebpy.ops.gpencil.time_segment_removebpy.ops.gpencil.tint_flipbpy.ops.gpencil.trace_imagebpy.ops.gpencil.transform_fillbpy.ops.gpencil.unlock_allbpy.ops.gpencil.vertex_color_brightness_contrastbpy.ops.gpencil.vertex_color_hsvbpy.ops.gpencil.vertex_color_invertbpy.ops.gpencil.vertex_color_levelsbpy.ops.gpencil.vertex_color_setbpy.ops.gpencil.vertex_group_assignbpy.ops.gpencil.vertex_group_deselectbpy.ops.gpencil.vertex_group_invertbpy.ops.gpencil.vertex_group_normalizebpy.ops.gpencil.vertex_group_normalize_allbpy.ops.gpencil.vertex_group_remove_frombpy.ops.gpencil.vertex_group_selectbpy.ops.gpencil.vertex_group_smoothbpy.ops.gpencil.vertex_paintbpy.ops.gpencil.vertexmode_togglebpy.ops.gpencil.weight_paintbpy.ops.gpencil.weightmode_toggle

bpy.context.region

bpy.context.region 是 Blender的一个对象,表示3D视图或UV视图中某个区域的设置和信息。本文档将介绍 bpy.context.region 的属性、方法、以及常用应用场景。

属性

bpy.context.region.width

表示3D或UV视图中区域的宽度,以像素为单位。

bpy.context.region.height

表示3D或UV视图中区域的高度,以像素为单位。

bpy.context.region.view_width

表示3D或UV视图中区域指定的视图宽度(即用户设置的视口大小),以像素为单位。如果设置了裁剪区域,此属性将返回裁剪区域的宽度。

bpy.context.region.view_height

表示3D或UV视图中区域指定的视图高度(即用户设置的视口大小),以像素为单位。如果设置了裁剪区域,此属性将返回裁剪区域的高度。

bpy.context.region.type

表示区域的类型,可以是 VIEW_3D(3D视图) 或ARTSPACE(UV视图)。

bpy.context.region.x

表示区域的横坐标,以左上角为原点。

bpy.context.region.y

表示区域的纵坐标,以左上角为原点。

bpy.context.region.width_as_pct

将3D或UV视图中区域的宽度表示为视图宽度(viewport width)的百分比(0.0到1.0)。 裁剪区域不影响此值。

bpy.context.region.height_as_pct

将3D或UV视图中区域的高度表示为视图高度(viewport height)的百分比(0.0到1.0)。裁剪区域不影响此值。

方法

bpy.context.region.view2d.region_to_view(coord)

将区域坐标(region coordinate)转换为视图坐标(view coordinate)。

参数 coord 必须是包含两个元素的元组,表示 X 和 Y 坐标。返回包含两个元素的元组,表示坐标 x 和 y 的视图坐标。

** bpy.context.region.view2d.view_to_region(coord)**

将视图坐标转换为区域坐标。

参数 coord 必须是包含两个元素的元组,表示 X 和 Y 坐标。返回包含两个元素的元组,表示坐标 x 和 y 的区域坐标。

常见用法

获取当前3D视图的宽度和高度:

area = bpy.context.area
if area.type == 'VIEW_3D':
    region = area.regions[4]
    width = region.width
    height = region.height

获取当前3D视图中鼠标位置的坐标:

import bpy

area = bpy.context.area
if area.type == 'VIEW_3D':
    region = area.regions[4]
    x, y = bpy.context.mouse_region_x, bpy.context.mouse_region_y
    coord = (x, y)
    view_coord = region.view2d.region_to_view(coord)
    print('Mouse position in 3D view:', view_coord)

在3D视图中创建一个新的视口区域:

import bpy

window = bpy.context.window
screen = bpy.context.screen
areas = screen.areas

area1 = areas[0]
area2 = areas[1]

if area1.type == 'VIEW_3D' and area2.type == 'VIEW_3D':
    region1 = area1.regions[-1]
    region2 = area2.regions[-1]

    # 将area1的宽度分成两半
    region1.width = region1.width / 2

    # 新建一个区域并设置大小和坐标
    new_region = screen.areas[0].regions.new(type='WINDOW', align='RIGHT')
    new_region.width = region1.width
    new_region.height = region1.height
    new_region.x = region1.x + region1.width
    new_region.y = region1.y

    # 链接新的区域到area2
    area2.regions[-1] = new_region

以上是对 bpy.context.region 的简单介绍,它是Blender中一个十分常用的对象,尤其是针对视图区域的编辑和管理。