990 lines
36 KiB
JSON
990 lines
36 KiB
JSON
{
|
|
"flamenco_version": {
|
|
"version": "3.8.2",
|
|
"shortversion": "3.8.2",
|
|
"name": "Flamenco",
|
|
"git": "51a41a19"
|
|
},
|
|
"shared_storage": {
|
|
"location": "R:\\mnt\\user\\Cerberus Max\\Flamenco",
|
|
"audience": "users",
|
|
"platform": "windows",
|
|
"shaman_enabled": false
|
|
},
|
|
"job_types": {
|
|
"job_types": [
|
|
{
|
|
"name": "BasedPlayblast",
|
|
"label": "BasedPlayblast",
|
|
"settings": [
|
|
{
|
|
"key": "frames",
|
|
"type": "string",
|
|
"description": "Frame range to playblast. Examples: '47', '1-30', '3, 5-10, 47-327'",
|
|
"eval": "f'{C.scene.frame_start}-{C.scene.frame_end}'",
|
|
"eval_info": {
|
|
"show_link_button": true,
|
|
"description": "Scene frame range"
|
|
},
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "chunk_size",
|
|
"type": "int32",
|
|
"default": 5.0,
|
|
"description": "Number of frames to playblast in one Blender task",
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "playblast_output_root",
|
|
"type": "string",
|
|
"default": "//",
|
|
"description": "Base directory of where playblast output is stored. Will have some job-specific parts appended to it",
|
|
"required": true,
|
|
"subtype": "dir_path",
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "add_path_components",
|
|
"type": "int32",
|
|
"default": 0.0,
|
|
"description": "Number of path components of the current blend file to use in the playblast output path",
|
|
"propargs": {
|
|
"max": 32.0,
|
|
"min": 0.0
|
|
},
|
|
"required": true,
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "playblast_output_path",
|
|
"type": "string",
|
|
"description": "Final file path of where playblast output will be saved",
|
|
"editable": false,
|
|
"eval": "str(Path(abspath(settings.playblast_output_root), last_n_dir_parts(settings.add_path_components), 'blast', jobname, jobname + '_######'))",
|
|
"subtype": "file_path"
|
|
},
|
|
{
|
|
"key": "resolution_percentage",
|
|
"type": "int32",
|
|
"default": 100.0,
|
|
"description": "Percentage of the render resolution to use for playblast",
|
|
"propargs": {
|
|
"max": 100.0,
|
|
"min": 1.0
|
|
},
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "png_compression",
|
|
"type": "int32",
|
|
"default": 15.0,
|
|
"description": "PNG compression level (0-100, higher = smaller file)",
|
|
"propargs": {
|
|
"max": 100.0,
|
|
"min": 0.0
|
|
},
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "keep_frames",
|
|
"type": "bool",
|
|
"default": false,
|
|
"description": "Keep the individual playblast frames after video creation",
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "blendfile",
|
|
"type": "string",
|
|
"description": "Path of the Blend file to playblast",
|
|
"required": true,
|
|
"visible": "web"
|
|
},
|
|
{
|
|
"key": "fps",
|
|
"type": "float",
|
|
"eval": "C.scene.render.fps / C.scene.render.fps_base",
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "format",
|
|
"type": "string",
|
|
"default": "PNG",
|
|
"description": "Image format for playblast frames",
|
|
"required": true,
|
|
"visible": "web"
|
|
},
|
|
{
|
|
"key": "image_file_extension",
|
|
"type": "string",
|
|
"default": ".png",
|
|
"description": "File extension used when creating playblast images",
|
|
"required": true,
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "scene",
|
|
"type": "string",
|
|
"description": "Name of the scene to playblast.",
|
|
"eval": "C.scene.name",
|
|
"required": true,
|
|
"visible": "web"
|
|
}
|
|
],
|
|
"etag": "0cf19bc1871973734e485ebd4477e7688997cc3d",
|
|
"description": "Create a viewport preview/playblast and generate a video file"
|
|
},
|
|
{
|
|
"name": "BasedPlayblast-Optix-GPU",
|
|
"label": "BasedPlayblast OPTIX GPU",
|
|
"settings": [
|
|
{
|
|
"key": "frames",
|
|
"type": "string",
|
|
"description": "Frame range to playblast. Examples: '47', '1-30', '3, 5-10, 47-327'",
|
|
"eval": "f'{C.scene.frame_start}-{C.scene.frame_end}'",
|
|
"eval_info": {
|
|
"show_link_button": true,
|
|
"description": "Scene frame range"
|
|
},
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "chunk_size",
|
|
"type": "int32",
|
|
"default": 5.0,
|
|
"description": "Number of frames to playblast in one Blender task",
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "playblast_output_root",
|
|
"type": "string",
|
|
"default": "//",
|
|
"description": "Base directory of where playblast output is stored. Will have some job-specific parts appended to it",
|
|
"required": true,
|
|
"subtype": "dir_path",
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "add_path_components",
|
|
"type": "int32",
|
|
"default": 0.0,
|
|
"description": "Number of path components of the current blend file to use in the playblast output path",
|
|
"propargs": {
|
|
"max": 32.0,
|
|
"min": 0.0
|
|
},
|
|
"required": true,
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "playblast_output_path",
|
|
"type": "string",
|
|
"description": "Final file path of where playblast output will be saved",
|
|
"editable": false,
|
|
"eval": "str(Path(abspath(settings.playblast_output_root), last_n_dir_parts(settings.add_path_components), 'blast', jobname, jobname + '_######'))",
|
|
"subtype": "file_path"
|
|
},
|
|
{
|
|
"key": "resolution_percentage",
|
|
"type": "int32",
|
|
"default": 100.0,
|
|
"description": "Percentage of the render resolution to use for playblast",
|
|
"propargs": {
|
|
"max": 100.0,
|
|
"min": 1.0
|
|
},
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "png_compression",
|
|
"type": "int32",
|
|
"default": 15.0,
|
|
"description": "PNG compression level (0-100, higher = smaller file)",
|
|
"propargs": {
|
|
"max": 100.0,
|
|
"min": 0.0
|
|
},
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "keep_frames",
|
|
"type": "bool",
|
|
"default": false,
|
|
"description": "Keep the individual playblast frames after video creation",
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "experimental_gp3",
|
|
"type": "bool",
|
|
"description": "Experimental Flag: Grease Pencil 3",
|
|
"label": "Experimental: GPv3",
|
|
"required": false
|
|
},
|
|
{
|
|
"key": "experimental_new_anim",
|
|
"type": "bool",
|
|
"description": "Experimental Flag: New Animation Data-block",
|
|
"label": "Experimental: Baklava",
|
|
"required": false
|
|
},
|
|
{
|
|
"key": "blender_args_before",
|
|
"type": "string",
|
|
"description": "CLI arguments for Blender, placed before the .blend filename",
|
|
"label": "Blender CLI args: Before",
|
|
"required": false
|
|
},
|
|
{
|
|
"key": "blender_args_after",
|
|
"type": "string",
|
|
"description": "CLI arguments for Blender, placed after the .blend filename",
|
|
"label": "After",
|
|
"required": false
|
|
},
|
|
{
|
|
"key": "blendfile",
|
|
"type": "string",
|
|
"description": "Path of the Blend file to playblast",
|
|
"required": true,
|
|
"visible": "web"
|
|
},
|
|
{
|
|
"key": "fps",
|
|
"type": "float",
|
|
"eval": "C.scene.render.fps / C.scene.render.fps_base",
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "format",
|
|
"type": "string",
|
|
"default": "PNG",
|
|
"description": "Image format for playblast frames",
|
|
"required": true,
|
|
"visible": "web"
|
|
},
|
|
{
|
|
"key": "image_file_extension",
|
|
"type": "string",
|
|
"default": ".png",
|
|
"description": "File extension used when creating playblast images",
|
|
"required": true,
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "scene",
|
|
"type": "string",
|
|
"description": "Name of the scene to playblast.",
|
|
"eval": "C.scene.name",
|
|
"required": true,
|
|
"visible": "web"
|
|
}
|
|
],
|
|
"etag": "fe38e5ae9b3e640119d0d55fc7cbf4f8f15f2982",
|
|
"description": "Create a viewport preview/playblast using Cycles OPTIX GPU rendering and generate a video file"
|
|
},
|
|
{
|
|
"name": "HoloMARI",
|
|
"label": "HoloMARI (MARI render_one)",
|
|
"settings": [
|
|
{
|
|
"key": "mari_jobs_json",
|
|
"type": "string",
|
|
"description": "JSON object with a \"jobs\" array: {\"jobs\":[{\"cam_name\":...,\"H\":...,\"V\":...}, ...]}. Optional \"frame\" per job for ANIM.",
|
|
"eval": "__import__('json').dumps({'jobs':[{'cam_name':o.name,'H':int(o['H']),'V':int(o['V'])} for o in C.scene.objects if getattr(o,'type',None)=='CAMERA' and o.name.startswith('MARI_CAMERA') and 'H' in o.keys() and 'V' in o.keys()]})",
|
|
"eval_info": {
|
|
"show_link_button": true,
|
|
"description": "Auto-collect MARI cameras (name MARI_CAMERA*, custom props H,V). Matches MARI Advanced / HoloMARI job JSON."
|
|
},
|
|
"required": true,
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "mari_action",
|
|
"type": "string",
|
|
"choices": [
|
|
"STILL",
|
|
"ANIM"
|
|
],
|
|
"default": "STILL",
|
|
"description": "MARI action passed to render_one / export_mari: STILL or ANIM",
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "mari_mode",
|
|
"type": "string",
|
|
"choices": [
|
|
"CIRCLE",
|
|
"FRAME"
|
|
],
|
|
"default": "CIRCLE",
|
|
"description": "MARI layout mode for export_mari type=FRAME|CIRCLE",
|
|
"eval": "(lambda m: 'FRAME' if str(m) == 'FRAME' else 'CIRCLE')(str(getattr(getattr(C.scene, 'mari_props', None), 'frame', 'CIRCLE') or 'CIRCLE'))",
|
|
"eval_info": {
|
|
"show_link_button": true,
|
|
"description": "FRAME vs CIRCLE from scene mari_props.frame"
|
|
},
|
|
"required": true,
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "chunk_size",
|
|
"type": "int32",
|
|
"default": 1.0,
|
|
"description": "Number of MARI render_one units (cameras/frames) per Blender task",
|
|
"propargs": {
|
|
"max": 4096.0,
|
|
"min": 1.0
|
|
},
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "frames",
|
|
"type": "string",
|
|
"description": "Frame range for ANIM expansion. Examples: '47', '1-30'",
|
|
"eval": "f'{C.scene.frame_start}-{C.scene.frame_end}'",
|
|
"eval_info": {
|
|
"show_link_button": true,
|
|
"description": "Scene frame range (used when expanding ANIM image sequences)"
|
|
},
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "frame_start",
|
|
"type": "int32",
|
|
"eval": "C.scene.frame_start",
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "frame_end",
|
|
"type": "int32",
|
|
"eval": "C.scene.frame_end",
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "frame_step",
|
|
"type": "int32",
|
|
"eval": "max(1, C.scene.frame_step)",
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "render_output_root",
|
|
"type": "string",
|
|
"description": "Root folder for MARI output; images go under <root>/<mari_props.render_settings_name> (name comes from the scene, not this field).",
|
|
"required": true,
|
|
"subtype": "dir_path",
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "add_path_components",
|
|
"type": "int32",
|
|
"default": 0.0,
|
|
"description": "Number of path components of the current blend file to append under the render root",
|
|
"propargs": {
|
|
"max": 32.0,
|
|
"min": 0.0
|
|
},
|
|
"required": true,
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "render_output_path",
|
|
"type": "string",
|
|
"description": "Job artifact path (mari_job.txt). MARI JPEG/output folder = render_output_root + MARI folder name.",
|
|
"editable": false,
|
|
"eval": "str(Path(abspath(settings.render_output_root), last_n_dir_parts(settings.add_path_components), jobname, '{timestamp}', 'mari_job.txt'))",
|
|
"subtype": "file_path"
|
|
},
|
|
{
|
|
"key": "mari_output_dir_abs",
|
|
"type": "string",
|
|
"description": "Absolute MARI output folder (render root + scene folder name); used by the zip step.",
|
|
"editable": false,
|
|
"eval": "str(Path(abspath(settings.render_output_root)) / str(getattr(getattr(C.scene, 'mari_props', None), 'render_settings_name', '') or '').strip())",
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "mari_output_zip_abs",
|
|
"type": "string",
|
|
"description": "Absolute path for the final .zip next to the output folder.",
|
|
"editable": false,
|
|
"eval": "str(Path(abspath(settings.render_output_root)) / (str(getattr(getattr(C.scene, 'mari_props', None), 'render_settings_name', '') or '').strip() + '.zip'))",
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "zip_render_output",
|
|
"type": "bool",
|
|
"default": true,
|
|
"description": "After all MARI chunk tasks finish, create a .zip of the output folder (requires a worker that runs misc tasks; uses tar).",
|
|
"required": false,
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "use_cycles_optix",
|
|
"type": "bool",
|
|
"default": false,
|
|
"description": "When enabled, sets Cycles preferences to OPTIX and scene Cycles device to GPU (same idea as cycles_optix_gpu.js).",
|
|
"label": "Cycles: OPTIX + GPU device",
|
|
"required": false,
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "experimental_gp3",
|
|
"type": "bool",
|
|
"description": "Experimental Flag: Grease Pencil 3",
|
|
"label": "Experimental: GPv3",
|
|
"required": false
|
|
},
|
|
{
|
|
"key": "experimental_new_anim",
|
|
"type": "bool",
|
|
"description": "Experimental Flag: New Animation Data-block",
|
|
"label": "Experimental: Baklava",
|
|
"required": false
|
|
},
|
|
{
|
|
"key": "blender_args_before",
|
|
"type": "string",
|
|
"description": "CLI arguments for Blender, placed before the .blend filename",
|
|
"label": "Blender CLI args: Before",
|
|
"required": false
|
|
},
|
|
{
|
|
"key": "blender_args_after",
|
|
"type": "string",
|
|
"description": "CLI arguments for Blender, placed after the .blend filename",
|
|
"label": "After",
|
|
"required": false
|
|
},
|
|
{
|
|
"key": "blendfile",
|
|
"type": "string",
|
|
"description": "Path of the Blend file",
|
|
"required": true,
|
|
"visible": "web"
|
|
},
|
|
{
|
|
"key": "format",
|
|
"type": "string",
|
|
"eval": "C.scene.render.image_settings.file_format",
|
|
"required": true,
|
|
"visible": "web"
|
|
}
|
|
],
|
|
"etag": "d19240e637ce81fab40f8e4218ce0249db67d95e",
|
|
"description": "MARI Advanced render_one batches (export .mari3d prep + per-camera jobs). Optional Cycles OPTIX+GPU setup (off by default)."
|
|
},
|
|
{
|
|
"name": "TalkingHeads Custom Render",
|
|
"label": "TalkingHeads Custom Render",
|
|
"settings": [
|
|
{
|
|
"key": "frames",
|
|
"type": "string",
|
|
"description": "Frame range to render. Examples: '47', '1-30', '3, 5-10, 47-327'",
|
|
"eval": "f'{C.scene.frame_start}-{C.scene.frame_end}'",
|
|
"eval_info": {
|
|
"show_link_button": true,
|
|
"description": "Scene frame range"
|
|
},
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "chunk_size",
|
|
"type": "int32",
|
|
"default": 1.0,
|
|
"description": "Number of frames to render in one Blender render task",
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "blendfile",
|
|
"type": "string",
|
|
"description": "Path of the Blend file to render",
|
|
"eval": "bpy.data.filepath",
|
|
"required": true,
|
|
"visible": "web"
|
|
},
|
|
{
|
|
"key": "render_output_root",
|
|
"type": "string",
|
|
"description": "Base path where renders are stored, typically the project's Renders folder. If empty, derived automatically.",
|
|
"eval": "__import__('os').path.normpath(__import__('os').path.join(((__import__('re').search(r'^(.*?)[\\/][Bb]lends[\\/]', bpy.data.filepath.replace('\\\\','/')) and __import__('re').search(r'^(.*?)[\\/][Bb]lends[\\/]', bpy.data.filepath.replace('\\\\','/')).group(1)) or __import__('os').path.dirname(bpy.data.filepath)), 'Renders'))",
|
|
"eval_info": {
|
|
"show_link_button": true,
|
|
"description": "Auto-detect the project's Renders folder"
|
|
},
|
|
"required": false,
|
|
"subtype": "dir_path",
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "daily_path",
|
|
"type": "string",
|
|
"description": "Daily folder name under the render root, e.g. 'daily_250813'. If empty, auto-fills to today's date.",
|
|
"eval": "__import__('datetime').datetime.now().strftime('daily_%y%m%d')",
|
|
"eval_info": {
|
|
"show_link_button": true,
|
|
"description": "Auto-fill with today's daily folder name"
|
|
},
|
|
"required": false,
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "use_submodule",
|
|
"type": "bool",
|
|
"default": false,
|
|
"description": "Include a submodule folder under Renders. Turn off to omit submodule entirely.",
|
|
"label": "Use Submodule",
|
|
"required": false,
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "submodule",
|
|
"type": "string",
|
|
"description": "Optional submodule under Renders (e.g. 'Waterspider B'). If empty, omitted.",
|
|
"eval": "(__import__('os').path.basename(__import__('os').path.dirname(bpy.data.filepath)) if settings.use_submodule else '')",
|
|
"eval_info": {
|
|
"show_link_button": true,
|
|
"description": "Auto-fill with the current .blend file's parent folder"
|
|
},
|
|
"required": false,
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "render_output_path",
|
|
"type": "string",
|
|
"description": "Final file path of where render output will be saved",
|
|
"editable": false,
|
|
"eval": "str(Path(abspath(settings.render_output_root or '//'), ((str(settings.submodule or '').strip()) if (settings.use_submodule and str(settings.submodule or '').strip()) else ((__import__('os').path.basename(__import__('os').path.dirname(bpy.data.filepath))) if settings.use_submodule else '')), (settings.daily_path or __import__('datetime').datetime.now().strftime('daily_%y%m%d')), jobname, jobname + '_######'))",
|
|
"subtype": "file_path"
|
|
},
|
|
{
|
|
"key": "fps",
|
|
"type": "float",
|
|
"eval": "C.scene.render.fps / C.scene.render.fps_base",
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "format",
|
|
"type": "string",
|
|
"eval": "C.scene.render.image_settings.file_format",
|
|
"required": true,
|
|
"visible": "web"
|
|
},
|
|
{
|
|
"key": "image_file_extension",
|
|
"type": "string",
|
|
"description": "File extension used when rendering images",
|
|
"eval": "C.scene.render.file_extension",
|
|
"required": true,
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "has_previews",
|
|
"type": "bool",
|
|
"description": "Whether Blender will render preview images.",
|
|
"eval": "C.scene.render.image_settings.use_preview",
|
|
"required": false,
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "scene",
|
|
"type": "string",
|
|
"description": "Name of the scene to render.",
|
|
"eval": "C.scene.name",
|
|
"required": true,
|
|
"visible": "web"
|
|
}
|
|
],
|
|
"etag": "7773b03fd0d493d6d823d7d45bb3ef7f987384f3",
|
|
"description": "Render a sequence of frames, and create a preview video file"
|
|
},
|
|
{
|
|
"name": "TalkingHeads cycles-optix-gpu",
|
|
"label": "TalkingHeads Cycles OPTIX GPU",
|
|
"settings": [
|
|
{
|
|
"key": "frames",
|
|
"type": "string",
|
|
"description": "Frame range to render. Examples: '47', '1-30', '3, 5-10, 47-327'",
|
|
"eval": "f'{C.scene.frame_start}-{C.scene.frame_end}'",
|
|
"eval_info": {
|
|
"show_link_button": true,
|
|
"description": "Scene frame range"
|
|
},
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "chunk_size",
|
|
"type": "int32",
|
|
"default": 1.0,
|
|
"description": "Number of frames to render in one Blender render task",
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "render_output_root",
|
|
"type": "string",
|
|
"description": "Base path where renders are stored, typically the project's Renders folder. If empty, derived automatically.",
|
|
"eval": "__import__('os').path.normpath(__import__('os').path.join(((__import__('re').search(r'^(.*?)[\\/][Bb]lends[\\/]', bpy.data.filepath.replace('\\\\','/')) and __import__('re').search(r'^(.*?)[\\/][Bb]lends[\\/]', bpy.data.filepath.replace('\\\\','/')).group(1)) or __import__('os').path.dirname(bpy.data.filepath)), 'Renders'))",
|
|
"eval_info": {
|
|
"show_link_button": true,
|
|
"description": "Auto-detect the project's Renders folder"
|
|
},
|
|
"required": false,
|
|
"subtype": "dir_path",
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "daily_path",
|
|
"type": "string",
|
|
"description": "Daily folder name under the render root, e.g. 'daily_250813'. If empty, auto-fills to today's date.",
|
|
"eval": "__import__('datetime').datetime.now().strftime('daily_%y%m%d')",
|
|
"eval_info": {
|
|
"show_link_button": true,
|
|
"description": "Auto-fill with today's daily folder name"
|
|
},
|
|
"required": false,
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "use_submodule",
|
|
"type": "bool",
|
|
"default": false,
|
|
"description": "Include a submodule folder under Renders. Turn off to omit submodule entirely.",
|
|
"label": "Use Submodule",
|
|
"required": false,
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "submodule",
|
|
"type": "string",
|
|
"description": "Optional submodule under Renders (e.g. 'Waterspider B'). If empty, omitted.",
|
|
"eval": "(__import__('os').path.basename(__import__('os').path.dirname(bpy.data.filepath)) if settings.use_submodule else '')",
|
|
"eval_info": {
|
|
"show_link_button": true,
|
|
"description": "Auto-fill with the current .blend file's parent folder"
|
|
},
|
|
"required": false,
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "render_output_path",
|
|
"type": "string",
|
|
"description": "Final file path of where render output will be saved",
|
|
"editable": false,
|
|
"eval": "str(Path(abspath(settings.render_output_root or '//'), ((str(settings.submodule or '').strip()) if (settings.use_submodule and str(settings.submodule or '').strip()) else ((__import__('os').path.basename(__import__('os').path.dirname(bpy.data.filepath))) if settings.use_submodule else '')), (settings.daily_path or __import__('datetime').datetime.now().strftime('daily_%y%m%d')), jobname, jobname + '_######'))",
|
|
"subtype": "file_path"
|
|
},
|
|
{
|
|
"key": "experimental_gp3",
|
|
"type": "bool",
|
|
"description": "Experimental Flag: Grease Pencil 3",
|
|
"label": "Experimental: GPv3",
|
|
"required": false
|
|
},
|
|
{
|
|
"key": "experimental_new_anim",
|
|
"type": "bool",
|
|
"description": "Experimental Flag: New Animation Data-block",
|
|
"label": "Experimental: Baklava",
|
|
"required": false
|
|
},
|
|
{
|
|
"key": "blender_args_before",
|
|
"type": "string",
|
|
"description": "CLI arguments for Blender, placed before the .blend filename",
|
|
"label": "Blender CLI args: Before",
|
|
"required": false
|
|
},
|
|
{
|
|
"key": "blender_args_after",
|
|
"type": "string",
|
|
"description": "CLI arguments for Blender, placed after the .blend filename",
|
|
"label": "After",
|
|
"required": false
|
|
},
|
|
{
|
|
"key": "blendfile",
|
|
"type": "string",
|
|
"description": "Path of the Blend file to render",
|
|
"eval": "bpy.data.filepath",
|
|
"required": true,
|
|
"visible": "web"
|
|
},
|
|
{
|
|
"key": "fps",
|
|
"type": "float",
|
|
"eval": "C.scene.render.fps / C.scene.render.fps_base",
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "format",
|
|
"type": "string",
|
|
"eval": "C.scene.render.image_settings.file_format",
|
|
"required": true,
|
|
"visible": "web"
|
|
},
|
|
{
|
|
"key": "image_file_extension",
|
|
"type": "string",
|
|
"description": "File extension used when rendering images",
|
|
"eval": "C.scene.render.file_extension",
|
|
"required": true,
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "has_previews",
|
|
"type": "bool",
|
|
"description": "Whether Blender will render preview images.",
|
|
"eval": "C.scene.render.image_settings.use_preview",
|
|
"required": false,
|
|
"visible": "hidden"
|
|
}
|
|
],
|
|
"etag": "5e49db0874b8ee1211f6dbc0a59d66137b6996b2",
|
|
"description": "OPTIX GPU rendering + extra checkboxes for some experimental features + extra CLI args for Blender"
|
|
},
|
|
{
|
|
"name": "cycles-optix-gpu",
|
|
"label": "Cycles OPTIX GPU",
|
|
"settings": [
|
|
{
|
|
"key": "frames",
|
|
"type": "string",
|
|
"description": "Frame range to render. Examples: '47', '1-30', '3, 5-10, 47-327'",
|
|
"eval": "f'{C.scene.frame_start}-{C.scene.frame_end}'",
|
|
"eval_info": {
|
|
"show_link_button": true,
|
|
"description": "Scene frame range"
|
|
},
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "chunk_size",
|
|
"type": "int32",
|
|
"default": 1.0,
|
|
"description": "Number of frames to render in one Blender render task",
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "render_output_root",
|
|
"type": "string",
|
|
"description": "Base directory of where render output is stored. Will have some job-specific parts appended to it",
|
|
"required": true,
|
|
"subtype": "dir_path",
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "add_path_components",
|
|
"type": "int32",
|
|
"default": 0.0,
|
|
"description": "Number of path components of the current blend file to use in the render output path",
|
|
"propargs": {
|
|
"max": 32.0,
|
|
"min": 0.0
|
|
},
|
|
"required": true,
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "render_output_path",
|
|
"type": "string",
|
|
"description": "Final file path of where render output will be saved",
|
|
"editable": false,
|
|
"eval": "str(Path(abspath(settings.render_output_root), last_n_dir_parts(settings.add_path_components), jobname, '{timestamp}', '######'))",
|
|
"subtype": "file_path"
|
|
},
|
|
{
|
|
"key": "experimental_gp3",
|
|
"type": "bool",
|
|
"description": "Experimental Flag: Grease Pencil 3",
|
|
"label": "Experimental: GPv3",
|
|
"required": false
|
|
},
|
|
{
|
|
"key": "experimental_new_anim",
|
|
"type": "bool",
|
|
"description": "Experimental Flag: New Animation Data-block",
|
|
"label": "Experimental: Baklava",
|
|
"required": false
|
|
},
|
|
{
|
|
"key": "blender_args_before",
|
|
"type": "string",
|
|
"description": "CLI arguments for Blender, placed before the .blend filename",
|
|
"label": "Blender CLI args: Before",
|
|
"required": false
|
|
},
|
|
{
|
|
"key": "blender_args_after",
|
|
"type": "string",
|
|
"description": "CLI arguments for Blender, placed after the .blend filename",
|
|
"label": "After",
|
|
"required": false
|
|
},
|
|
{
|
|
"key": "blendfile",
|
|
"type": "string",
|
|
"description": "Path of the Blend file to render",
|
|
"required": true,
|
|
"visible": "web"
|
|
},
|
|
{
|
|
"key": "fps",
|
|
"type": "float",
|
|
"eval": "C.scene.render.fps / C.scene.render.fps_base",
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "format",
|
|
"type": "string",
|
|
"eval": "C.scene.render.image_settings.file_format",
|
|
"required": true,
|
|
"visible": "web"
|
|
},
|
|
{
|
|
"key": "image_file_extension",
|
|
"type": "string",
|
|
"description": "File extension used when rendering images",
|
|
"eval": "C.scene.render.file_extension",
|
|
"required": true,
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "has_previews",
|
|
"type": "bool",
|
|
"description": "Whether Blender will render preview images.",
|
|
"eval": "C.scene.render.image_settings.use_preview",
|
|
"required": false,
|
|
"visible": "hidden"
|
|
}
|
|
],
|
|
"etag": "ebed5e28846668474299cd2a8b55fb47b69b54d7",
|
|
"description": "OPTIX GPU rendering + extra checkboxes for some experimental features + extra CLI args for Blender"
|
|
},
|
|
{
|
|
"name": "echo-sleep-test",
|
|
"label": "Echo Sleep Test",
|
|
"settings": [
|
|
{
|
|
"key": "message",
|
|
"type": "string",
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "sleep_duration_seconds",
|
|
"type": "int32",
|
|
"default": 1.0
|
|
},
|
|
{
|
|
"key": "sleep_repeats",
|
|
"type": "int32",
|
|
"default": 1.0
|
|
}
|
|
],
|
|
"etag": "eba586e16d6b55baaa43e32f9e78ae514b457fee"
|
|
},
|
|
{
|
|
"name": "simple-blender-render",
|
|
"label": "Simple Blender Render",
|
|
"settings": [
|
|
{
|
|
"key": "frames",
|
|
"type": "string",
|
|
"description": "Frame range to render. Examples: '47', '1-30', '3, 5-10, 47-327'",
|
|
"eval": "f'{C.scene.frame_start}-{C.scene.frame_end}'",
|
|
"eval_info": {
|
|
"show_link_button": true,
|
|
"description": "Scene frame range"
|
|
},
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "chunk_size",
|
|
"type": "int32",
|
|
"default": 1.0,
|
|
"description": "Number of frames to render in one Blender render task",
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "render_output_root",
|
|
"type": "string",
|
|
"description": "Base directory of where render output is stored. Will have some job-specific parts appended to it",
|
|
"required": true,
|
|
"subtype": "dir_path",
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "add_path_components",
|
|
"type": "int32",
|
|
"default": 0.0,
|
|
"description": "Number of path components of the current blend file to use in the render output path",
|
|
"propargs": {
|
|
"max": 32.0,
|
|
"min": 0.0
|
|
},
|
|
"required": true,
|
|
"visible": "submission"
|
|
},
|
|
{
|
|
"key": "render_output_path",
|
|
"type": "string",
|
|
"description": "Final file path of where render output will be saved",
|
|
"editable": false,
|
|
"eval": "str(Path(abspath(settings.render_output_root), last_n_dir_parts(settings.add_path_components), jobname, '{timestamp}', '######'))",
|
|
"subtype": "file_path"
|
|
},
|
|
{
|
|
"key": "blendfile",
|
|
"type": "string",
|
|
"description": "Path of the Blend file to render",
|
|
"required": true,
|
|
"visible": "web"
|
|
},
|
|
{
|
|
"key": "fps",
|
|
"type": "float",
|
|
"eval": "C.scene.render.fps / C.scene.render.fps_base",
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "format",
|
|
"type": "string",
|
|
"eval": "C.scene.render.image_settings.file_format",
|
|
"required": true,
|
|
"visible": "web"
|
|
},
|
|
{
|
|
"key": "image_file_extension",
|
|
"type": "string",
|
|
"description": "File extension used when rendering images",
|
|
"eval": "C.scene.render.file_extension",
|
|
"required": true,
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "has_previews",
|
|
"type": "bool",
|
|
"description": "Whether Blender will render preview images.",
|
|
"eval": "C.scene.render.image_settings.use_preview",
|
|
"required": false,
|
|
"visible": "hidden"
|
|
},
|
|
{
|
|
"key": "scene",
|
|
"type": "string",
|
|
"description": "Name of the scene to render.",
|
|
"eval": "C.scene.name",
|
|
"required": true,
|
|
"visible": "web"
|
|
}
|
|
],
|
|
"etag": "6f6b4fce9301252a6ab4a9a213a2f0ad447eccd5",
|
|
"description": "Render a sequence of frames, and create a preview video file"
|
|
}
|
|
]
|
|
},
|
|
"worker_tags": {
|
|
"tags": []
|
|
}
|
|
} |