Panel de controladores

../../_images/animation_drivers_drivers-panel_panel.png

Panel emergente de edición de controlador.

Referencia

Editor

Editor de curvas

Modo

Controladores

Panel

Barra lateral ‣ Controladores

Atajo

N

Referencia

Menú

Menú contextual ‣ Editar controlador

Atajo

Ctrl-D

Este panel se encuentra visible en la Barra lateral del editor de Controladores o como un panel emergente, al agregar un controlador a una propiedad.

Mostrará la propiedad que está siendo controlada, seguida de una serie de opciones que permitirán determinar cómo funcionará el controlador.

Opciones de controladores

Tipo

Los controladores pueden usar dos categorías de funciones:

  • Funciones integradas (Valor promedio, Sumar valores, Valor mínimo y Valor máximo)

    La propiedad controlada obtendrá el promedio, la suma, el mínimo o el máximo, respectivamente, de los valores de las variables del controlador a las cuales se haga referencia. En caso de que sólo se hiciera referencia a una única variable, estas funciones producirán el mismo resultado.

  • Funciones personalizadas (Script con expresión).

    Son expresiones arbitrarias de Python que podrán hacer referencia a las variables del controlador por su nombre. Ver Expresiones.

Resultado

El resultado actual de los cálculos del controlador. Útil para propósitos de depuración.

Variables

Ver Variables del controlador.

Actualizar dependencias

Fuerza la actualización de las dependencias en las que se basan los cálculos del controlador.

Mostrar en editor de Controladores

Abrirá una nueva ventana con un editor de Controladores para mostrar el controlador que se está editando. Este botón sólo aparecerá en el panel emergente de edición de controladores.

Variables del controlador

Las variables permitirán hacer referencia a propiedades, canales de transformación o al resultado de una comparación entre las transformaciones de dos objetos.

Los controladores deberían acceder a datos de objetos mediante el uso de las variables del controlador, en vez de mediante referencias directas en la propia expresión de Python, como forma de que las dependencias puedan ser correctamente rastreadas cuando existan cambios en las mismas.

../../_images/animation_drivers_drivers-panel_add-variable.png

Botones para agregar, copiar y pegar.

Agregar variable

Agrega una nueva variable al controlador.

Copiar / Pegar variables

Copiará la lista actual de variables, para que puedan ser pegadas luego en otro controlador.

../../_images/animation_drivers_drivers-panel_single-property.png

Single property.

../../_images/animation_drivers_drivers-panel_transform-channel2.png

Transform channel.

../../_images/animation_drivers_drivers-panel_distance.png

Distancia.

Nombre

Nombre de la variable, para su referencia en la expresión. El nombre deberá comenzar con una letra y contener solamente letras, dígitos o guiones bajos.

Tipo

El tipo de variable a usar.

Propiedad individual

Permitirá obtener el valor de una propiedad RNA de Blender, definida mediante la selección de un bloque de datos y el ingreso de una cadena de texto con la ruta concreta, dentro del bloque de datos, a la propiedad que se desee referenciar.

En el caso de las propiedades de transformación, esto devolverá el valor exacto de la propiedad en la interfaz, mientras que al usarse una variable de tipo Canal de transformación se obtendrá un valor que podrá tomar en cuenta las jerarquías y restricciones, según se juzgue necesario.

Ver también Propiedades personalizadas.

Tipo de ID

El tipo de bloque de datos de ID. Por ejemplo: Forma, Imagen, Objeto, Material.

ID

El ID de ese tipo escogido. Por ejemplo: Material.001».

Ruta RNA

The RNA name of the property, based on a subset of Python attribute access syntax. For example: location.x or location[0] for the raw X location value, or ["prop_name"] for a custom property.

Truco

The easiest way to create a variable of this type is to use the Copy As New Driver context menu option of the input property, and paste the result into the driver via Paste Driver Variables.

Canal de transformación

Permitirá obtener el valor de un canal de transformación de un objeto de la escena.

ID

ID del objeto. Por ejemplo: Cubo, Esqueleto, Cámara.

Hueso

ID of the Armature bone. For example: «Bone», «Bone.002», «Arm.r». This option is for armatures.

Tipo

Por ejemplo, Posición X, Rotación X, Escala X.

La opción Escala promedio permite obtener un valor combinado de escala, calculado como la raíz cúbica del cambio total del volumen. A diferencia de la Escala X/Y/Z, este valor podrá ser negativo cuando el objeto se encuentre invertido debido a una escala negativa.

Modo

Para los canales de rotación, especificará el tipo de datos de rotación a ser usados, incluyendo los distintos órdenes explícitos Euler. De forma predefinida usará el mismo orden Euler del objetivo. Ver Modos de rotación.

Espacio

Espacio global, Espacio de la transformación, Espacio local.

Diferencia rotacional

Permitirá obtener el valor de la diferencia rotacional entre dos objetos o huesos, expresado en radianes.

Distancia

Permitirá obtener el valor de la distancia entre dos objetos o huesos.

Valor

Mostrará el valor de la variable.

Modos de canales de rotación

Los canales de rotación de las transformaciones soportan una serie de modos de operación, incluyendo:

Euler automático

Usará el mismo orden Euler del objetivo para descomponer la rotación en canales.

Euler XYZ, etc.

Permitirá especificar el orden de rotación Euler a ser usado.

Cuaternio

Proporcionará una representación de la rotación expresada en cuaternios.

Balanceo y torsión en X/Y/Z

Descompondrá la rotación en dos partes: una rotación de Balanceo que apuntará el eje especificado en su dirección final, seguida por una rotación de Torsión alrededor de ese eje. Esto será, a menudo, necesario para controlar Formas claves correctivas, así como huesos para la rotación orgánica de articulaciones.

Esta descomposición es habitualmente producida en los sistemas de control, mediante el uso de huesos accesorios, usando una restricción Rastreo amortiguado para extraer la parte de balanceo, y un hueso subordinado a éste, usando una restricción Copiar transformaciones para extraer el componente de torsión.

Los valores de los canales para Balanceo y torsión en Y serían:

../../_images/animation_drivers_drivers-panel_angle-curve.png

Curvas de decaimiento para ángulos ponderados.

Rotación Y

Ángulo de la rotación de torsión.

Rotación W

Ángulo de la rotación de balanceo, independiente de su dirección.

Rotación X, Rotación Z

Ángulo ponderado que representará la cantidad de balanceo alrededor del eje X/Z.

La magnitud del ángulo equivaldrá a la Rotación W cuando la rotación sea exclusivamente alrededor de ese eje, y decaerá a cero a medida que la dirección cambie hacia el otro eje, describiendo las curvas de decaimiento que se muestran en la gráfica de la derecha.

Desde el punto de vista matemático, los ángulos de balanceo serán calculados a partir de componentes de cuaternios, usando las fórmulas: \(2 \arccos(w)\) para W y \(2 \arcsin(x)\), etc. para los otros. El componente de la rotación de balanceo que corresponde al eje de torsión será siempre 0, y será reemplazado por el ángulo de torsión.

Expresiones

Expresión

Un campo de ingreso de texto, en donde será posible introducir una expresión arbitraria de Python que podrá hacer referencia a las Variables del controlador mediante sus nombres.

La expresión tendrá acceso a un conjunto de constantes y funciones matemáticas estándar, obtenidas a partir de los módulos math, bl_math y otros, a los cuales el espacio de nombres del controlador tiene acceso. Para ver un ejemplo de cómo agregar una función personalizada al espacio de nombres del controlador, ver el ejemplo de espacio de nombres del controlador.

Por razones de rendimiento, será mejor priorizar la utilización del subconjunto de Expresiones simples tanto como sea posible.

Usar self

Cuando esta opción se encuentre activa, será posible utilizar la variable self dentro de las expresiones, para que los controladores puedan hacer referencia a sus propios datos. Esto resultará útil para evitar tener que crear una variable de controlador para apuntar a los propios objetos y huesos que estén siendo controlados.

Ejemplo: self.location.x aplicado a la propiedad Rotación Y del mismo objeto, hará que el objeto rote a medida que se vaya moviendo.

Nótese que podría no ser posible rastrear completamente las dependencias de propiedades accedidas mediante la variable self.

Expresiones simples

Blender podrá evaluar un subconjunto de expresiones de controlador de Python de forma directa, que mejorarán significativamente el rendimiento, especialmente en sistemas con varios núcleos. Para sacar partido de esto, la expresión deberá utilizar únicamente las siguientes características:

Nombres de variables

Usar sólo caracteres ASCII.

Literales

Números enteros y decimales con punto flotante.

Globales

frame

Constantes

pi, True, False

Operadores

+, -, *, /, ==, !=, <, <=, >, >=, and, or, not, operador condicional ternario if

Funciones estándar

min, max, radians, degrees, abs, fabs, floor, ceil, trunc, round, int, sin, cos, tan, asin, acos, atan, atan2, exp, log, sqrt, pow, fmod

Funciones proporcionadas por Blender

lerp, clamp, smoothstep

Las expresiones simples seerán evaluadas aún cuando la ejecución de scripts Python se encuentre inactiva.

Cuando se utilice una expresión por fuera de este subconjunto, Blender mostrará la advertencia «Expresión de Python lenta». Sin embargo, en tanto la mayoría de los controladores utilicen expresiones simples, utilizar algunas expresiones complejas en algunos lugares selectos será aceptable.

Ver también