[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3648] contrib/py/scripts/addons/ oscurart_tools.py: rewrite Shapes Layout Asymmetrical Tool
Eugenio Pignataro
info at oscurart.com.ar
Wed Jul 25 03:20:59 CEST 2012
Revision: 3648
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3648
Author: oscurart
Date: 2012-07-25 01:20:57 +0000 (Wed, 25 Jul 2012)
Log Message:
-----------
rewrite Shapes Layout Asymmetrical 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-24 02:40:20 UTC (rev 3647)
+++ contrib/py/scripts/addons/oscurart_tools.py 2012-07-25 01:20:57 UTC (rev 3648)
@@ -449,18 +449,23 @@
scn.objects.active = ob
ob.select = True
+ ## 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("%s_data_container" % (SEL_OBJ))
+ object = bpy.data.objects.new("GRAPHIC_CONTAINER", mesh)
+ bpy.context.scene.objects.link(object)
+ mesh.from_pydata(verticess,edgess,[])
-
gx = 0
gy = 0
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)
@@ -472,8 +477,7 @@
bonectrl = amt.edit_bones.new(keyblock.name+"_CTRL")
bonectrl.head = (gy,0,0)
- bonectrl.tail = (gy,0,0.2)
-
+ bonectrl.tail = (gy,0,0.2)
##EMPARENTA HUESOS
## EMPARENTO
@@ -499,19 +503,8 @@
VAR2.type = 'TRANSFORMS'
VAR2.targets[0].bone_target = bonectrl.name
VAR2.targets[0].transform_space = "LOCAL_SPACE"
- VAR2.targets[0].transform_type = "LOC_Y"
-
-
- ## 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)]
+ VAR2.targets[0].transform_type = "LOC_Y"
- 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,[])
-
eval(POSEMODE)
## SETEO ICONOS
@@ -1364,177 +1357,123 @@
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
amtas = bpy.data.armatures.new("ArmatureData")
obas = bpy.data.objects.new("RIG_LAYOUT_"+SEL_OBJ.name, amtas)
-
+
##LINK A LA ESCENA
scn = bpy.context.scene
scn.objects.link(obas)
scn.objects.active = obas
obas.select = True
-
-
+
+ ## CREO DATA PARA SLIDERS
+ ## creo data para los contenedores
+ verticess = [(-.1,1,0),(.1,1,0),(.1,0,0),(-.1,0,0)]
+ edgess = [(0,1),(1,2),(2,3),(3,0)]
+ mesh = bpy.data.meshes.new("%s_data_container" % (SEL_OBJ))
+ object = bpy.data.objects.new("GRAPHIC_CONTAINER_AS", mesh)
+ bpy.context.scene.objects.link(object)
+ mesh.from_pydata(verticess,edgess,[])
+
eval(EDITMODE)
gx = 0
- gy = 0
-
-
- for keyblock in LISTA_KEYS:
- print("KEYBLOCK EN CREACION DE HUESOS "+keyblock.name)
-
-
+ gy = 0
+
+ for keyblock in LISTA_KEYS:
if keyblock.name[-2:] != "_L":
if keyblock.name[-2:] != "_R":
-
- ##CREA HUESOS
-
+ ## OBJETO ACTIVO
+ scn.objects.active = obas
+ eval(EDITMODE)
+
+ ##CREA HUESOS
bone = amtas.edit_bones.new(keyblock.name)
bone.head = (gx,0,0)
bone.tail = (gx,0,1)
- gx = gx+2.2
- bone = amtas.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")
-
+
+ bonectrl = amtas.edit_bones.new(keyblock.name+"_CTRL")
+ bonectrl.head = (gy,0,0)
+ bonectrl.tail = (gy,0,0.2)
+
##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)
+ ## EMPARENTO
+ obas.data.edit_bones[bonectrl.name].parent = obas.data.edit_bones[bone.name]
+ bpy.context.scene.objects.active = obas
+
##DESELECCIONA (modo edit)
bpy.ops.armature.select_all(action="DESELECT")
- ##MODO OBJECT
+
+ ##CREA DRIVERS Y LOS CONECTA
+ DR1 = keyblock.driver_add("value")
+ DR1.driver.expression = "var"
+ VAR2 = DR1.driver.variables.new()
+ VAR2.targets[0].id = obas
+ VAR2.targets[0].bone_target = bonectrl.name
+ VAR2.type = 'TRANSFORMS'
+ VAR2.targets[0].transform_space = "LOCAL_SPACE"
+ VAR2.targets[0].transform_type = "LOC_Y"
+
+ eval(POSEMODE)
+
+ ## SETEO ICONOS
+ obas.pose.bones[keyblock.name].custom_shape = object
+ obas.pose.bones[keyblock.name+"_CTRL"].custom_shape = object
+
+ ## SETEO CONSTRAINTS
+
+ bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].data.bones.active = bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].data.bones[keyblock.name+"_CTRL"]
+ ## SUMO CONSTRAINT
+ eval(POSEMODE)
+ CNS = obas.pose.bones[keyblock.name+"_CTRL"].constraints.new(type='LIMIT_LOCATION')
+ CNS.min_x = 0
+ CNS.use_min_x = 1
+ CNS.min_z = 0
+ CNS.use_min_z = 1
+ CNS.min_y = 0
+ CNS.use_min_y = 1
+
+ CNS.max_x = 0
+ CNS.use_max_x = 1
+ CNS.max_z = 0
+ CNS.use_max_z = 1
+ CNS.max_y = 1
+ CNS.use_max_y = 1
+
+ CNS.owner_space = "LOCAL"
+ CNS.use_transform_limit = True
+
+ ## PARA QUE EL TEXTO FUNCIONE PASAMOS A OBJECT MODE
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")
+
+ ## TEXTOS
+ ## creo tipografias
+ bpy.ops.object.text_add(location=(0,0,0))
+ gx = gx+2.2
+ gy = gy+2.2
+ texto = bpy.context.object
+ texto.data.body = keyblock.name
+ texto.name = "TEXTO_"+keyblock.name
+
+ texto.rotation_euler[0] = math.pi/2
+ texto.location.x = -.15
+ texto.location.z = -.15
+ texto.data.size = .2
+
+ CNS = texto.constraints.new(type="COPY_LOCATION")
+ CNS.target = obas
+ CNS.subtarget = obas.pose.bones[keyblock.name].name
+ CNS.use_offset = True
+
+
- ##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)+"_CTRL"].name
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list