視点の切り替え操作の例を3種類まとめておきます。
コードの中に入れておくと、デバッグ作業中に逐一切り替える手間が省けます。
動作確認環境 : Blender 4.2
3Dプレビュー切り替え
3D Viewのプレビュー設定の切り替えを行います。
モデリング時にはソリッドビューに切り替え、マテリアル作業前にマテリアルプレビューに切り替えのようにコード中にビューの切り替え処理を追加することが可能です。
Python :
def change_preview(key='SOLID'):
# 'SOLID' :ソリッドプレビュー
# 'MATERIAL' : マテリアルプレビュー
# 'RENDERED' :レンダープレビュー
for area in bpy.context.screen.areas:
if area.type == 'VIEW_3D':
for space in area.spaces:
if space.type == 'VIEW_3D':
space.shading.type = key
return
引数で、Viewの種類を指定します。
- SOLID:ソリッドプレビュー
- MATERIAL:マテリアルプレビュー
- RENDER:レンダープレビュー
透過ビュー切り替え
オブジェクトの透過を切り替えます。
Python :
def set_xray_view(key=True):
# 透過表示ON
# 3Dビューエリア取得
for area in bpy.context.screen.areas:
if area.type == 'VIEW_3D':
for space in area.spaces:
if space.type == 'VIEW_3D':
# 透過表示(X-ray)設定ON
space.shading.show_xray = key
# X-ray強度設定(デフォルト1.0)
space.shading.xray_alpha = 0.5
break
引数のTrue or Falseで透過ビューのON/OFFを切り替えます。
視点位置切り替え
視点位置の切り替え処理をまとめます。
Python :
# 視点を変更
def set_view_custom_position(
point=(0, 0, 0)
, rotate=(0, 0, 0)
, distance=3
):
# モード切り替え
bpy.ops.object.mode_set(mode='OBJECT')
for area in bpy.context.screen.areas:
if area.type == 'VIEW_3D':
for space in area.spaces:
if space.type == 'VIEW_3D':
region_3d = space.region_3d
region_3d.view_perspective = 'ORTHO' # 'PERSP'/'CAMERA'
# 視点位置/向き設定
region_3d.view_location = mathutils.Vector(point) # 位置
region_3d.view_distance = distance # 距離
region_3d.view_rotation = mathutils.Euler(rotate).to_quaternion() # 回転
# View更新
bpy.context.view_layer.update()
3D Previewでの見え位置を調整します。
引数で
- 角度
- 位置
- 距離
以上