Este proyecto consiste en el desarrollo de un complemento para Blender que automatiza la creación de trayectorias animadas para objetos, con un enfoque procedural y personalizable. Utiliza interpolaciones como Lineal, Catmull-Rom y Hermite para generar movimientos suaves, permitiendo controlar la posición, orientación e inclinación de vehículos a lo largo de caminos generados en una ciudad procedural. A lo largo de varias prácticas, se añadieron funcionalidades como el uso de drivers personalizados, oscilaciones realistas, giros en intersecciones, carga de modelos 3D externos y control preciso de la velocidad mediante reparametrización por longitud de arco. Todo se gestiona desde una interfaz integrada en Blender, pensada para facilitar el uso a usuarios con conocimientos básicos de Blender y Python.
1. Generación de la ciudad: Podemos elegir el número de calles y el espacio entre estas para generar una ciudad a nuestro gusto, todo realizado mediante código
Aquí podemos observar diferentes tipos de interpolaciones para definir la trayectoria de nuestros objetos. Podemos elegir entre interpolaciones lineal, Catmull-Rom y Hermite, lo que nos permite crear movimientos más suaves o más bruscos según lo deseemos. Utilizando el panel de Blender, contamos con una interfaz sencilla para seleccionar el tipo de interpolación y controlar valores específicos, como la tensión en la interpolación Catmull-Rom. Además, gracias a los drivers automatizados, las coordenadas de los objetos pueden seguir trayectorias definidas sin necesidad de configuraciones manuales complejas. El sistema se encarga también de generar movimientos fluidos entre los puntos clave que definimos, facilitando un resultado natural y preciso en nuestras animaciones.
1. Generación de trayectorias con drivers: Control de la posición de objetos en cada fotograma usando funciones matemáticas.
2. Interpolaciones programadas: Lineal, Catmull-Rom y Hermite.
3. Panel de Blender: Interfaz con selector de tipo de interpolación y control de tensión para Catmull-Rom.
4. Automatización de drivers: Asignación automática de drivers a las coordenadas del objeto para seguir trayectorias sin configurar manualmente.
5. Interpolación entre fotogramas clave: El sistema genera movimiento suave entre puntos definidos por el usuario.
En este vídeo podemos observar cómo desde el panel de control podemos elegir fácilmente cuántos coches queremos generar y cuántos giros realizarán en sus trayectorias. A partir de estos parámetros, el algoritmo crea automáticamente tanto las rutas como los vehículos, adaptándose de manera dinámica a las elecciones que hagamos, facilitando así pruebas rápidas y escenarios variados con solo modificar los valores desde la interfaz.
1. Generación de coches voladores: Creación automática de vehículos (esferas) en posiciones aleatorias de la ciudad.
2. Interpolación del movimiento: Uso del sistema de interpolación para controlar las trayectorias de los coches.
3. Oscilación aleatoria: Movimiento irregular configurable en amplitud, frecuencia y ejes para mayor realismo.
4. Creación de múltiples coches: Configuración de cantidad y características independientes por cada vehículo.
5. Giros en intersecciones: Los coches pueden girar automáticamente en esquinas gracias a la inserción de fotogramas clave.
6. Botón de borrado rápido: Elimina todos los coches de la escena para facilitar las pruebas.
En este vídeo se puede observar cómo el vehículo se orienta automáticamente siguiendo la dirección de su trayectoria mediante el uso de cuaterniones, lo que permite movimientos fluidos y evita problemas comunes en las rotaciones, como el gimbal lock. Además, podemos elegir manualmente qué eje del vehículo queremos que siga la dirección del movimiento, dándonos flexibilidad para adaptarlo fácilmente a diferentes situaciones o modelos.
Aquí podemos observar claramente la potencia de nuestro algoritmo cuando la trayectoria presenta numerosos cambios de dirección. El algoritmo automatiza completamente la orientación del vehículo, asegurando que siempre apunte hacia el frente a lo largo de todo el recorrido. Además, se aprecia cómo se genera automáticamente el alabeo del vehículo en las curvas, un efecto realista conseguido mediante el uso de cuaterniones. Este alabeo también es configurable, permitiendo ajustarlo fácilmente para obtener movimientos más o menos pronunciados según nuestras preferencias o necesidades.
1. Orientación dinámica: Rotación automática para alinear el objeto con la dirección de la trayectoria.
2. Drivers de rotación: Cálculo de cuaterniones para actualizar la orientación en cada fotograma.
3. Carga de modelos 3D externos: Reemplazo de esferas por modelos .obj personalizados desde el panel.
4. Control de inclinación lateral: Simulación de inclinación del vehículo al girar, ajustable desde el panel.
5. Interpolación sincronizada: Posición y orientación se interpolan al mismo tiempo para mantener coherencia.
1. Parametrización por longitud de arco: Cálculo de la distancia recorrida para controlar la velocidad con precisión.
2. Velocidad constante: Ajuste automático para que el objeto recorra 1 metro por segundo.
3. Velocidad personalizada: Se puede variar la velocidad en distintos tramos usando la propiedad distancia_deseada.
4. Edición desde el panel: Activación y configuración del control de velocidad desde la interfaz del complemento.
5. Sincronización con orientación: La posición y rotación se ajustan de forma coherente con los cambios de velocidad.
Lenguajes de programación
#PYTHON
Tecnologías
#BLENDER
Maths
#REPARAMETRIZACIÓN #QUATERNIONES #INTEPOLACIÓN