[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3647] contrib/py/scripts/addons/ oscurart_tools.py: rewrite shapes layout tool
Eugenio Pignataro
info at oscurart.com.ar
Tue Jul 24 04:40:25 CEST 2012
Revision: 3647
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3647
Author: oscurart
Date: 2012-07-24 02:40:20 +0000 (Tue, 24 Jul 2012)
Log Message:
-----------
rewrite shapes layout tool
Modified Paths:
--------------
contrib/py/scripts/addons/oscurart_tools.py
Modified: contrib/py/scripts/addons/oscurart_tools.py
===================================================================
--- contrib/py/scripts/addons/oscurart_tools.py 2012-07-23 18:09:20 UTC (rev 3646)
+++ contrib/py/scripts/addons/oscurart_tools.py 2012-07-24 02:40:20 UTC (rev 3647)
@@ -427,232 +427,134 @@
bl_options = {"REGISTER", "UNDO"}
def execute(self, context):
-
SEL_OBJ= bpy.context.active_object
- LISTA_KEYS = bpy.context.active_object.data.shape_keys.key_blocks[:]
-
+ LISTA_KEYS = bpy.context.active_object.data.shape_keys.key_blocks[1:]
+
+
##MODOS
EDITMODE = "bpy.ops.object.mode_set(mode='EDIT')"
OBJECTMODE = "bpy.ops.object.mode_set(mode='OBJECT')"
POSEMODE = "bpy.ops.object.mode_set(mode='POSE')"
-
+
##INDICE DE DRIVERS
varindex = 0
-
+
##CREA NOMBRES A LA ARMATURE
amt = bpy.data.armatures.new("ArmatureData")
ob = bpy.data.objects.new("RIG_LAYOUT_"+SEL_OBJ.name, amt)
-
+
##LINK A LA ESCENA
scn = bpy.context.scene
scn.objects.link(ob)
scn.objects.active = ob
ob.select = True
-
-
- eval(EDITMODE)
+
+
+
gx = 0
gy = 0
-
-
- for keyblock in LISTA_KEYS:
- print("KEYBLOCK EN CREACION DE HUESOS "+keyblock.name)
-
-
+
+
+ for keyblock in LISTA_KEYS:
if keyblock.name[-2:] != "_L":
- if keyblock.name[-2:] != "_R":
-
+ if keyblock.name[-2:] != "_R":
+
+
+
+ ## OBJETO ACTIVO
+ scn.objects.active = ob
+ eval(EDITMODE)
+
##CREA HUESOS
-
bone = amt.edit_bones.new(keyblock.name)
bone.head = (gx,0,0)
bone.tail = (gx,0,1)
- gx = gx+2.2
- bone = amt.edit_bones.new(keyblock.name+"_CTRL")
- bone.head = (gy,0,0)
- bone.tail = (gy,0,0.2)
- gy = gy+2.2
-
- ##SETEA ARMATURE ACTIVA
- bpy.context.scene.objects.active = bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name]
- bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].select = 1
- ##DESELECCIONA (modo edit)
- eval(EDITMODE)
- bpy.ops.armature.select_all(action="DESELECT")
-
- ##EMPARENTA HUESOS
-
- ##HUESO ACTIVO
- eval(OBJECTMODE)
- bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].data.bones.active = bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].data.bones[keyblock.name]
- ##MODO EDIT
- eval(EDITMODE)
- ##DESELECCIONA (modo edit)
- bpy.ops.armature.select_all(action="DESELECT")
- ##MODO OBJECT
- eval(OBJECTMODE)
- ##SELECCIONA UN HUESO
- bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].data.bones[keyblock.name+"_CTRL"].select = 1
- eval(EDITMODE)
- ##EMPARENTA
- bpy.ops.armature.parent_set(type="OFFSET")
- ##DESELECCIONA (modo edit)
- bpy.ops.armature.select_all(action="DESELECT")
-
- ##LE HAGO UNA VARIABLE DE PLACEBO
- keyblock.driver_add("value")
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.expression = "var+var_001"
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables.new()
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables.new()
-
-
- varindex = varindex + 1
-
-
- for keyblock in LISTA_KEYS:
- print("KEYBLOCK SEGUNDA VUELTA :"+keyblock.name)
-
- if keyblock.name[-2:] == "_L":
- print("igual a L")
-
- ##CREA DRIVERS Y LOS CONECTA
- keyblock.driver_add("value")
- keyblock.driver_add("value")
-
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.expression = "var+var_001"
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables.new()
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables.new()
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var'].targets[0].id = bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name]
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var'].targets[0].bone_target = bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].data.bones[(keyblock.name[:-2])+"_CTRL"].name
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var'].type = 'TRANSFORMS'
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var'].targets[0].transform_space = "LOCAL_SPACE"
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var'].targets[0].transform_type = "LOC_X"
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var_001'].targets[0].id = bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name]
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var_001'].targets[0].bone_target = bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].data.bones[(keyblock.name[:-2])+"_CTRL"].name
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var_001'].type = 'TRANSFORMS'
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var_001'].targets[0].transform_space = "LOCAL_SPACE"
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var_001'].targets[0].transform_type = "LOC_Y"
-
-
- varindex = varindex + 1
-
-
-
- if keyblock.name[-2:] == "_R":
- print("igual a R")
-
- ##CREA DRIVERS Y LOS CONECTA
- keyblock.driver_add("value")
- keyblock.driver_add("value")
-
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.expression = "-var+var_001"
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables.new()
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables.new()
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var'].targets[0].id = bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name]
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var'].targets[0].bone_target = bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].data.bones[(keyblock.name[:-2])+"_CTRL"].name
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var'].type = 'TRANSFORMS'
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var'].targets[0].transform_space = "LOCAL_SPACE"
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var'].targets[0].transform_type = "LOC_X"
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var_001'].targets[0].id = bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name]
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var_001'].targets[0].bone_target = bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].data.bones[(keyblock.name[:-2])+"_CTRL"].name
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var_001'].type = 'TRANSFORMS'
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var_001'].targets[0].transform_space = "LOCAL_SPACE"
- SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var_001'].targets[0].transform_type = "LOC_Y"
-
- varindex = varindex + 1
-
-
-
- ## CREO DATA PARA SLIDERS
-
- ## creo data para los contenedores
- verticess = [(-1,1,0),(1,1,0),(1,-1,0),(-1,-1,0)]
- edgess = [(0,1),(1,2),(2,3),(3,0)]
-
- mesh = bpy.data.meshes.new(keyblock.name+"_data_container")
- object = bpy.data.objects.new("GRAPHIC_CONTAINER", mesh)
- bpy.context.scene.objects.link(object)
- mesh.from_pydata(verticess,edgess,[])
-
- ## PONGO LOS LIMITES Y SETEO ICONOS
- for keyblock in LISTA_KEYS:
- print("KEYBLOCK EN CREACION DE HUESOS "+keyblock.name)
-
-
- if keyblock.name[-2:] != "_L":
- if keyblock.name[-2:] != "_R":
+
+ bonectrl = amt.edit_bones.new(keyblock.name+"_CTRL")
+ bonectrl.head = (gy,0,0)
+ bonectrl.tail = (gy,0,0.2)
+
+
+ ##EMPARENTA HUESOS
+ ## EMPARENTO
+ ob.data.edit_bones[bonectrl.name].parent = ob.data.edit_bones[bone.name]
+ bpy.context.scene.objects.active = ob
+
+ for SIDE in ["L","R"]:
+ ##LE HAGO UNA VARIABLE
+ DR = SEL_OBJ.data.shape_keys.key_blocks[keyblock.name+"_"+SIDE].driver_add("value")
+ if SIDE == "L":
+ DR.driver.expression = "var+var_001"
+ else:
+ DR.driver.expression = "-var+var_001"
+ VAR1 = DR.driver.variables.new()
+ VAR2 = DR.driver.variables.new()
+
+ VAR1.targets[0].id = ob
+ VAR1.type = 'TRANSFORMS'
+ VAR1.targets[0].bone_target = bonectrl.name
+ VAR1.targets[0].transform_space = "LOCAL_SPACE"
+ VAR1.targets[0].transform_type = "LOC_X"
+ VAR2.targets[0].id = ob
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list