Panel de controladores
Referencia
- Editor
Editor de curvas
- Modo
Controladores
- Panel
- Atajo
N
Referencia
- Menú
- 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
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.
- 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.
- 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
orlocation[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:
- 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 ternarioif
- 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
Python y su documentación.
functions.wolfram.com <https://functions.wolfram.com/> (en inglés)__.