New Kinoraw Addon for Blender VSE

full_panelI’m back with a new addon for the VSE. It’s a new version of the addon Extra Sequencer Actions mixed with JumpToCut, and some other utilities from the kinoraw project (Eco, Audio and Proxy tools)

It’s a compilation of tools but also a new approach to VSE UI. This is not a propossal to change the UI. I’m comfortable with the current configuration of the VSE (tabs on the side panel would be ideal, but not essential)

There is a development version in this git repo:
https://github.com/kinoraw/kinoraw_tools

The latest stable version is in this other repo, along with a copy of some other scripts i use in the VSE:
https://github.com/kinoraw/kinoraw_repo

The documentation (not still completed) is here:
https://github.com/kinoraw/kinoraw_t…ster/README.md

Proxy Tools and Audio Tools are not completely documented because i want to change a few things (ie: to reflect gooseberry news on proxys). Random Editor and glitch panel are very experimental.

Herramienta de montaje aleatorio en Blender VSE

Recently I’ve been editing a couple of videos for the Telenoika cultural association. The assignment consisted in a series of videos that document one of the activities of the collective. For it’s implementation I’ve developed a random editing script.

Continue reading

nuevos addons para el VSE publicados

Despues de unos meses estudiando e impartiendo talleres de video e interactivos con blender, van saliendo algunos frutos en forma de código.

Acabo de publicar dos nuevos scripts, uno para gestionar proxies existentes cerca del clip importado, y otro para importar todos los clips de una misma carpeta, incluso recursivamente
http://wiki.blender.org/index.php/Exten … ions_Proxy
http://wiki.blender.org/index.php/Exten … rsive_Load

tambien otro script para crear efectos de eco en el editor de blender
http://wiki.blender.org/index.php/Exten … uencer/Eco

 

y de paso recordar que hay unos cuantos addons ahí fuera para ayudar con la edición de video en blender, mejor conocerlos antes de empezar con ello.

jump to cut (para saltar a los puntos de edición y otras herramientas)
http://wiki.blender.org/index.php/Exten … ump_to_cut

Una compilación de herramientas (place, insert, slide, fade, distribute…) indiscutiblemente necesarias.
http://wiki.blender.org/index.php/Exten … er_Actions  (por cierto, con la sincronización de A/V recien corregida…)

Descartando frames repetidos con un script en Python

A veces uno necesita hacer alguna operación con imagenes y no encuetra software que pueda ayudarle. En concreto a mi me ha surgido la necesidad de poder revisar una secuencia de frames y eliminar los frames repetidos.

La solución más sencilla parecía hacer un script con python, uno de esos homúnculos modernos que realizan tareas automáticas para su creador. Y un día despues, parece que lo ha sido.

El otro día al volver de telenoika de debatir el asunto con eduard, me puse a buscar la manera de abordar el tema con python (es mi primera incursión mas alla de leer/escribir ficheros txt y lejos de la api de blender).

Grata sorpresa número uno: La famosa Python Imaging Library (PIL) acude al rescate. Una manera elegante y simple de manejar imagenes con Python:

import Image

im = Image.open(“lena.ppm”)

y ya tenemos la imagen ahí.

Grata sorpresa número dos: El modulo ImageChops, una colección de operaciones clasicas, entre ellas la que yo necesito para comparar frames: subtract (diferencia)

import ImageChops


ImageChops.subtract(image1, image2, scale, offset) => image

Por lo que parece la libreria PIL esta incluida de serie en python, asi que directamente, me pude poner a hacer un sketch del script en la consola. Unas cuantas busquedas en google, que casi siempre acaban resueltas en stackoverflow.com y el script está funcionando.

Es una solución un poco engorrosa, pero es lo que tiene el spaguetti code…  En cuanto aprenda a guardar frames sueltos en el gstreamer espero no tener que usarla más.

INSTRUCCIONES:

ejecutar el script dentro de una carpeta que contenga frames numerados consecutivos con extension .jpg (el script tiene apenas 50 lineas y no caben florituras) si no se cumplen las condiciones fallará.
Tambien se puede meter el script en la carpeta de nautilus scripts y ejecutar en una carpeta de nautilus tras seleccionar los ficheros a cribar.

El script es muy simple, nada de multithreat. Es bueno tenerlo en cuenta, si quereis usar dos o mas cpus para calcular, habrá que dividir la tarea en dos o mas carpetas y lanzarla dos o mas veces…
Enlaces:

http://www.pythonware.com/library/pil/handbook/index.htm

http://www.pythonware.com/library/pil/handbook/imagechops.htmdiference-frames3.py

Jump to Cut 5, actualizado para Blender 2.62

(una nueva entrega de mi revancha personal contra FCP)

Acabo de actualizar a la quinta versión mi script JumptoCut

Este script sirve para facilitar el manejo del VSE de Blender. El VSE es el Video Sequence Editor, o lo que es lo mismo, el editor de video que lleva incorporada la suite 3d.

La nueva version funciona con Blender 2.62 r44539

He arreglado un monton de pequeños errores. Ya no saldrán mas feos mensajes de error mientras se usa. (espero )

He eliminado finalmente algunas opciones:

Ya no hay botones para saltar de key en key, se puede usar para ello el cursor arriba-cursor abajo que blender tiene configurado por defecto.

Tampoco esta el extract audio. No funcionaba bien y lo intentare rehacer en un script por separado.

Y por fin al saltar con cut next, detecta cuando llega al ultimo frame del timeline y se mantiene mostrando ese frame, y no en el frame vacio final, como hacia hasta ahora.

Cut previous / Cut next

The timeline cursor jumps from edit point to edit point. Edit point is any point of entry or departure of a clip, or the cutting start and end. If you could be assigned as shortcut keys “cursor up” and “cursor down” these functions, you would have a similar behavior to the final cut, but those two keys are predefined by blender to jump to keyframes forward and backward … It really works well for me assigning keys Q and W.

The Cut next operator detects the tail of the timeline and remains showing the last frame, not the black of the next. Be aware of this when you set up the end frame.

Marker Previous / next :

As you can guess, jump from marker to marker.

Source In and Source Out:

Create a marker IN and a marker OUT where the timeline cursor are. Two specific markers that can then be used for editing.

Mark in & out to active strip:

Create a marker IN at the selected strip start frame and a marker OUT at the selected strip end frame.

Trim to in & out:

Trim (soft cut) the selected clip on both sides to adhere to the In and Out markers, as long as the clip is within that range. If not, or in absence of In and Out, does nothing. I.E. It is a quick option to cut many clips at the same duration.

Set Start & End:

Set scene start and end frames with the same values of IN and OUT markers.

Trim & Meta-Copy:

This operator makes a metastrip with all selected items, and trim them to in and out, There is not an insert edit, but also streamlines the tasks a bit …

If there is no IN and OUT markers, the meta is not trimmed.

Meta-Paste:

Paste the clipboard content aligned at the timeline cursor.

 

Documentación:

http://wiki.blender.org/index.php/Extensions:2.5/Py/Scripts/Sequencer/Ju…

Repositorio:

https://projects.blender.org/tracker/index.php?func=detail&aid=24279&group_id=153&atid=467

Soporte y opiniones en este blog o tambien en:

http://www.blenderheads.org/forums/es/viewtopic.php?f=6&t=699

or there:

http://blenderartists.org/forum/showthread.php?222280-VSE-addon-Jump-to-Cut-4-%28speed-up-video-editting%29&p=1884936#post1884936

Jump to Cut 4

(Segunda entrega de mi revancha personal contra FCP)

Acabo de actualizar a la cuarta versión mi script JumptoCut para facilitar el manejo del VSE de Blender. El VSE es el Video Sequence Editor, o lo que es lo mismo, el editor de video que lleva incorporada la suite 3d.

La próxima Open Movie de la Blender Foundation promete ser una película de las de verdad de las de claquetas y actores con VFX integrados, demostrando las capacidades de Blender frente a herramientas privativas como Nuke o FinalCutPro+Color.

Mientras los desarrolladores de blender deciden que hacer con el editor de video, el addon JumptoCut pretende atajar algunos accesos a opciones comunes en todos los editores de video y orientar hacia una “filosofía de montaje” un poco diferente de lo que los editores de video tradicionales nos tienen acostumbrados.

El addon funciona ya perfectamente con la última versión de blender 2.5.7 La mayoría de los botones hablan por si mismos, pero ahí va una explicación…

 

Cut previous / Cut next:  

El cursor del timeline salta de punto de edición a punto de edición. Punto de edición es cualquier punto de entrada o  salida de un clip, o sea, su corte de inicio y su final. Si pudieseis asignar como atajo de teclado las teclas de “cursor arriba” y “cursor abajo” a estas funciones, tendríais un comportamiento similar al del final cut, pero esas dos teclas en blender estan predefinidas para saltar 10 fotogramas alante y atras… A mi me funciona muy bien asignando las teclas Q y W.

Source In y Source Out:   

Crea un marker IN y un marker OUT donde este el cursor del timeline. Son dos marcadores especificos que se pueden usar luego para tareas de edición. Tambien hay un pequeño conflicto con los atajos de teclado, lo ideal para montadores seria asignarlos a las teclas I y O, pero la O esta reservada por blender (no se aún para qué), por lo que yo particularmente me conformo con U e I.

Mark in & out to active strip:  

Recorta (soft cut) el clip seleccionado, por ambos lados, hasta ceñirse a los marcadores In y Out, siempre y cuando el clip este dentro de ese rango. En caso contrario, o de no existir In y Out, no hace nada. Es una opcion rápida para recortar muchos clips a la misma duración.

Marker previous / Marker next      &       Key previous / Key next:

Tal como se puede intuir, saltar de marcador a marcador en el primer caso, y de keyframe a keyframe en el siguiente caso. Tener esos botones al lado acelera bastante el trabajo de edición.


Extract audio from meta:

Esta función viene de un viejo sueño quizá un tanto estúpido, poder editar primero un corto y sincronizar las claquetas después. Es una tontería, pero es posible gracias a los Metastrips de Blender. Un Metastrip es como una secuencia anidada de final cut (aunque mas simple en su uso) y parecido también a las composiciones anidadas de after effects.

Tan solo con seleccionar y pulsar M agrupas varios strips (clips de video, audio, secuencias, transiciones, efectos…) en uno solo y a partir de ese momento lo manipulas como un solo clip. Si pulsas alt+M lo desagrupas de nuevo en el lugar que este.

Pulsando Tabulador entras en el metastrip y lo editas internamente (por ejemplo sustituyendo el audio de camara por el bueno y sincronizando)

Extrae los clips de audio que no esten silenciados del interior del metastrip seleccionado. Los coloca encima del metastrip y silencia los del interior (por si hay que rectificar algo mas adelante). Es recomendable preparar un poco el metastrip para esta operación. Yo hago lo siguiente:

  • selecciono el meta y le marco el In y Out con el boton “Mark in & out to active strip”
  • entrar dentro y recortar los audios al rango del in y out, con el boton “Trim to in & out”
  • ocultar los audios que no esten dentro del rango in y out (porque puede que esten activos pero no se esten usando)
  • salir del meta y pulsar “Extract audio from meta”

Con esto los audios estarán ya fuera del meta y listos para ser alineados con los demas audios, alargados si es posible, y fundidos con los demas. Asi ya se pueden poner en canales separados y exportarlos para llevarlos al audacity, o de paseo por el campo.

Meta-Copy     &      Meta-Paste:

Son variantes del copy-paste de toda la vida, pero con la ventaja de que, al copiar, primero convierte en metastrip todos los elementos seleccionados, y al pegar, pega el contenido del portapapeles alineandolo en el cursor del timeline. No es un insert edit, pero agiliza un poco tambien las tareas…

 

Documentación:

http://wiki.blender.org/index.php/Extensions:2.5/Py/Scripts/Sequencer/Ju…

Repositorio:

https://projects.blender.org/tracker/index.php?func=detail&aid=24279&group_id=153&atid=467

Soporte y opiniones en este blog o tambien en:

http://www.blenderheads.org/forums/es/viewtopic.php?f=6&t=699

or there:

http://blenderartists.org/forum/showthread.php?222280-VSE-addon-Jump-to-Cut-4-%28speed-up-video-editting%29&p=1884936#post1884936

 

EL SCRIPT AQUÍ: sequencer_jumptocut4.py

Achicorre en android

Ya tengo una demo del juego que empece a programar hace un par de dias, gracias a los dibujos que tenia ya hechos del achiforme corriendo, y sobre todo a processing 1.5.1, con capacidad (beta) para compilar paquetes android.

El origen del fondo, y una gran introducción a los parametros necesarios han salido de:

http://www.openprocessing.org/visuals/?visualID=28294 la galería de código de alex rabaa

Tambien utiliza la libreria Ketai, para acceder a los sensores del dispositivo android.

El juego por ahora introduce la aceleración del movil en el movimiento del personaje, desplazandolo todo el rato. Al tapear sobre la pantalla, el achiforme salta, y sigue corriendo… Simboliza al corredor de fondo eterno, el achiforme moebius-clark.

O eso es lo que debería ser.

Si vuestra pantalla tiene mucha resolución puede que el muñeco se vea pequeño… son movidillas con  las que me es dificil lidiar aún.

Podeis descargaros el fichero achirun1.apk de abajo.

Si alguien lo prueba que me diga a cuantos fps le funciono!

(y con que movil :)

Y el código tambien esta ahí, aunque es un poco patatero, caótico y molaría convertir todo eso en objetos y clases… ese sin duda es el próximo objetivo.

En el htc hero va a 11-12 fps con algunas congestiones, pero creo que puede ser suficiente… a ver que tal cuando le meta más imagenes y colisiones…

 

ZIP con los dos ficheros (código y apk)—–>   achirun_android.zip

Un script para crear grupos de letras o palabras en Blender

Este es un sencillo script para automatizar la creación de grupos de letras, o palabras, en Blender 2.5.4.

Abre un area de edicion de textos en Blender, pega el codigo y ejecutalo (boton Run Script)

Ahi va un tutorial mudo y bastante simplon sobre como empezar…

 

El script creara un grupo de objetos del tipo Text.curve con las palabras deseadas.

 

#----------------------------------------------------------# File abc.py

#———————————————————-

import bpy

import math

from math import pi

def run(origin,text):

# Create and name TextCurve object

bpy.ops.object.text_add(

location=origin,

rotation=(pi/2,0,pi))

ob = bpy.context.object

ob.name = “tcuText”

tcu = ob.data

tcu.name = ‘tcuData’

# TextCurve attributes

tcu.body = text

tcu.font = bpy.data.fonts[0]

tcu.offset_x = 0

tcu.offset_y = 0

tcu.shear = 0

tcu.space_character = 1

tcu.size = 3

tcu.space_word = 0

# Inherited Curve attributes

tcu.extrude = 0

#tcu.back = Truea

def abecedario():

text=” a b c d e f g h i j k l m n o p q r s t u v w x y z ”

text=text+text.swapcase()+” 0 1 2 3 4 5 6 7 8 9″

text=text.split()

return text

def hacergrupo():

bpy.ops.object.select_all()

bpy.ops.object.select_all()

bpy.ops.object.group_add()

bpy.ops.group.objects_add_active()

if __name__ == “__main__”:

text=abecedario()

for i in text:

run((0,0,0),i)

hacergrupo()

La funcion run la encontré bien documentada en “Code Snippets…” que ThomasL publico en blender artists http://blenderartists.org/forum/showthread.php?t=193908 . De todos modos algunas cosas han cambiado en la API de Blender desde entonces. Mi script por ahora funciona en Blender 2.5.4 r32330

Las otras dos funciones son bien sencillas. La primera crea una cadena con las letras, y luego se anade las mismas letras en mayusculas, a traves del metodo swapcase(), y los numeros.

text.split() devuelve una lista con los elementos separados por elementos en blanco. Si en text incorporamos un parrafo de un libro, obtendremos todas las palabras del parrafo separadas.

Una vez ejecutado la funcion run para todos los elementos de text, habremos creado otros tantos objetos en blender con otras tantas text.curve enlazadas, cada una con la cadena que corresponda.

La funcion makegroup() selecciona todos los objetos.

Aqui el operador bpy.ops.object.select_all()funciona como si pulsasemos A en el visor3D, deselecciona y selecciona todo alternativamente) crea un grupo nuevo y añade los elementos activos al grupo. Los operadores a veces son muy sencillos de usar, pero a veces se vuelven un autentico infierno :P

 

Descarga aquí el fichero: acb.py