MRが楽しい

MRやVRについて学習したことを書き残す

Blenderで利用可能なpythonスクリプトを作る その5(編集モードへの移行、オブジェクトモードへの移行)

本日は Blender の技術調査枠です。
Blenderで利用可能なpythonスクリプトを作ります。

編集モードへのモード切替

指定オブジェクトの編集モードに移行します。
オブジェクトの頂点選択は前回の状態が引き継がれます。
・set_mode_edit.py

# bpyインポート
import bpy

# 編集モードへの移行
# 引数   arg_objectname:指定オブジェクト名
# 戻り値
def set_mode_edit(arg_objectname='Default'):
  # 他のオブジェクトにモディファイアを適用しないよう全てのオブジェクトを走査する
  for ob in bpy.context.scene.objects:
    # 非選択状態に設定する
    ob.select=False
  # 指定オブジェクトを取得する
  selectob = bpy.data.objects[arg_objectname]
  # 変更オブジェクトをアクティブに変更する
  bpy.context.scene.objects.active = selectob
  # 編集モードに移行する
  bpy.ops.object.mode_set(mode='EDIT', toggle=False)
  return

# 関数の実行例
set_mode_edit('Cube')

f:id:bluebirdofoz:20180430233240j:plain

オブジェクトモードへのモード切替

指定オブジェクトのオブジェクトモードに移行します。
・set_mode_object.py

# bpyインポート
import bpy

# オブジェクトモードへの移行
# 引数   arg_objectname:指定オブジェクト名
# 戻り値
def set_mode_object(arg_objectname='Default'):
  # 他のオブジェクトにモディファイアを適用しないよう全てのオブジェクトを走査する
  for ob in bpy.context.scene.objects:
    # 非選択状態に設定する
    ob.select=False
  # 指定オブジェクトを取得する
  selectob = bpy.data.objects[arg_objectname]
  # 変更オブジェクトをアクティブに変更する
  bpy.context.scene.objects.active = selectob
  # 編集モードに移行する
  bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
  return

# 関数の実行例
set_mode_object('Cube')

f:id:bluebirdofoz:20180430233257j:plain