Esempio n. 1
0
def main(args):
    v_up_env = utils.str_to_axis(args.axis_up)
    if args.bvh_files:
        motions = [
            bvh.load(
                file=filename,
                v_up_skel=v_up_env,
                v_face_skel=utils.str_to_axis(args.axis_face),
                v_up_env=v_up_env,
                scale=args.scale,
            )
            for filename in args.bvh_files
        ]
    else:
        motions = [
            asfamc.load(file=f, motion=m)
            for f, m in zip(args.asf_files, args.amc_files)
        ]

    for i in range(len(motions)):
        motion_ops.translate(motions[i], [args.x_offset * i, 0, 0])
    cam = camera.Camera(
        pos=np.array(args.camera_position),
        origin=np.array(args.camera_origin),
        vup=v_up_env,
        fov=45.0,
    )
    viewer = MocapViewer(
        motions=motions,
        play_speed=args.speed,
        scale=args.scale,
        thickness=args.thickness,
        render_overlay=args.render_overlay,
        hide_origin=args.hide_origin,
        title="Motion Graph Viewer",
        cam=cam,
        size=(1280, 720),
    )
    viewer.run()
Esempio n. 2
0
    def test_load_parallel(self):
        # Load files
        motions = bvh.load_parallel(
            files=[TEST_SINUSOIDAL_FILE, TEST_SINUSOIDAL_2_FILE], )
        self.assertEqual(len(motions), 2)
        # Test if the loaded motion objects are not same in the first frame
        self.assertNotEqual(motions[0].poses[0], motions[1].poses[0])

        # Use kwargs
        v_up_skel = utils.str_to_axis("y")
        v_face_skel = utils.str_to_axis("z")
        v_up_env = utils.str_to_axis("x")
        motions = bvh.load_parallel(
            files=[TEST_SINUSOIDAL_FILE, TEST_SINUSOIDAL_2_FILE],
            scale=0.1,
            v_up_skel=v_up_skel,
            v_face_skel=v_face_skel,
            v_up_env=v_up_env,
        )
        np.testing.assert_equal(motions[0].skel.v_up, v_up_skel)
        np.testing.assert_equal(motions[0].skel.v_face, v_face_skel)
        np.testing.assert_equal(motions[0].skel.v_up_env, v_up_env)
Esempio n. 3
0
    parser.add_argument("--w-ee-vel", type=float, default=1.0)
    parser.add_argument("--w-trajectory", type=float, default=1.0)
    parser.add_argument("--num-workers", type=int, default=10)

    args = parser.parse_args()

    # Load motions
    motion_files = args.motion_files if args.motion_files else []
    motion_files = (motion_files +
                    utils.files_in_dir(args.motion_folder, ext="bvh")
                    if args.motion_folder else motion_files)

    motions = bvh.load_parallel(
        motion_files,
        scale=args.scale,
        v_up_skel=utils.str_to_axis(args.v_up_skel),
        v_face_skel=utils.str_to_axis(args.v_face_skel),
        v_up_env=utils.str_to_axis(args.v_up_env),
    )

    skel = motions[0].skel
    motions_with_velocity = []
    for motion in motions:
        motion.set_skeleton(skel)
        motions_with_velocity.append(
            velocity.MotionWithVelocity.from_motion(motion))

    logging.info(f"Loaded {len(motions_with_velocity)} files")

    # Construct Motion Graph
    mg = graph.MotionGraph(