脚本位置: \Editor\Data\Tools\Unity-BlenderToFBX.py
修改脚本
将脚本里的 outfile修改位 str(outfile)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
blender249 = True try: import Blender except: blender249 = False import bpy 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 " + str(outfile)) if 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') print("moo") 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=str(outfile), **kwargs) # HQ normals are not supported in the current exporter print("Finished blender to FBX conversion " + str(outfile)) |
由于unity自带脚本使用到了环境变量作为输出文件,设置环境变量

找到blender 路径 第一个参数是 模型位置, -P 代表python 脚本 找到unity tools里面的脚本, 运行后输出fbx.

blender2.8 需要修改代码
io_scene_fbx.export_fbx 修改为 —> io_scene_fbx.export_fbx_bin

使用命令行 -b 可以不用打开blender,直接转换成fbx

当然你也可以自己修改坐标轴导出fbx
转载请注明:veyvin » [命令行]blender使用unity自带插件导出fbx