どうも、ぼくです。
33
久々にBlenderPythonネタ(+Apple Script)。
OS X 10.10.3、Blender 2.74 RC1 上で試しました。

えーと、FBXファイルを自動的に開けないかなー、っていうツイートを見かけて、



「そういえばなんか(別の形のものを)みたような気がする」ということで。

Blender開いて、メニューからImportコマンド呼び出してファイル指定して…っていう手間を省こうというわけですね。

とりあえず「OBJファイルを開くと自動的にBlenderにインポートされた状態にする」というのを書いて(?)みました。多分test.pyにきちんとファイルパスが渡ればなんとかなると思うので、他のOSの環境でも少しごにょごにょしたら同じようにできるかも。

では早速。Blender起動時に読み込ませるPythonスクリプトと、起動時にオプションを渡すAppleスクリプトの2つで実現します。

以下のファイルをtest.py という名前でデスクトップに置いておきます。

import bpy
import sys

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)

if __name__ == "__main__":
    delete_all()
    bpy.ops.import_scene.obj(filepath=sys.argv[-1], axis_forward='-Z', axis_up='Y' )


起動用のAppleScriptは以下。スクリプトエディタで作成します。スクリプトエディタの再生ボタンを押すと実行されます。

なお、blenderの実行ファイルのパス等々は環境に合わせて設定してください。

on main(input)
	try
		do shell script "/Applications/Blender274RC1/blender.app/Contents/MacOS/blender -P ~/Desktop/test.py --" & 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


使用する流れとしては、スクリプトエディタからAppleScriptを実行するとファイルダイアログ出現、objファイルを開くとBlenderが起動してインポートされている、という感じ。
ちなみに当方ではスクリプト書いただけでアプリケーションにしたりファイル関連付けたりしてないので、スクリプトエディタからの実行のみ確認にとどめています。

種明かしをすると、最後にある引数のファイル名を起動時オプション'-P'で指定したtest.py内でOBJインポートするようにしている、という。

/Applications/Blender274RC1/blender.app/Contents/MacOS/blender -P /Users/username/Desktop/test.py -- '/Users/username/Desktop/untitled.obj'


今回は「OBJファイルを自動でインポートできるかどうか」を試してみただけということで。



[追記]FBXのインポートは上記のスクリプトの bpy.ops.import_scene.obj()の部分を以下のように書き換えてみると?


bpy.ops.import_scene.fbx(filepath=sys.argv[-1],automatic_bone_orientation=True)


[追記2]Windowsのバッチファイルだとこんな感じですかね?

C:\blender\blender.exe -P C:\Users\username\Desktop\test.py -- %1


[追記3] ファイルの拡張子を見て適宜インポートする(fbx,obj)版を http://www.pasteall.org/57317/python に置いています。


参考にしたページ



ではー。