effect.py - annna - Annna the nice friendly bot. | |
git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws6… | |
Log | |
Files | |
Refs | |
Tags | |
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 fi… | |
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) |