Arte 3D - PG - I - Unity - Driven Key Manager
Descripción General
Este script permite crear relaciones dinámicas entre objetos(denominados “Driver” y “Driven”) sin necesidad de clips de animación pregrabados, controlando la posición, rotación o escala. Es decir, el atributo y ejes que seleccionemos en el Driver influirá en los valores del atributo y ejes del objeto que asignemos como Driven.
Driver (Controlador): Es la variable independiente que controla la animación. Sirve como objeto de entrada o disparador al que manipulamos directamente el atributo seleccionado.
Driven (Controlado): Es la variable dependiente que reacciona al Driver, el movimiento de sus valores es automático en respuesta al Driver.
Proceso de Desarrollo
Setting en la Escena
El script funciona como un manager, no es necesario asignarlo a cada objeto que lo vaya a utilizar. Desde aquí podemos visualizar, editar y modificar todas las relaciones Driver-Driven que se encuentren en la escena.
De momento solo funciona con relación a uno, es decir, un Driver solo puede influir sobre un Driven por relación creada. Sin embargo, creando relaciones individuales se puede hacer que varios objetos sigan un mismo Driver.
Instrucciones
- Crear un empty en la escena que se llame “Driven Key Manager”.
- Agregar el script DrivenKeyManager con el Add Component
- Con el botón Agregar Nueva Relación creamos las relaciones necesarias, podemos nombrar cada una y la flecha al lado del nombre nos permite expandir o minimizar para tener una mejor visualización en caso de que tengamos muchas conexiones en el manager.

Modo Linear En este modo, el Driven se mueve proporcionalmente al valor asignado del Driver respecto a sus valores iniciales.
Es una forma más directa, útil en rigs u objetos donde se requiere que el Driven siga la variación lineal del Driver.
Mantiene el Driven en sus valores iniciales, moviendo proporcionalmente los valores en base a estos.
Para un mejor control, utiliza un multiplier que determina cómo se verán afectados los valores del Driver, es decir, no depende de una relación 1 a 1 en el valor asignado. Se pueden seleccionar 1, 2 o 3 ejes tanto para el Driven como para el Driver. En caso de querer influir diferentes atributos, se tendría que crear una relación por cada uno.
Por default, al crear una relación se maneja una curva lineal, necesaria para que funcione el movimiento, aunque se puede editar en caso de querer un movimiento más suavizado.

Puede ocuparse para el mismo objeto, hacer que algún atributo (Posición, Rotación o Escala) sea dependiente a algún otro. Por ejemplo, que al mover un objeto en el eje X influya de manera automática en su rotación en el eje Y.

Modo Exponential Clamp
Este modo funciona con valores mínimos y máximos tanto del Driver como del Driven.
Para este modo, aparte de configurar los atributos y los ejes que estarán involucrados, también se tendrá que asignar un valor mínimo y máximo en ambos objetos, definiendo un rango que permite un mayor control sobre el movimiento del Driven.
No es un desencadenante, es decir, no activa el movimiento al llegar a cierto punto, si no que el movimiento está ligado entre los valores, mientras el Driver se mueva entre sus límites, igualmente el Driven modifica sus valores entre su propio límite asignado.
Por ejemplo, si el Driver tiene un rango -10,5 y el Driven -60,30; siendo que el Driven tenga un movimiento que pase por este rango, si el Driven esta en su valor -10, el Driver estará en -60; mientras el Driven se vaya moviendo hacia su límite máximo 5, el Driver hará lo mismo hasta llegar a su propio límite 30. Estos valores serán afectados tomando como base el valor que tengan los objetos al momento de su asignación, por lo que no siempre serán 0. Si en este ejemplo el Driven se moverá sobre su eje X y su valor inicial es de -3, entonces al establecer su rango se hará la conversión, teniendo un rango de -13, 2.

Archivos Adjuntos
Comentarios
- Es importante que las asignaciones y creación de relaciones se hagan en un punto inicial al que se pueda regresar y tener como base para evitar problemas con el offset que se está manejando.
- Si se van a hacer ajustes más allá de los valores de multiplier o de los límites, es mejor borrar la relación y configurar una nueva para evitar problema o que el offset del driver se tome de un valor que no es su inicial.
- Se recomienda asignar el Driven y Driver hasta el final, ya que los demas ajustes ya esten configurados.
- En caso de tener animación, se debe tomar en cuenta que para cada configuración o creación de una nueva relación es necesario regresar al principio para evitar errores, no hacerlo a mitad de la animación.
Ventajas
- Funciona con objetos, rigs y movimientos básicos.
Desventajas
- Puede modificar fácilmente los valores iniciales, por lo que se recomienda tener cuidado al hacer las asignaciones o tener un backup de sus valores en el transform.
- Tiene un bug que al crear una nueva relación lo hace con los valores del anterior, por lo que se recomienda borrar los ajustes y crear una nueva a partir de esta para evitar errores.
Elaboró
Erick Jurado