87 lines
2.8 KiB
Python
87 lines
2.8 KiB
Python
import bpy
|
|
import os
|
|
|
|
from bpy.types import PropertyGroup
|
|
from bpy.props import StringProperty
|
|
|
|
|
|
class RT_PG_render_toolbox_props(PropertyGroup):
|
|
default_base_path : StringProperty(
|
|
name="Base Path Template",
|
|
description="Template for file output base path\
|
|
\nFolder containing subsequent filepath",
|
|
default="//render/{node_name}/",
|
|
# options={'SKIP_SAVE'}
|
|
)
|
|
|
|
## Multilayer base path : output on file instead of folder
|
|
default_multilayer_base_path : StringProperty(
|
|
name="Base Path Template",
|
|
description="Template for multilayer file output base paths\
|
|
\nOutput of the file sequence",
|
|
default="//render/{node_name}/{node_name}_",
|
|
# options={'SKIP_SAVE'}
|
|
)
|
|
|
|
### file slots (not used currently)
|
|
|
|
default_file_slot : StringProperty(
|
|
name="File Slot Template",
|
|
description="Template for file output file slots\
|
|
\nSubpath added to base path for file sequence",
|
|
default="{socket_name}/{socket_name}_",
|
|
# options={'SKIP_SAVE'}
|
|
)
|
|
|
|
## Multilayer's layer: layer name in EXR instead of subpath to file
|
|
default_multilayer_name : StringProperty(
|
|
name="Layer Name Template",
|
|
description="Template for multilayer file output layer names\
|
|
\nLayer name in EXR multilayer file",
|
|
default="{socket_name}",
|
|
# options={'SKIP_SAVE'}
|
|
)
|
|
|
|
# default_tech_pass_name : StringProperty(
|
|
# name="Tech Pass Name Template",
|
|
# description="Template for tech pass file output layer names\
|
|
# \nLayer name in EXR multilayer file",
|
|
# default="tech",
|
|
# # options={'SKIP_SAVE'}
|
|
# )
|
|
|
|
# default_crypto_name : StringProperty(
|
|
# name="Crypto Pass Name Template",
|
|
# description="Template for crypto pass file output layer names\
|
|
# \nLayer name in EXR multilayer file",
|
|
# default="crypto",
|
|
# # options={'SKIP_SAVE'}
|
|
# )
|
|
|
|
def set_env_properties():
|
|
## set default template from environment variable if available
|
|
exr_base_path_template = os.getenv('RENDERTOOLBOX_EXR_PATH_TEMPLATE')
|
|
if exr_base_path_template:
|
|
bpy.context.scene.render_toolbox.default_base_path = exr_base_path_template
|
|
|
|
multilayer_base_path_template = os.getenv('RENDERTOOLBOX_MULTILAYER_PATH_TEMPLATE')
|
|
if multilayer_base_path_template:
|
|
bpy.context.scene.render_toolbox.default_multilayer_base_path = multilayer_base_path_template
|
|
|
|
classes = (
|
|
RT_PG_render_toolbox_props,
|
|
)
|
|
|
|
def register():
|
|
for cls in classes:
|
|
bpy.utils.register_class(cls)
|
|
|
|
bpy.types.Scene.render_toolbox = bpy.props.PointerProperty(type=RT_PG_render_toolbox_props)
|
|
set_env_properties()
|
|
|
|
def unregister():
|
|
del bpy.types.Scene.render_toolbox
|
|
|
|
for cls in reversed(classes):
|
|
bpy.utils.unregister_class(cls)
|