|
import argparse |
|
import os |
|
|
|
from utils import HiddenPrints, bpy, load_mixamo_anim, remove_all, reset, select_objs, update |
|
|
|
if __name__ == "__main__": |
|
parser = argparse.ArgumentParser() |
|
parser.add_argument("--char_path", type=str, required=True) |
|
parser.add_argument("--anim_path", type=str, required=True) |
|
parser.add_argument("--output_dir", type=str, required=True) |
|
args = parser.parse_args() |
|
|
|
get_base_name = lambda s: os.path.splitext(os.path.basename(s))[0] |
|
output_filename = f"{get_base_name(args.char_path)}-{get_base_name(args.anim_path)}" |
|
with HiddenPrints(): |
|
|
|
reset() |
|
objs = load_mixamo_anim(args.char_path, args.anim_path, do_retarget=True, inplace=False) |
|
update() |
|
|
|
select_objs(objs, deselect_first=True) |
|
bpy.ops.export_scene.fbx( |
|
filepath=os.path.join(args.output_dir, f"{output_filename}.fbx"), |
|
check_existing=False, |
|
use_selection=True, |
|
use_triangles=True, |
|
add_leaf_bones=False, |
|
bake_anim=True, |
|
|
|
|
|
) |
|
|