Página 1 de 1

Como guardar propiedades de objetos en key-frames con python

Publicado: Jue May 10, 2018 2:08 pm
por Luis_Gutierrez
Cuando cambio el material de un objeto como puedo guardar esa acción en un keyframe, ya que la idea es que durante la animación los objetos cambien de material repetidas veces. Los materiales tienen datos de color y transparencia. Esto desde un script en lenguaje Python. En caso de que no sea posible, como podría reproducir el efecto de cambio de color en la animación?

Muchas gracias.

Re: Como guardar propiedades de objetos en key-frames con py

Publicado: Jue May 10, 2018 3:18 pm
por dezr
Hola Luis no se si te he entendido bien, pero claro que puedes realizar una animación, creando keyframes en los materiales, solo debes presionar clic derecho sobre el la propiedad diffuse y presionas en la lista insert keyframe y en todas las propiedades que quieras animar haces lo mismo.
Con esta instrucción puedes hacer que cambie el color de un objeto bpy.context.object.active_material.diffuse_color = (0.8, 0.101614, 0.253456)

Para cambiar el color a varios objetos puedes usar algo como lo siguiente

Entonces haces un for en el cual vas a recorrer todos los objetos seleccionados en la escena
y luego le dices que a todos los objetos activos le cambies el color,
en este caso los valores respectivamente son r,g,b, lo mismo puedes hacer para cambiar cualquier propiedad solo es que cambies en el código por la propiedad que te interesa cambiar y así lo estarías haciendo a todos los objetos

for objeto in bpy.context.selected_objects:
objeto.active_material.diffuse_color = (1.0, 2.0, 1.3)
Estos valores los cambias por el color que quiere que tenga los objetos, por ejemplo si quieres que se vuelvan trasparentes seria
bpy.context.object.active_material.alpha = 0.886364

Espero haberle podido ayudo, que este bien.

Re: Como guardar propiedades de objetos en key-frames con py

Publicado: Jue May 10, 2018 3:31 pm
por dezr
Luis_Gutierrez escribió:Cuando cambio el material de un objeto como puedo guardar esa acción en un keyframe, ya que la idea es que durante la animación los objetos cambien de material repetidas veces. Los materiales tienen datos de color y transparencia. Esto desde un script en lenguaje Python. En caso de que no sea posible, como podría reproducir el efecto de cambio de color en la animación?

Muchas gracias.
Otra cosa Luis si quieres mirar la animación de un cambio de material debes ir a las propiedades de viewport shading Texture o material o sino hacer un render.

Re: Como guardar propiedades de objetos en key-frames con py

Publicado: Mar May 15, 2018 10:38 am
por Luis_Gutierrez
dezr escribió:Hola Luis no se si te he entendido bien, pero claro que puedes realizar una animación, creando keyframes en los materiales, solo debes presionar clic derecho sobre el la propiedad diffuse y presionas en la lista insert keyframe y en todas las propiedades que quieras animar haces lo mismo.
Con esta instrucción puedes hacer que cambie el color de un objeto bpy.context.object.active_material.diffuse_color = (0.8, 0.101614, 0.253456)

Para cambiar el color a varios objetos puedes usar algo como lo siguiente

Entonces haces un for en el cual vas a recorrer todos los objetos seleccionados en la escena
y luego le dices que a todos los objetos activos le cambies el color,
en este caso los valores respectivamente son r,g,b, lo mismo puedes hacer para cambiar cualquier propiedad solo es que cambies en el código por la propiedad que te interesa cambiar y así lo estarías haciendo a todos los objetos

for objeto in bpy.context.selected_objects:
objeto.active_material.diffuse_color = (1.0, 2.0, 1.3)
Estos valores los cambias por el color que quiere que tenga los objetos, por ejemplo si quieres que se vuelvan trasparentes seria
bpy.context.object.active_material.alpha = 0.886364

Espero haberle podido ayudo, que este bien.


Que tal dezr, muchas gracias por tu respuesta; lo que sucede es que toda la animación la deseo crear y ejecutar desde un script Python, así que cuando quiero cambiar un material quiero que esta acción quede guardada en una llave. Así que no tengo la posibilidad de guardar los keyframes con ayuda del mouse. Quisiera saber si esta acción, de insertar un keyframe en la propiedad deseada, se puede realizar a cabo desde código Python. En específico la propiedad de color y transparencia.

Muchas gracias.