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.
Como guardar propiedades de objetos en key-frames con python
-
- Mensajes: 9
- Registrado: Vie Sep 01, 2017 5:21 pm
- Nombre: Luis Gutierrez
Re: Como guardar propiedades de objetos en key-frames con py
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.
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
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.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.
-
- Mensajes: 9
- Registrado: Vie Sep 01, 2017 5:21 pm
- Nombre: Luis Gutierrez
Re: Como guardar propiedades de objetos en key-frames con py
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.