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()
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)
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(