可以在Blender中通过更改坐标系解决这个问题。具体来说,创建一个新的坐标系,将其Z轴修改为与导出时所需的方向相同,并将物体旋转90度。代码示例如下:
import bpy
bpy.ops.object.empty_add(type='PLAIN_AXES', align='WORLD', location=(0, 0, 0), scale=(1, 1, 1)) bpy.context.active_object.name = 'Axis' bpy.context.active_object.rotation_euler[0] = -1.5708 # 旋转90度
bpy.ops.object.select_all(action='DESELECT') bpy.ops.object.select_pattern(pattern="Cube") bpy.ops.object.align(align_mode='OPT_1', relative_to='ALIGN', align_axis='Z', align_axis_orientation='LOCAL', location=(0,0,0), scale=(1,1,1), rotation=(0,1.5708,0)) bpy.context.view_layer.objects.active = bpy.context.scene.objects.get('Axis') bpy.ops.object.track_set(type='TRACKZ', axis='TRACK_NEGATIVE_Z', up='UP_Y')
bpy.ops.export_scene.gltf(filepath='/path/to/output.glb', export_format='GLB', export_selected=True, export_yup=False)