diff --git a/oscurart_tools/render/render_tokens.py b/oscurart_tools/render/render_tokens.py index 2ac8404eefe2082f60ce5d8284b186b9854eda93..12c27b154d4feb4f111f30f5ea6f8350b01517fc 100644 --- a/oscurart_tools/render/render_tokens.py +++ b/oscurart_tools/render/render_tokens.py @@ -25,6 +25,7 @@ from bpy.app.handlers import persistent @persistent def replaceTokens (dummy): global renpath + global nodeDict tokens = { "$Scene":bpy.context.scene.name, "$File":os.path.basename(bpy.data.filepath).split(".")[0], @@ -32,6 +33,15 @@ def replaceTokens (dummy): "$Camera":bpy.context.scene.camera.name} renpath = bpy.context.scene.render.filepath + + nodeDict = [] + #compositor nodes + for node in bpy.context.scene.node_tree.nodes: + if node.type == "OUTPUT_FILE": + nodeDict.append([node,node.base_path]) + node.base_path = node.base_path.replace("$Scene",tokens["$Scene"]).replace("$File",tokens["$File"]).replace("$ViewLayer",tokens["$ViewLayer"]).replace("$Camera",tokens["$Camera"]) + + bpy.context.scene.render.filepath = renpath.replace("$Scene",tokens["$Scene"]).replace("$File",tokens["$File"]).replace("$ViewLayer",tokens["$ViewLayer"]).replace("$Camera",tokens["$Camera"]) print(bpy.context.scene.render.filepath) @@ -41,6 +51,10 @@ def replaceTokens (dummy): def restoreTokens (dummy): global renpath bpy.context.scene.render.filepath = renpath + + #restore nodes + for node in nodeDict: + node[0].base_path = node[1] # //RENDER/$Scene/$File/$ViewLayer/$Camera