Gracias Gracias:  3
Resultados 1 al 8 de 8

Tema: Animación en base a lista de coordenadas

  1. #1
    Senior Member Avatar de 3J Kernel
    Fecha de ingreso
    Sep 2012
    Mensajes
    274

    Animación en base a lista de coordenadas

    Buenos días chic@s:
    Me han hecho una pregunta bastante curiosa e interesante. Os la cito:
    "Tengo un archivo de texto con una lista de coordenadas x e y. En una columna tengo los valores de x y en otra los valores de y. ¿Se puede hacer que blender, o cualquier otro programa, lea el archivo de texto y que haga la animación de un objeto de acuerdo a estas coordenadas?. Cada renglón del archivo de texto sería un fotograma"
    ¿Qué opináis vosotros?
    Un saludo.
    Canal de Youtube con tutoriales de Blender y seguridad informática: http://www.youtube.com/channel/UC-aqdNdOiLJLBnP1tBSUNAA
    Twitter: @3jkernel
    Facebook: https://www.facebook.com/pages/3J-Ke...8823553?ref=hl
    Página web: http://www.3jkernel.com
    Google+: https://plus.google.com/114048629905453440423/posts

  2. #2
    Senior Member Avatar de Soliman
    Fecha de ingreso
    Aug 2004
    Ubicación
    Torrevieja-Alicante
    Mensajes
    9,865

    Re: Animación en base a lista de coordenadas

    Cita Iniciado por 3J Kernel Ver mensaje
    Buenos días chic@s:
    Me han hecho una pregunta bastante curiosa e interesante.Os la cito:
    "Tengo un archivo de texto con una lista de coordenadas x y y. En una columna tengo los valores de x y en otra los valores de y. ¿Se puede hacer que blender, o cualquier otro programa, lea el archivo de texto y que haga la animación de un objeto de acuerdo a estas coordenadas?. Cada renglón del archivo de texto sería un fotograma"
    ¿Qué opináis vosotros? Un saludo.
    A ver, con python se puede hacer casi todo, aunque de la forma que explicas, tal vez no; sería un poco más complicado.
    Algún programador te puede responder...

    Y en último caso, lo puedes poner a mano... (a no ser que sea una lista muy larga, claro).

    Animación en base a lista de coordenadas-localizacion.jpg

  3. #3
    Senior Member Avatar de Soliman
    Fecha de ingreso
    Aug 2004
    Ubicación
    Torrevieja-Alicante
    Mensajes
    9,865

    Re: Animación en base a lista de coordenadas

    Mira este script, el cual te genera una esfera con una animación según las coordenadas que tiene puestas.

    http://blenderscripting.blogspot.com...t-just-so.html

    Código:
    import bpy
    positions = (0,0,2),(0,1,2),(3,2,1),(3,4,1),(1,2,1)
    start_pos = (0,0,0)
    bpy.ops.mesh.primitive_uv_sphere_add(segments=32, size=0.3, location=start_pos)
    bpy.ops.object.shade_smooth()
    ob = bpy.context.active_object
    frame_num = 0
    for position in positions:
    bpy.context.scene.frame_set(frame_num)
    ob.location = position
    ob.keyframe_insert(data_path="location", index=-1)
    frame_num += 10

  4. #4
    Senior Member Avatar de Juani
    Fecha de ingreso
    Jul 2015
    Ubicación
    Montilla (Córdoba)
    Mensajes
    377

    Re: Animación en base a lista de coordenadas

    Si se puede, aprovechando el script que ha dejado Soliman para la inserción de los fotograma clave para la animación, he hecho un blend el cual toma las coordenadas de
    mi archivo pero no de texto, es un csv, es más cómodo para mi porque Python tiene un módulo que se llama csv para leer y manipular este tipo de archivos, en archivos de texto hay que transformar más cosas, a la hora de leerlo no hay problema, pero a la hora de usar los datos es más tedioso, en los archivos csv los campos que están separados por coma son leídos por Python como valores independientes dentro de una lista.Si tienes un archivo texto solo tienes que abrirlo y guardarlo con extensión .csv.Dejo el Blend y el archivo csv para que lo pruebes, en la escena solo hay una cámara y una luz, la puedes seleccionar y hacer correr el script y te hará la animación.Si quieres puedes añadir cualquier objeto y ejecutar el script, este hará una animación a cualquier objeto que este seleccionado.
    Insertará tantos keyframes como líneas de texto haya en el archivo, en este ejemplo hay 5 líneas y el script insertará un fotograma clave cada 10 frames hasta 5 en total.
    Ah, el archivo csv como el de texto tiene que estar en el mismo directorio desde donde abras este blend, si no habría que hacerlo de otra manera, especificando rutas y eso.
    Un saludo.

    P.D. No puedo subir el archivo en csv lo he subido en txt, lo tienes que cambiar, solo lo abres y lo guardas como csv.
    Archivos adjuntados Archivos adjuntados

  5. #5
    Senior Member Avatar de Soliman
    Fecha de ingreso
    Aug 2004
    Ubicación
    Torrevieja-Alicante
    Mensajes
    9,865

    Re: Animación en base a lista de coordenadas

    Algo nuevo que aprendemos....

    Por cierto, si no te deja subirlo como CSV lo que se puede hacer es comprimirlo en ZIP
    Los archivos zip sí que los permite la página, vale para cualquier tipo de archivo, ya sea texto o ejecutables.

  6. #6
    Senior Member Avatar de Soliman
    Fecha de ingreso
    Aug 2004
    Ubicación
    Torrevieja-Alicante
    Mensajes
    9,865

    Re: Animación en base a lista de coordenadas

    Por cierto, solo funciona con dos coordenadas o se puede poner la tercera coordenada también?

    Código:
    import bpyimport csv
    
    
    ob = bpy.context.active_object
    frame_num = 0
    with open('LeerConBlender.csv') as csvarchivo:
        entrada = csv.reader(csvarchivo)
        for reg in entrada:
           
            x = reg[0]
            y = reg[1]
            z = 2.0
            positions = [(float(x),float(y),z)]
            for position in positions:
                bpy.context.scene.frame_set(frame_num)
                ob.location = position
                ob.keyframe_insert(data_path="location", index=-1)
                frame_num += 10

    Editado:
    Lo acabo de probar y con este script me funciona en tres coordenadas.

    Código:
    import bpyimport csv
    
    
    ob = bpy.context.active_object
    frame_num = 0
    with open('LeerConBlender.csv') as csvarchivo:
        entrada = csv.reader(csvarchivo)
        for reg in entrada:
           
            x = reg[0]
            y = reg[1]
            z = reg[2]
            positions = [(float(x),float(y),float(z))]
            for position in positions:
                bpy.context.scene.frame_set(frame_num)
                ob.location = position
                ob.keyframe_insert(data_path="location", index=-1)
                frame_num += 10
    Y este texto

    Código:
    1,1,2
    5,3,8
    8,-1,3
    4,4,5
    2,9,0
    9,1,-4
    Última edición por Soliman; 07-08-2016 a las 21:08

  7. #7
    Senior Member Avatar de Juani
    Fecha de ingreso
    Jul 2015
    Ubicación
    Montilla (Córdoba)
    Mensajes
    377

    Re: Animación en base a lista de coordenadas

    Claro Soliman, no me ha dado tiempo a responderte y ya lo habías visto, te estás haciendo un crack de los script, jajaja.Puse las dos coordenadas por no liar la cosa, puedes poner los campos que quieras lo que tienes que saber es para que los vas a usar.
    Un saludo.

  8. #8
    Senior Member Avatar de 3J Kernel
    Fecha de ingreso
    Sep 2012
    Mensajes
    274

    Re: Animación en base a lista de coordenadas

    Muchas gracias a los dos por resolver la duda. Un saludo.
    Canal de Youtube con tutoriales de Blender y seguridad informática: http://www.youtube.com/channel/UC-aqdNdOiLJLBnP1tBSUNAA
    Twitter: @3jkernel
    Facebook: https://www.facebook.com/pages/3J-Ke...8823553?ref=hl
    Página web: http://www.3jkernel.com
    Google+: https://plus.google.com/114048629905453440423/posts

Temas similares

  1. Hola he creado una pequeña animación de una placa base.
    Por xavimacia en el foro Cortos de Animación
    Respuestas: 0
    Último mensaje: 24-07-2014, 13:27
  2. aYUDa: Copiar una lista de animacion de un personaje y pasarlo a otro
    Por Mariela_carocielli en el foro Animación y Rigging
    Respuestas: 4
    Último mensaje: 02-07-2013, 22:44
  3. animacion en base a proximidad de otro objeto
    Por jgbianchi en el foro Animación y Rigging
    Respuestas: 2
    Último mensaje: 30-10-2011, 18:55
  4. animacion de objeto en base a la cercania con otro
    Por jgbianchi en el foro Animación y Rigging
    Respuestas: 0
    Último mensaje: 30-10-2011, 01:27
  5. Respuestas: 4
    Último mensaje: 23-05-2009, 12:25

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •