MRが楽しい

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

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

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

全オブジェクトの削除

全てのオブジェクトを削除します。
新規プロジェクト作成時に、プロジェクトを真っ新にしたい場合などに便利です。
・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ファイル(ジオメトリ形式)でのエクスポート
# 引数   filepath:ファイルパス
# 戻り値
def fbx_export_geometry(arg1='D:\BlenderDir\Script\Default.fbx'):
  # 現在のオブジェクトを以下のFBXファイルで出力する
  # バージョン:FBX 7.4 バイナリ
  # 形式:ジオメトリ
  # モディファイアーを適用:チェック
  # モデイファイアーのレンダー設定を使用:チェック
  # スムージン:法線のみ
  # 孤立する辺:チェック無し
  # タンジェント空間:チェック無し
  bpy.ops.export_scene.fbx(\
    filepath=arg1,\
    version='BIN7400',\
    ui_tab='GEOMETRY',\
    use_mesh_modifiers=True,\
    use_mesh_modifiers_render=True,\
    mesh_smooth_type='OFF')
  return

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

f:id:bluebirdofoz:20180423000649j:plain