File size: 1,253 Bytes
8080e63
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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():
        # remove_all()
        reset()
        objs = load_mixamo_anim(args.char_path, args.anim_path, do_retarget=True, inplace=False)
        update()
        # bpy.ops.wm.save_as_mainfile(filepath=os.path.join(args.output_dir, f"{output_filename}.blend"))
        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,
            # path_mode="COPY",
            # embed_textures=True,
        )