Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import bpy
- blender249 = True
- blender280 = (2,80,0) <= bpy.app.version
- try:
- import Blender
- except:
- blender249 = False
- if not blender280:
- if blender249:
- try:
- import export_fbx
- except:
- print('error: export_fbx not found.')
- Blender.Quit()
- else :
- try:
- import io_scene_fbx.export_fbx
- except:
- print('error: io_scene_fbx.export_fbx not found.')
- # This might need to be bpy.Quit()
- raise
- # Find the Blender output file
- import os
- outfile = os.getenv("UNITY_BLENDER_EXPORTER_OUTPUT_FILE")
- # Do the conversion
- print("Starting blender to FBX conversion " + outfile)
- if blender280:
- import bpy.ops
- bpy.ops.export_scene.fbx(filepath=outfile,
- check_existing=False,
- use_selection=False,
- use_active_collection=False,
- object_types= {'ARMATURE','CAMERA','LIGHT','MESH','EMPTY'},
- use_mesh_modifiers=True,
- mesh_smooth_type='OFF',
- use_custom_props=True,
- apply_scale_options='FBX_SCALE_ALL')
- elif blender249:
- mtx4_x90n = Blender.Mathutils.RotationMatrix(-90, 4, 'x')
- export_fbx.write(outfile,
- EXP_OBS_SELECTED=False,
- EXP_MESH=True,
- EXP_MESH_APPLY_MOD=True,
- EXP_MESH_HQ_NORMALS=True,
- EXP_ARMATURE=True,
- EXP_LAMP=True,
- EXP_CAMERA=True,
- EXP_EMPTY=True,
- EXP_IMAGE_COPY=False,
- ANIM_ENABLE=True,
- ANIM_OPTIMIZE=False,
- ANIM_ACTION_ALL=True,
- GLOBAL_MATRIX=mtx4_x90n)
- else:
- # blender 2.58 or newer
- import math
- from mathutils import Matrix
- # -90 degrees
- mtx4_x90n = Matrix.Rotation(-math.pi / 2.0, 4, 'X')
- class FakeOp:
- def report(self, tp, msg):
- print("%s: %s" % (tp, msg))
- exportObjects = ['ARMATURE', 'EMPTY', 'MESH']
- minorVersion = bpy.app.version[1];
- if minorVersion <= 58:
- # 2.58
- io_scene_fbx.export_fbx.save(FakeOp(), bpy.context, filepath=outfile,
- global_matrix=mtx4_x90n,
- use_selection=False,
- object_types=exportObjects,
- mesh_apply_modifiers=True,
- ANIM_ENABLE=True,
- ANIM_OPTIMIZE=False,
- ANIM_OPTIMIZE_PRECISSION=6,
- ANIM_ACTION_ALL=True,
- batch_mode='OFF',
- BATCH_OWN_DIR=False)
- else:
- # 2.59 and later
- kwargs = io_scene_fbx.export_fbx.defaults_unity3d()
- io_scene_fbx.export_fbx.save(FakeOp(), bpy.context, filepath=outfile, **kwargs)
- # HQ normals are not supported in the current exporter
- print("Finished blender to FBX conversion " + outfile)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement