effect.py - annna - Annna the nice friendly bot. HTML git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/ DIR Log DIR Files DIR Refs DIR Tags DIR README --- effect.py (1456B) --- 1 # https://docs.blender.org/api/current/index.html 2 # 3 # This is to be be called from blender itself (--python), and does not 4 # need 'bpy' to be installed from pip. It will be executed after blender 5 # is initialised and before the rendering begins. 6 # 7 # The camera can be changed in the blender file before hand, with a nice 8 # default. The default camera will be used. The object original author 9 # did probably do it already. 10 11 import bpy 12 import os 13 14 def effect(fn): 15 """ 16 add the function to a list of effects for calling an 17 effect from ${EFFECT} environment variable 18 """ 19 effect_list[fn.__name__] = fn 20 def inner(kwargs): 21 print(f"running effect {fn.name}({value})") 22 return fn 23 return inner 24 25 effect_list = {} 26 obj = bpy.context.active_object 27 vars = {} 28 29 @effect 30 def translate(x=0, y=0, z=0): 31 """ 32 move an object on x, y, z axis 33 """ 34 bpy.ops.transform.translate(value=(x, y, z)) 35 36 @effect 37 def reshape(value=0): 38 """ 39 Shape keys permits to adjust proportions of an object, 40 the active shape key is going to be adjusted. 41 """ 42 if obj.active_shape_key.value == None: 43 raise Exception("there must be a shape key added in the blend file first, you can use the GUI") 44 obj.active_shape_key.value = value 45 46 # out of environment variables, call $EFFECT($var_...) 47 for k, v in os.environ.items(): 48 if k.startswith("var_"): 49 vars[k[4:]] = float(v) 50 effect_list[os.environ["EFFECT"]](**vars)