Resultados 1 al 2 de 2

Creación de script animación en ingeniería

  1. #1
    Fecha de ingreso
    Nov 2006
    Mensajes
    12

    Creación de script animación en ingeniería

    Muy buenas a todos. Me dedico a la ingeniería (y al 3d cuando me dejan tiempo) y actualmente me he movido de 3dsMax a Blender (oficina profesional uso de software libre) en Ubuntu.

    El tema es el siguiente: estoy programando un script en Python con el que pueda extraer los datos de los modelos para luego representarlos en Blender. La gracia del asunto, es que nos interesa ver la evolución del modelo con el tiempo = animación al canto.

    Por una parte, el programa de cálculo exporta a ciertos formatos (vrml y 3dxml) de forma regular (no está pensado para su uso en 3d), siendo lo exportado únicamente la posición concreta en un instante de tiempo determinado (posición estática).

    Entonces, me he creado un script de Python donde extraigo lo que considero información necesaria para posteriormente en Blender crear una sencilla animación. Lo extraído son 3 archivos:
    -Archivo_undef: almacena información sobre la geometría inicial indeformada (vértice_id, vértice_x, vértice_y, vértice_z).

    Archivo_conect: almacena información sobre que vértice está conectado con quién, en previsión de formar líneas en el espacio (en caso de elementos lineales) o superficies (en caso de láminas - Esto lo haré a posteriori).

    Archivo_keyframes: almacena información sobre la geometría en cada instante de tiempo (t, vértice_id, vértice_x, vértice_y, vértice_z).

    Con la ayuda de la Api de Blender y de señor Google, he montado otro script donde a modo de prueba represento la geometría indeformada (sin movimiento) como curvas Bézier. La idea de hacerlo así la tomo de, en caso de elementos lineales, poder animar dicha curva y posteriormente extruír una sección a lo largo de dicha curva y así tener un volumen representativo en movimiento.

    Sin embargo, no tengo muy claro como proceder para crear la animación:
    -Opción 1: crear curvas ipo (con la información del archivo keyframes) asignadas a cada vértice. En este caso, no sé cómo se le asigna una ipo a un vértice concreto (y hablamos de proboolean de vértices superando los 2.000).

    Opción 2: crear shape keys absolutos. De nuevo el problema es que como los vértices los he creado mediante curvas Bézier, el poder identificar los vértices correspondientes para aplicarles los cambios de posición absolutos.

    Opción 3:, abierta para quien tenga ideas que me permitan afrontar el problema.

    Como nota, indico que llevo sólo un par de meses con Blender, por lo que la sintaxis de programación se me hace muy abstracta (pero no soy nuevo en el 3d, al menos con el 3ds Max llevo varios años y me defiendo bastante) y es por ello que imagino se me habrán pasado y pasaran órdenes/cosas básicas.

    Sin más, agradecer a quien se tome la molestia de leer este tocho y me aporte ideas. No quiero los peces, sólo aprender y mejorar cómo Blender-pescar.

  2. #2
    Fecha de ingreso
    Dec 2025
    Mensajes
    0
    Tu mejor opción actual es utilizar Shape Keys relativos (Relative Shape Keys) manejados directamente desde la API de Blender, combinado con el uso de un objeto Mesh en lugar de curvas Bézier para la geometría base. Este enfoque es más directo y eficiente para animar miles de vértices.

    Primero, importa la geometría inicial indeformada desde tu Archivo_undef creando un objeto Mesh. Usa bpy.data.meshes.new y bpy.data.objects.new. Añade los vértices usando from_pydata con las coordenadas iniciales. Para las conexiones del Archivo_conect, si son líneas, puedes crear edges (aristas) en el mesh en lugar de curvas Bézier. Esto te dará un objeto de malla con una topología fija.

    La clave está en crear un Shape Key llamado "Basis" con la posición inicial. Luego, para cada instante de tiempo en tu Archivo_keyframes, creas un nuevo Relative Shape Key. En la API, accedes a la propiedad data de un shape key para modificar las coordenadas de cada vértice. Debes iterar por cada vértice en el shape key y asignarle las nuevas coordenadas (vértice_x, vértice_y, vértice_z) del instante correspondiente. Es fundamental que el orden de los vértices en tu archivo y en el objeto mesh de Blender sea idéntico y se mantenga constante en todos los frames.

    Para animar, insertas keyframes en el valor de influencia de cada shape key. En el frame 1, el valor de influencia del shape key del primer instante debe ser 1, y los demás 0. En el frame correspondiente al siguiente instante, animas la transición: el valor del primer shape key baja a 0 y el del segundo sube a 1. Esto lo puedes automatizar en un bucle con keyframe_insert(data_path="value") para cada shape key.

    Este método es eficiente porque Blender interpola automáticamente entre las posiciones de los vértices definidas en los shape keys. Evitas manipular curvas IPO para cada vértice individual, lo que sería muy lento con miles de ellos. Además, al usar un mesh con aristas, la visualización de elementos lineales es directa y luego puedes usar el modificador Skin o un modificador Array con un objeto perfil para darle volumen, si lo necesitas.

    Para asegurar el orden de los vértices, al crear el mesh inicial, guarda una lista con los identificadores de vértice (vértice_id) en el mismo orden en que los añadiste a la malla. Luego, cuando proceses cada frame del Archivo_keyframes, puedes ordenar los datos por ese mismo vértice_id para garantizar que cada coordenada se aplique al vértice correcto del objeto en Blender.

Temas similares

  1. Por que no hay ingeniería de animación
    Por xsired en el foro Programas de Diseño 3D y CAD
    Respuestas: 1
    : 11-01-2026, 11:44
  2. Se precisa técnico 3D para animación ingeniería no complicada
    Por Eduardo Entrium en el foro Oferta y demanda profesional
    Respuestas: 0
    : 26-02-2019, 11:46
  3. Ofertas de Trabajo Vranis servicios de ingeniería busca diseño y animación con Blender 3D
    Por Stratos en el foro Oferta y demanda profesional
    Respuestas: 7
    : 30-04-2015, 10:37
  4. Animación para un proyecto de ingeniería
    Por alejods en el foro Trabajos Finalizados
    Respuestas: 2
    : 16-04-2015, 16:32
  5. Animation-Master Creación y animación de personajes
    Por fernando espinoza en el foro Modelado
    Respuestas: 1
    : 14-07-2010, 14:04

Etiquetas para este tema