MRが楽しい

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

Blenderで利用可能なpythonスクリプトを作る その1(オブジェクトの削除、エクスポート)

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

全オブジェクトの削除

全てのオブジェクトを削除します。
新規プロジェクト作成時に、プロジェクトを真っ新にしたい場合などに便利です。
・delete_all_objects.py

# bpyインポート
import bpy

# 全オブジェクトの削除
# 引数
# 戻り値
def delete_all_objects():
    # 全シーンオブジェクトを削除する
    for item in bpy.context.scene.objects:
        bpy.context.scene.objects.unlink(item)
    # 全データオブジェクトを削除する
    for item in bpy.data.objects:
        bpy.data.objects.remove(item)
    # 全メッシュデータを削除する
    for item in bpy.data.meshes:
        bpy.data.meshes.remove(item)
    # 全マテリアルデータを削除する
    for item in bpy.data.materials:
        bpy.data.materials.remove(item)
    return

# 関数の実行例
delete_all_objects()

f:id:bluebirdofoz:20180423000639j:plain

FBXファイルでのエクスポート

現在のオブジェクトをFBXファイル(ジオメトリ形式)で出力します。
・fbx_export_geometry.py

# bpyインポート
import bpy

# FBXモデルをエクスポートする(デフォルト設定)
# 引数   arg_filepath:ファイルパス
# 戻り値
def fbx_export_geometry(arg_filepath='D:\\BlenderDir\\Script\\Export.fbx'):
  # FBXエクスポート
  # bpy.ops.export_scene.fbx()
  # エクスポート設定(デフォルト値)
  bpy.ops.export_scene.fbx(
    filepath=arg_filepath,
    version='BIN7400',
    use_selection=False,
    global_scale=1.0,
    apply_unit_scale=True,
    apply_scale_options='FBX_SCALE_NONE',
    bake_space_transform=False,
    object_types={'EMPTY', 'CAMERA', 'LAMP', 'ARMATURE', 'MESH', 'OTHER'},
    use_mesh_modifiers=True,
    use_mesh_modifiers_render=True,
    mesh_smooth_type='OFF',
    use_mesh_edges=False,
    use_tspace=False,
    use_custom_props=False,
    add_leaf_bones=True,
    primary_bone_axis='Y',
    secondary_bone_axis='X',
    use_armature_deform_only=False,
    armature_nodetype='NULL',
    bake_anim=True,
    bake_anim_use_all_bones=True,
    bake_anim_use_nla_strips=True,
    bake_anim_use_all_actions=True,
    bake_anim_force_startend_keying=True,
    bake_anim_step=1.0,
    bake_anim_simplify_factor=1.0,
    path_mode='AUTO',
    embed_textures=False,
    batch_mode='OFF',
    use_batch_own_dir=True,
    use_metadata=True
  )
  # 出力対象の種別
  #  'EMPTY':エンプティ
  #  'CAMERA':カメラ
  #  'LAMP':ランプ
  #  'ARMATURE':アーマチュア
  #  'MESH':メッシュ
  #  'OTHER':その他
  # パスモードの種類
  #  'AUTO':自動
  #  'ABSOLUTE':絶対
  #  'RELATIVE':相対的
  #  'MATCH':マッチ
  #  'STRIP':ストリップパス
  #  'COPY':コピー
  return

# 関数の実行例
fbx_export_geometry('D:\BlenderDir\Script\ExportDir\Output.fbx')

f:id:bluebirdofoz:20180423000649j:plain