2016-06-21 6 views
0

私はBlender 2.76b、threejsエクスポーターv1.5.0を使用しています。私の目標はBlenderシーンの各メッシュを書き出すことです。私は、単一のメッシュがメッシュ、io_three輸出を選択した場合に気づいたので、私は、コンソールに簡単なPythonスクリプトを実行可能に書いた:Blenderコンソール:threejsを使用して単一メッシュをエクスポートします。

import bpy 

for ob in bpy.context.scene.objects: 
    bpy.ops.object.select_all(action='DESELECT') 
    bpy.ops.object.select_pattern(pattern = ob.name) 
    bpy.ops.export.three(
     filepath = 'path to folder' + ob.name + ".json", 
     option_vertices=True, 
     option_faces=True, 
     option_normals=True, 
     option_uv_coords=True, 
     option_face_materials=True, 
     option_colors=True) 

それは間違った内容で、右の名前のファイルを作成します。すべての.jsonファイルをシーンの最初のメッシュのエクスポートされたコンテンツを含みます。

どうすれば正しい行動を取ることができますか? ありがとうございます。

答えて

2

three.jsエクスポータは、シーン全体またはアクティブなオブジェクトのいずれかをエクスポートします。選択を変更している間は、スクリプト内でアクティブなオブジェクトを変更するものはありません。私が使用しabspath()は、あなたがその作業が本当に、ありがとう'//'

import bpy 

for ob in bpy.context.scene.objects: 
    bpy.ops.object.select_all(action='DESELECT') 
    if ob.type == 'MESH': 
     ob.select = True 
     bpy.context.scene.objects.active = ob 
     bpy.ops.export.three(
      filepath = bpy.path.abspath('//' + ob.name + ".json"), 
      option_vertices=True, 
      option_faces=True, 
      option_normals=True, 
      option_uv_coords=True, 
      option_face_materials=True, 
      option_colors=True) 
+0

でパスを開始することにより、blendファイルからの相対パスを取得することができます – vec3h

関連する問題