Introducción

Los controladores son una forma de controlar el valor de las propiedades mediante una función o una expresión matemática.

Concretamente, los controladores estarán compuestos por:

  • La configuración principal del controlador que podrá usar la cantidad deseada de valores de entrada, tomándolos desde propiedades o canales de transformación de objetos o desde propiedades de la escena o capa de visualización actuales y combinándolos mediante el uso de funciones matemáticas predefinidas o una expresión arbitraria de Python.

  • Una curva-f de animación, que mapeará el resultado producido por la configuración principal del controlador a un valor final, que será el efectivamente aplicado a la propiedad controlada.

Como forma de ejemplo, la rotación del Objeto 1 podrá ser controlada por la escala del Objeto 2. Se podrá decir entonces, que la escala del Objeto 2 controla a la rotación del Objeto1.

Los controladores no sólo podrán definir el valor de una propiedad directamente con el valor de otra propiedad, sino que también podrán combinar varios valores, haciendo uso de una función predefinida o de una expresión de Python; siendo además posible modular este resultado mediante una curva manualmente definida y/o una pila de modificadores.

Los controladores son una herramienta sumamente poderosa para la construcción de sistemas de control y son normalmente usados para controlar las transformaciones de huesos, así como la influencia de Formas clave, restricciones Acción y modificadores, usando normalmente propiedades como valores de entrada.

Vista de gráfica

../../_images/animation_drivers_introduction_fcurve.png

Curva del editor de Controladores.

El área principal del editor de Controladores se muestra como una curva-f que representa a la función del controlador.

El eje X representará al valor producido por la configuración principal del controlador. Sus unidades podrán variar de acuerdo a la configuración.

El eje Y representará al valor efectivamente aplicado a la propiedad controlada. Sus unidades dependerán de la propiedad.

En la imagen de ejemplo, cuando el valor principal del controlador sea de 2.0, el valor efectivamente aplicado a la propiedad controlada será de 0.5.

La curva-f predefinida simplemente traza un mapa de identidad, es decir, el valor producido por la configuración principal del controlador será aplicado, tal cual, a la propiedad controlada. Si el valor primario producido por el controlador fuera de 2.0, el valor efectivamente aplicado a la propiedad controlada será también de 2.0.

La función del controlador podrá ser definida de manera artística mediante una curva con asas Bezier o, de forma matemática, mediante funciones trigonométricas o expresiones polinómicas, tales como \(y = a + bx\). Más aun, la función podrá ser modulada de manera procedimental mediante la aplicación de ruido o de repeticiones cíclicas. Ver Modificadores para más detalles.

Configuración de un controlador

El Panel de controladores permitirá visualizar la configuración de un controlador.

Un controlador podrá hacer uso de la cantidad deseada de variables. Las variables permitirán especificar qué propiedades, canales de transformación de objetos o distancias relativas entre objetos serán usadas como entrada por el controlador.

El tipo de controlador usado determinará cómo serán usadas las variables. Los tipos disponibles son:

  • una función integrada: por ejemplo, la suma de los valores de la variable, o

  • una expresión de Python: una expresión que hace referencia a las variables por su nombre.

Esta configuración principal del controlador producirá un valor, que cambiará cuando las variables de entrada cambien. Este valor será luego evaluado mediante la curva de función del controlador, para producir el valor final que será efectivamente aplicado a la propiedad controlada.

Notas acerca de los scripts con expresiones

Cuando un controlador utilice una expresión de script, Blender podrá evaluarla sin necesidad de tener que usar el intérprete de Python principal, siempre y cuando ésta sea lo suficientemente sencilla. Esto significará que los controladores serán rápidos en su evaluación, cuando se usen expresiones «simples» con sumas, divisiones y otras operaciones sencillas. Las funciones integradas siempre serán evaluadas de forma nativa.

Ver Expresiones simples para una lista exhaustiva de las expresiones que podrán ser evaluadas de forma nativa.

Cuando una expresión no sea simple, será evaluada utilizando el intérprete de Python. Como consecuencia, la evaluación del controlador será más lenta y existirá la posibilidad de algún riesgo de seguridad, si el autor del código de Python no es de confianza. Este será un factor importante a tomar en consideración especialmente en escenas ya de por sí pesadas, así como al compartir archivos con otras personas. Ver también Ejecución automática.