BlenderでOBJファイルをFBXに自動変換して出力するサンプル

Blenderの起動時に指定したOBJファイルを自動的にインポートし、 FBXファイルを出力するサンプルです。

Version:2.73a
キーワード:Python,FBX ,OBJ,ファイルフォーマット変換
OS:Windows , OS X

サンプルコード

いろいろ考慮すべき部分を端折ってますので’サンプル’ということで。

convfileblender.bat

c:\blender\blender.exe -P C:\Users\username\desktop\testconv.py -b -- %1

convfileblender.scpt

on main(input)
        try
                do shell script "/Applications/Blender274RC1/blender.app/Contents/MacOS/blender -P ~/Desktop/testconv.py -b --" & space & input
        end try
end main

on open argv
        repeat with aFile in argv
                main(quoted form of POSIX path of aFile)
        end repeat
end open

on run
        main(quoted form of POSIX path of (choose file))
end run

testconv.py

import bpy
import sys
import os

def delete_all():
    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)

def convert_file(filepath):
    basename = filename = fileext = ext = outpath =''
    dirname = os.path.dirname(filepath)
    basename = os.path.basename(filepath)
    (filename,fileext) = os.path.splitext(basename)

    ext = fileext.lower()

    if os.path.isfile(filepath):

        # .obj -> .fbx
        if ext =='.obj':
            bpy.ops.import_scene.obj(filepath=filepath)

            outpath = os.path.join(dirname,filename+".fbx")
            bpy.ops.export_scene.fbx(filepath=outpath)

        else:
            None


if __name__ == "__main__":
    delete_all()
    convert_file(filepath=sys.argv[-1])

[EOF]