Exemple #1
0
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')
Exemple #2
0
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')
Exemple #3
0
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')