由于Blender对于FBX的兼容性问题, 会导致某些版本导入FBX失败
使用新版本Blender导入有问题的FBX, 再导出FBX
示例, 在2.75导入FBX失败, 使用2.79版本(必须小于2.8版本)运行脚本, 即可批量转换FBX
Blender运行Python脚本可参照博客 从Blender批量导出OGRE模型
import bpy import sys import os import re from os.path import join, split in_dir = "C:\\Users\\Ian\\Desktop\\data" filters = ["ss.fbx"] io_ogre = "D:\\blender2ogre\\io_ogre" path = "C:\\Users\\Ian\\Desktop\\tmp" def reset_blend(): for ob in bpy.data.objects: ob.select = True bpy.ops.object.delete() for item in bpy.data.meshes: bpy.data.meshes.remove(item) def convert(path, filters): need_file_items = [] need_file_names = [] filterDict = {} for item in filters: filterDict[item] = True file_lst = os.listdir(path) for item in file_lst: fileName, fileExtension = os.path.splitext(item) if fileExtension == ".fbx" or ".FBX" and (not item in filterDict): need_file_items.append(item) need_file_names.append(fileName) n = len(need_file_items) for i in range(n): item = need_file_items[i] itemName = need_file_names[i] ufilename = path + "\\" + item bpy.ops.import_scene.fbx( filepath=ufilename, directory=path, filter_glob="*.fbx") bpy.ops.export_scene.fbx(filepath=ufilename, check_existing = False) reset_blend() sys.path.append(io_ogre) from io_ogre.ogre.skeleton import dot_skeleton from io_ogre.ogre.mesh import dot_mesh from io_ogre.ogre.scene import dot_scene from io_ogre import config reset_blend() convert(in_dir, filters) print('Success!')