4.3. Uso de Restricciones
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 ![]() Figura 01. Ejemplo de parentesco. Relación de ParentescoEn 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 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:
![]() Copy Location / Rotation / ScaleEstas 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 está activo, permite copiar la posición pero con un desplazamiento relativo (bastará 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 ajustará 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 OfEs 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 / DistanceEste 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 aplicarán en el espacio de coordenadas global o en el local (si está 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). Track To / Locked Track![]() Figura 05. Ejemplos de Track To y Locked Track. Estas restricciones permiten apuntar a la posición de otro objeto. La principal diferencia entre Track 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).
![]() Figura 06. Follow Path y uso de pila de restricciones. Follow PathAl 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 restriccionesLa restricción Floor permite especificar que otro objeto actuará 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 AnimablesCuando estudiamos los modificadores del grupo de botones de edición
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 está 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.
|