MRが楽しい

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

Blender2.8で利用可能なpythonスクリプトを作る その14(インポート、エクスポート)

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

FBXファイルのインポート

指定のFBXファイルをデフォルト設定の指定でインポートします。
・fbx_import.py

# bpyインポート
import bpy

# FBXモデルをインポートする(デフォルト設定)
def import_file_fbx(arg_filepath=""):
    """FBXモデルをインポートする(デフォルト設定)
    
    Keyword Arguments:
        arg_filepath {str} -- 読み込みファイルパス (default: {""})
    """

    # FBXインポート
    # bpy.ops.import_scene.fbx()
    # https://docs.blender.org/api/2.82a/bpy.ops.import_scene.html#bpy.ops.import_scene.fbx
    # filepath を指定している場合は files の引数を外す
    bpy.ops.import_scene.fbx(
        filepath=arg_filepath,
        directory="",
        filter_glob="*.fbx",
        ui_tab='MAIN',
        use_manual_orientation=False,
        global_scale=1.0,
        bake_space_transform=False,
        use_custom_normals=True,
        use_image_search=True,
        use_alpha_decals=False,
        decal_offset=0.0,
        use_anim=True,
        anim_offset=1.0,
        use_subsurf=False,
        use_custom_props=True,
        use_custom_props_enum_as_string=True,
        ignore_leaf_bones=False,
        force_connect_children=False,
        automatic_bone_orientation=False,
        primary_bone_axis='Y',
        secondary_bone_axis='X',
        use_prepost_rot=True,
        axis_forward='-Z',
        axis_up='Y'
    )
    return


# 関数の実行例
import_file_fbx(arg_filepath="C:\\WORK\\import_sample.fbx")

f:id:bluebirdofoz:20200406220523j:plain

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

指定のFBXファイルをデフォルト設定の指定でエクスポートします。
・fbx_export.py

# bpyインポート
import bpy

# FBXモデルをエクスポートする(デフォルト設定)
def export_file_fbx(arg_filepath=""):
    """FBXモデルをエクスポートする(デフォルト設定)
    
    Keyword Arguments:
        arg_filepath {str} -- 書き出しファイルパス (default: {""})
    """

    # FBXエクスポート
    # bpy.ops.export_scene.fbx()
    # https://docs.blender.org/api/2.82a/bpy.ops.export_scene.html#bpy.ops.export_scene.fbx
    bpy.ops.export_scene.fbx(
        filepath=arg_filepath,
        check_existing=True,
        filter_glob="*.fbx",
        use_selection=False,
        use_active_collection=False,
        global_scale=1.0,
        apply_unit_scale=True,
        apply_scale_options='FBX_SCALE_NONE',
        bake_space_transform=False,
        object_types={'ARMATURE', 'CAMERA', 'EMPTY', 'LIGHT', 'MESH', 'OTHER'},
        use_mesh_modifiers=True,
        use_mesh_modifiers_render=True,
        mesh_smooth_type='OFF',
        use_subsurf=False,
        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,
        axis_forward='-Z',
        axis_up='Y'
    )
    return


# 関数の実行例
export_file_fbx(arg_filepath="C:\\WORK\\export_sample.fbx")

f:id:bluebirdofoz:20200406220510j:plain