def main(argv=None): import argparse import logging log = logging.getLogger(__name__) parser = argparse.ArgumentParser() parser.add_argument('--no-world', action='store_true') parser.add_argument('--no-abc', action='store_true') parser.add_argument('-s', '--start', type=int) parser.add_argument('-e', '--end', type=int) parser.add_argument('-d', '--out-dir') publish_cli_utils.add_publisher_arguments(parser, short_flags=False, prefix=True) parser.add_argument('-l', '--list-sets', action='store_true') parser.add_argument('scene') parser.add_argument('cache_sets', nargs='*') args = parser.parse_args(argv) publisher_kwargs = publish_cli_utils.extract_publisher_kwargs(args) log.info('initializing Maya') import maya.standalone maya.standalone.initialize() log.info('loading file') cmds.file(args.scene, open=True) log.info('done loading file') cache_sets = set(cmds.ls(*(args.cache_sets or ['__cache__*']), sets=True, recursive=True, long=True) or ()) if args.list_sets: print '\n'.join(sorted(cache_sets)) return frame_from = args.start or cmds.playbackOptions(q=True, animationStartTime=True) frame_to = args.end or cmds.playbackOptions(q=True, animationEndTime=True) world = not args.no_world as_abc = not args.no_abc to_cache = [] for cache_set in cache_sets: members = cmds.sets(cache_set, q=True) name = cache_name_from_cache_set(cache_set) or 'cache' to_cache.append((members, name, frame_from, frame_to, world)) exporter = Exporter() name = os.path.splitext(os.path.basename(args.scene))[0] if 'link' in publisher_kwargs or 'template' in publisher_kwargs: if 'template' not in publisher_kwargs: publisher_kwargs['name'] = name exporter.publish(export_kwargs=dict(to_cache=to_cache, as_abc=as_abc), **publisher_kwargs) else: directory = args.out_dir or os.path.join(args.scene, '..', 'data', 'geo_cache', name) exporter.export(directory=directory, path=directory, to_cache=to_cache, as_abc=as_abc) log.info('DONE')
def main(argv=None): import argparse import logging log = logging.getLogger(__name__) parser = argparse.ArgumentParser() parser.add_argument('--world', action='store_true') parser.add_argument('--no-nuke', action='store_true') parser.add_argument('-s', '--start', type=int) parser.add_argument('-e', '--end', type=int) parser.add_argument('-d', '--out-dir') publish_cli_utils.add_publisher_arguments(parser, short_flags=False, prefix=True) parser.add_argument('-l', '--list-cameras', action='store_true') parser.add_argument('scene') parser.add_argument('camera', nargs='?') args = parser.parse_args(argv) publisher_kwargs = publish_cli_utils.extract_publisher_kwargs(args) log.info('initializing Maya') import maya.standalone maya.standalone.initialize() log.info('loading file') cmds.file(args.scene, open=True) log.info('done loading file') if args.camera: # This will grab shapes... cameras = cmds.ls(args.camera, type='camera', long=True) or () else: cameras = get_renderable_cameras() if args.list_cameras: print '\n'.join(cameras) return if args.camera: if not cameras: log.error('no cameras matching %s' % args.camera) exit(1) camera = cameras[0] if len(cameras) > 1: log.warning('more than one camera matching %s; taking %s' % (args.camera, camera)) else: if not cameras: log.error('no non-default renderable cameras') exit(1) camera = cameras[0] if len(cameras) > 1: log.warning('more than one non-default camera; taking %s' % camera) log.info('will export %s' % camera) exporter = CameraExporter() name = os.path.splitext(os.path.basename(args.scene))[0] if 'link' in publisher_kwargs or 'template' in publisher_kwargs: if 'template' not in publisher_kwargs: publisher_kwargs['name'] = name exporter.publish(export_kwargs=dict(camera=camera, bake_to_world_space=args.world), **publisher_kwargs) else: directory = args.out_dir or os.path.abspath( os.path.join(args.scene, '..', 'data', 'camera', name)) exporter.export(directory=directory, path=directory, camera=camera, bake_to_world_space=args.world) log.info('DONE')
def main(argv=None): import argparse import logging log = logging.getLogger(__name__) parser = argparse.ArgumentParser() parser.add_argument('--world', action='store_true') parser.add_argument('--no-nuke', action='store_true') parser.add_argument('-s', '--start', type=int) parser.add_argument('-e', '--end', type=int) parser.add_argument('-d', '--out-dir') publish_cli_utils.add_publisher_arguments(parser, short_flags=False, prefix=True) parser.add_argument('-l', '--list-cameras', action='store_true') parser.add_argument('scene') parser.add_argument('camera', nargs='?') args = parser.parse_args(argv) publisher_kwargs = publish_cli_utils.extract_publisher_kwargs(args) log.info('initializing Maya') import maya.standalone maya.standalone.initialize() log.info('loading file') cmds.file(args.scene, open=True) log.info('done loading file') if args.camera: # This will grab shapes... cameras = cmds.ls(args.camera, type='camera', long=True) or () else: cameras = get_renderable_cameras() if args.list_cameras: print '\n'.join(cameras) return if args.camera: if not cameras: log.error('no cameras matching %s' % args.camera) exit(1) camera = cameras[0] if len(cameras) > 1: log.warning('more than one camera matching %s; taking %s' % (args.camera, camera)) else: if not cameras: log.error('no non-default renderable cameras') exit(1) camera = cameras[0] if len(cameras) > 1: log.warning('more than one non-default camera; taking %s' % camera) log.info('will export %s' % camera) exporter = CameraExporter() name = os.path.splitext(os.path.basename(args.scene))[0] if 'link' in publisher_kwargs or 'template' in publisher_kwargs: if 'template' not in publisher_kwargs: publisher_kwargs['name'] = name exporter.publish(export_kwargs=dict(camera=camera, bake_to_world_space=args.world), **publisher_kwargs) else: directory = args.out_dir or os.path.abspath(os.path.join(args.scene, '..', 'data', 'camera', name)) exporter.export(directory=directory, path=directory, camera=camera, bake_to_world_space=args.world) log.info('DONE')