def publish_alembic(self, instance_obj): output_path = resolve.Resolver().filepath_from_id( self.shot_tape, "caches", instance_obj.instance, mapping.Datatypes.CACHE) version_number = resolve.Resolver().get_next_version_number( output_path) instance_geo = [ instance_obj.geo_node(long=True) or instance_obj.root_node(long=True) ] recorder = record.Recorder() with recorder.publish_record(filepath, version_number): exporter = main_export.Exporter(instance_geo, frame_range=self.scene_frame_range) om.MGlobal.displayInfo("Recording {}...".format( instance_obj.instance)) exporter.export( alembic_engine.AbcEngine(), filepath, exports=instance_geo, frame_range=self.scene_frame_range, ) recorder.status = record.Status.PUBLISHED
def publish_workfile(self): maya_file = cmds.file(q=True, sn=True) # TODO: move this to core as "archive_workfile" output_path = resolve.Resolver().filepath_from_asset( self.asset_tape, "rigging", "workfile") filepath = os.path.join(output_path, os.path.basename(maya_file)) version_number = resolve.Resolver().get_next_version_number(filepath) recorder = record.Recorder() om.MGlobal.displayInfo("Archiving workfile {}...".format(maya_file)) with recorder.publish_record(filepath, version_number): shutil.copyfile(maya_file, filepath) recorder.status = record.Status.PUBLISHED
def publish_rig(self): maya_file = cmds.file(q=True, sn=True) # Ignore incremental versions extension = os.path.splitext(maya_file)[1] # TODO: move this to core as "archive_workfile" output_path = resolve.Resolver().filepath_from_asset( self.asset_tape, "rigging", "rig") basename = "{}{}".format(self.asset_tape.name, extension) filepath = os.path.join(output_path, basename) version_number = resolve.Resolver().get_next_version_number(filepath) self.tag_rig(self.asset_tape.name, version_number) recorder = record.Recorder() om.MGlobal.displayInfo("Publishing rig {}...".format(maya_file)) with recorder.publish_record(filepath, version_number): shutil.copyfile(maya_file, filepath) recorder.status = record.Status.PUBLISHED
def publishUsdComposition(tapeEntity, workfileName, recorder=None): resolver = resolve.Resolver() songPath = resolver.filepath_from_asset(tapeEntity, tapeEntity.task, "usdComposition", workfileName, "usd" ) versionNumber = resolver.get_next_version_number(songPath) recorder = recorder or record.Recorder() with recorder.publish_record(songPath, versionNumber): writeUsdComposition(songPath) recorder.status = record.Status.PUBLISHED
def publish_workfile(self, mayaFile=None): maya_file = mayaFile or cmds.file(q=True, sn=True) workfile_path = resolve.Resolver().get_workfile_archive_path(maya_file) recorder.archive_workfile(workfile_path, maya_file)