Outline size changes with distance. Add-ons are created.
We have created a behavior where you click a button and the line size changes and is rendered. However, I would like to implement a movement where the line size changes just by opening the scene in Blender and executing rendering, I am stalled because I don’t know how to do it.
bl_info = {
"name": "rend2",
"blender": (3, 6, 0),
"category": "Render",
}
import bpy
class LineSizeHandler(bpy.ops.render.render):
@staticmethod
def line_resize_handler(scene, depsgraph):
ds = scene.objects.get("cam_DS")
if ds:
ds = ds.location[1]
LFL = bpy.data.cameras["Camera"].lens
ex_size = ds / LFL * 10 * 2.85
bpy.data.node_groups["Pencil+ 4 Line Node Tree"].nodes["Brush Settings"].size = ex_size
print(ex_size)
def render_pre_handler(self, scene, depsgraph):
bpy.ops.render.render()
self.line_resize_handler(scene, depsgraph)
def register():
line_size_handler = LineSizeHandler()
bpy.app.handlers.render_pre.append(line_size_handler.render_pre_handler)
bpy.types.Scene.line_size_handler = line_size_handler
bpy.app.handlers.load_post.append(register_handler)
def unregister():
if bpy.app.handlers.render_pre:
bpy.app.handlers.render_pre.remove(bpy.types.Scene.line_size_handler.render_pre_handler)
del bpy.types.Scene.line_size_handler
def register_handler(dummy):
register()
if __name__ == "__main__":
register()