Las restricciones permiten controlar la influencia de unos objetos sobre otros objetos de la escena. Son un mecanismo habitual en paquetes de animación 3D que facilitan la vida al animador. Las restricciones se añaden en el panel Constraints del grupo de botones de objeto . Antes de estudiar los principales tipos de restricciones existentes en Blender, veamos la definición de la relación de parentesco que puede verse como un tipo especial de restricción, pero que se realiza directamente sin acceder a esa pestaña.


Relación de Parentesco

En muchas ocasiones interesa que un objeto sufra la misma transformación que otro (por ejemplo, imaginemos objetos modelados independientemente pero que queremos que formen parte de una misma entidad. En este caso, puede emplearse la relación de Padre entre objetos. Para hacer que un objeto sea hijo de otro objeto, primero seleccionamos el objeto hijo con , después pulsamos Shift y manteniendo la tecla puslada seleccionamos el objeto padre, y pulsamos Control P, y aceptamos la orden Make Parent. Ahora las operaciones espaciales que apliquemos al padre se aplicaran al hijo, pero las que apliquemos al hijo no se aplicaran al padre. Podemos ver un ejemplo en la Figura 1. La relación de parentesco se representa mediante una línea punteada en el interfaz de Blender.
Para eliminar la relación de parentesco basta con seleccionar el objeto hijo y pulsar Alt P (la creación se realiza con Control y la eliminación con Alt). Aparecerá un menú con tres opcicones, las más interesantes son:

  • Clear Parent: Elimina la relación de parentesco y deja al objeto hijo en la posición inicial antes de realizar el parentesco.
  • Clear and Keep Transformation: Igual que el anterior pero deja al hijo en la posición actual.


Figura 01. Ejemplo de parentesco.



Esta relación de parentesco se emplea en varios operadores de Blender para realizar acciones complejas. Por esta razón esta fuera del grupo de restricciones de la pestaña Constraints del grupo de botones que vamos a estudiar a continuación. Copy Location / Rotation / Scale

Estas tres restricciones copian la Posición, Rotación y Escala de un objeto especificado como parámetro OB: (¡cuidado al especificar el nombre del objeto ya que Blender es sensible a mayúsculas y minúsculas!). Permiten copiar el atributo sólo en algún eje, indicado en los botones X Y o Z (o en los ejes negativos). Si el botón Offset esta activo, permite copiar la posición pero con un desplazamiento relativo (bastara con situar el objeto en otra posición para indicar el offset).



Figura 02. La restricción Copy Location en acción.



Influencia: La última barra deslizante de Influence permite establecer el valor de influencia que ejerce la restricción. Va acompañada de dos botones; Show permite ver el valor de esa restricción en una curva IPO (que automáticamente se ajustara a tipo Constraint). Este botón es interesante cuando un objeto tiene varias restricciones con curvas asociadas a cada una. Pulsar el botón Show hace que la curva visible sea la de esa restricción. El botón Key añade el valor de Influence a la curva IPO (ver Figura 2). En el ejemplo de la Figura 2 se añaden dos claves, una en el frame 1 con valor de influencia de 1 (100%), y otro en el frame 25 con nivel de influencia 0. Así, se puede ver cómo el Objeto1 se aleja de Objeto2 según avanza el número de frame. Este control de influencia es común a todas las restricciones.



Figura 03. Child Of.

Child Of

Es una versión de restricción del emparentado que hemos visto al inicio de la sección, pero permite animar la influencia (como hemos visto en la restricción anterior), además de controlar sobre qué características se quiere actuar (Loc, Rot, Scale).
Limit Location / Rotation / Scale / Distance

Este grupo de limitadores permite establecer valores máximos y mínimos de los parámetros a los que afectan (ver Figura 4). Estos limitadores requieren que se especifique para cada eje el valor máximo y mínimo que podrá alcanzar la propiedad (en el ejemplo de la Figura 4 es la localización) respecto del centro del objeto.



Figura 04 (a).
Limit Location.



En el ejemplo de uso de la Figura 4 (a) se define MinX y MaxX como 2 y 4 (activando los botones correspondientes). Cuando se activan esos valores e intentamos desplazar el objeto por la escena, el centro del objeto no podrá sobrepasar esos valores. El botón For Transform sirve para que el valor de la ventana de transformación (recordemos que es accesible mediante la tecla N) no tome tampoco valores mayores.


Finalmente, CSpace permite indicar si los valores sobre los que se limita al objeto se aplicaran en el espacio de coordenadas global o en el local (si esta emparentado con otro objeto). En la Figura 4 (a) se añade un segundo cubo y se emparenta el objeto al que se aplica la limitación sobre este segundo cubo. Si activamos Local Space en la lista desplegable, el cubo podrá moverse a cualquier punto del espacio siempre que sea debido a que el objeto padre se desplaza. Sin embargo, en coordenadas relativas al padre sólo podrá desplazarse dentro del rango definido en Limit Location.



Figura 04 (b).
Limit Distance.



El limitador de distancia emplea un parámetro OB: en el que debemos indicar el objeto sobre el que queremos mantener una distancia Distance que define el radio de una esfera en la que podrá moverse el objeto al que afecta (ver Figura 4 (b)). Tendremos diferente comportamiento según el valor seleccionado en Clamp Region: Inside indica que el objeto puede situarse dentro de esa esfera, Outside indica que el objeto no puede situarse en el interior de la esfera o Surface que implica que el objeto sólo puede situarse en la esfera (justo a la distancia especificada en Distance).
Trak To / Locked Track


Figura 05. Ejemplos de Trak To y Locked Track.



Estas restricciones permiten apuntar a la posición de otro objeto. La principal diferencia entre Trak To y Locked Track es que la primera permite apuntar empleando cualquier rotación necesaria en el objeto al que se aplica, y la segunda limita la rotación a un eje (en el ejemplo de la figura 5 se muestra la diferencia).

  • Trak To: requiere que se le indique en To: el eje que se empleara para apuntar al otro objeto (es interesante activar la visualización de los ejes del objeto, como se explicó al final de la sección 4.1), y Up: será el eje que apunte "hacia el techo".
  • Locked Track: requiere igualmente el eje To:, y el eje Lock: que permanecera fijo.

Como se puede ver en la Figura 5, cuando se añade una restricción de Trak To el primer cubo rota para apuntar perfectamente al segundo cubo. Sin embargo, cuando la restricción es de tipo Locked Track, sólo rota en el eje Z.


Figura 06. Follow Path y uso de pila de restricciones.

Follow Path

Al igual que ocurría con los modificadores de modelado, las restricciones pueden aplicarse a modo de pila. En muchas ocasiones interesa crear objetos de tipo Empty (que no tienen representación) para aplicar restricciones sobre ellos. Por ejemplo, en la Figura 6 se aplica una restricción Follow Path indicando el nombre del objeto de tipo camino (Path), que se añade mediante Barra Espaciadora Add/ Curve/ Path. Además, se añade otra restricción de tipo Locked Track para que apunte a un objeto Empty mientras avanza por el camino.
Otras restricciones

La restricción Floor permite especificar que otro objeto actuara como "suelo", con características avanzadas que permiten inmobilizar al objeto que usa esa restricción mientras tenga influencia (útil en animación de personajes). Si se usa esta restricción hay que tener en cuenta que se toma el centro del objeto como punto que no puede sobrepasar el suelo, por lo que puede ser necesario cambiar el centro del objeto como vimos al inicio de la segunda sesión.
La restricción Script nos permite utilizar programas en Python que especifican límites de restricción. Esta característica avanzada es muy interesante en la programación y desarrollo de simulaciones personalizadas.
Modificadores Animables

Cuando estudiamos los modificadores del grupo de botones de edición en la sección 2.3, no se presentaron algunos que ofrecen características de animación, como los que vamos a ver a continuación.




Figura 07. Build.


Figura 08. Uso de Build.


Figura 09. Uso de Wave.


Build: Este modificador construye la superficie añadiendo progresivamente las caras que la forman. Requiere básicamente dos parámetros (ver Figura 7), Start indica el frame de comienzo de la construcción, y en End el frame de finalización. El botón Randomize si esta activo hace que la construcción se realice aleatoriamente (según la semilla aleatoria indicada en Seed). Un ejemplo de uso del modificador, empleando construcción con el botón Randomize desactivado puede verse en la Figura 8.


Wave: El modificador Wave realiza aplica deformaciones de ondas al objeto. Permite varios parámetros que permiten configurar las ondas para emplearlas en multitud de situaciones. Un resultado de aplicar este modificador con los parámetros por defecto puede verse en la Figura 9.