O Bake Sound to F-Curves permite converter um ficheiro de som numa F-Curve, numa curva do Graph Editor. Imagine um cubo que muda de cor ou aumenta de dimensão de acordo com a Wave de um som.
A primeira tarefa é especificar a influência da F-Curve. Vai utilizar a F-Curve para definir o quê? Por exemplo, se pretende que o som sirva para mudar o material de um objeto: atribua um material ao objeto e insira uma keyframe no material. Se pretender utilizar o som para alterar a dimensão do objeto, insira uma keyframe no Scaling.
A segunda tarefa é inserir o som na curva pretendida. No janela Graph Editor, escolha a curva, aceda ao menu Key e escolha a opção Bake Sound to F-Curves. Depois é só escolher o ficheiro de som pretendido.
Atenção, o som só vai ser aplicado à curva selecionada. Se tiver escolhido a curva do Red (material RGB) ou do X Scale o seu objeto vai modificar apenas o valor de Red ou da escala no eixo X. Se pretende utilizar o som para influenciar mais curvas, pode repetir o processo ou seleciona previamente as várias curvas que pretende utilizar.
1. Vamos utilizar o cubo inicial e controlar o seu redimensionamento através do som
2. Selecione os 4 vértices da base do cubo. Pressione Shift+S para abrir menu Snap e escolha Cursor To Selected para o cursor 3D colocar-se no centro dos 4 vértices.
3. Em Object Mode, escolha agora a opção Origin To 3D Cursor para a origem do cubo ser colocada no centro da sua base. Deste modo, quando redimensionarmos o cubo em Z, este vai apenas aumentar numa direção.
4. Introduza uma keyframe de Scaling para criar um canal no Graph Editor.
5. No Graph Editor, escolha o canal de Scaling em Z. Nós apenas pretendemos que o cubo aumente a sua altura (estique) de acordo com o som. Depois, no menu Key, selecione a opção Bake Sound To F-Curves.
6. Navegue até ao ficheiro de som que pretende utilizar, selecione o ficheiro e pressione o botão Bake Sound To F-Curves.
7. A curva azul corresponde ao canal de Scaling em Z. As ondas correspondem à wavesound do ficheiro de som.
8. Para terminar, utilizamos dois arrays no cubo para criar uma visualização tipo equalizador :)
Originalmente, as curvas criadas deste modo não são editáveis. No entanto, é possível fazer unbake através de scripting. O script abaixo (disponível aqui) transforma a curva numa action, criando keyframes que podems ser depois manipuladas.
1. Selecione a curva em que pretende fazer unbake.
2. Abra uma nova janela do tipo Text Editor. Faça New para criar um novo bloco de texto.
3. Copie e cole o texto abaixo nessa janela.
##################################### # unbake ¿? f-curve to a new action # ##################################### import bpy obj = bpy.context.object for c in obj.animation_data.action.fcurves: if c.sampled_points and c.select: obj.animation_data.action = bpy.data.actions.new(name='Lot_of_Keys') fcu = obj.animation_data.action.fcurves.new(data_path=c.data_path, index=c.array_index) sam = c.sampled_points fcu.keyframe_points.add(len(sam)) for i in range(len(sam)): w = fcu.keyframe_points[i] w.co = w.handle_left = w.handle_right = sam[i].co
4. No menu Text, escolha a opção Run Script. Ou então clique no botão direito do rato e escolha a mesma opção. Ou então utilize o atalho ALT+P.
5. A curva deverá ter sido substituída por uma linha de keyframes.