36 lines
844 B
Python
36 lines
844 B
Python
import bpy
|
|
import sys
|
|
import json
|
|
|
|
# Parse CLI arguments
|
|
argv = sys.argv
|
|
input_path = argv[-3]
|
|
output_path = argv[-2]
|
|
settings_json_path = argv[-1]
|
|
|
|
print( argv )
|
|
print( input_path )
|
|
print( output_path )
|
|
print( settings_json_path )
|
|
|
|
# Reset the scene
|
|
bpy.ops.wm.read_factory_settings(use_empty=True)
|
|
|
|
# Import GLTF/GLB
|
|
bpy.ops.import_scene.gltf(filepath=input_path)
|
|
|
|
# Load FBX export settings from JSON file
|
|
with open(settings_json_path, 'r') as f:
|
|
export_settings = json.load(f)
|
|
|
|
# Convert certain keys to sets (JSON only allows lists)
|
|
for key in ['object_types']:
|
|
if key in export_settings and isinstance(export_settings[key], list):
|
|
export_settings[key] = set(export_settings[key])
|
|
|
|
print( export_settings )
|
|
# Export to FBX using settings from JSON
|
|
bpy.ops.export_scene.fbx(
|
|
filepath=output_path,
|
|
**export_settings
|
|
) |