-
Notifications
You must be signed in to change notification settings - Fork 6
/
bake_sounds.html
222 lines (146 loc) · 7.91 KB
/
bake_sounds.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="description" content="Manual Livre de Blender" />
<meta name="keywords" content="Blender, Free Software, Libre Software, Open Source, Free Culture, Animation, 3D, Animação, Illustration, Ilustração, Education, Educação, Software Livre, VFX, Efeitos especiais, Visual Effects, CGI, 3D printing, impressão 3D">
<meta name="author" content="nafergo" >
<meta charset="UTF-8">
<title>Manual Livre de Blender</title>
<link rel="icon" type="image/x-icon" href="favicon.ico" />
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="css/bootstrap.min.css">
<!-- custom css -->
<link rel="stylesheet" href="css/mine.css" media="all" />
</head>
<body>
<div id="topo"></div>
<!-- início do menu -->
<div data-include="menu.html"></div>
<!-- fim do menu -->
<div class="container-fluid">
<div class="row">
<div class="col-xs-10 col-xs-offset-1">
<h1 class="titulopagina">Bake Sound to F-Curves <small>para criar animação a partir de som</small></h1>
<dl class="dl-horizontal">
<dt>Versão</dt>
<dd>>= 2.75</dd>
<dt>Renderizador</dt>
<dd>Todos</dd>
</dl>
<div class="page-header">
<h2>Introdução</h2>
</div>
<p>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.</p>
<div class="page-header">
<h2>Animar material</h2>
</div>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<img src="img/bake_sound/2algumas_dicashtml228166d0.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<div class="page-header">
<h2>Animar Scaling</h2>
</div>
<p>1. Vamos utilizar o cubo inicial e controlar o seu redimensionamento através do som</p>
<img src="img/bake_sound/1.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<p>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.</p>
<img src="img/bake_sound/2.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<p>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. </p>
<img src="img/bake_sound/3.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<p>4. Introduza uma keyframe de Scaling para criar um canal no Graph Editor.</p>
<img src="img/bake_sound/4.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<p>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.</p>
<img src="img/bake_sound/5.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<p>6. Navegue até ao ficheiro de som que pretende utilizar, selecione o ficheiro e pressione o botão Bake Sound To F-Curves.</p>
<img src="img/bake_sound/6.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<p>7. A curva azul corresponde ao canal de Scaling em Z. As ondas correspondem à wavesound do ficheiro de som.</p>
<img src="img/bake_sound/7.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<p>8. Para terminar, utilizamos dois arrays no cubo para criar uma visualização tipo equalizador :)</p>
<img src="img/bake_sound/8.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<img src="img/bake_sound/bake.gif" alt="..." class="img-responsive img-thumbnail center-block">
<div class="page-header">
<h2>Unbake</h2>
</div>
<p>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 <a href="http://blenderartists.org/forum/showthread.php?221387-resample-baked-f-curve">aqui</a>) transforma a curva numa action,
criando keyframes que podems ser depois manipuladas.</p>
<p>1. Selecione a curva em que pretende fazer unbake.</p>
<p>2. Abra uma nova janela do tipo Text Editor. Faça New para criar um novo bloco de texto.</p>
<p>3. Copie e cole o texto abaixo nessa janela.</p>
<pre>
#####################################
# 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
</pre>
<p>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.</p>
<p>5. A curva deverá ter sido substituída por uma linha de keyframes.</p>
</div>
</div>
</div> <!-- /container -->
<!-- início do footer -->
<div data-include="footer.html"></div>
<!-- fim do footer -->
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="js/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/jquery.scrollTo.min.js"></script>
<script src="js/jquery.localScroll.min.js"></script>
<script src="js/csi.min.js"></script>
<!-- Latest compiled and minified JavaScript -->
<script src="js/bootstrap.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("[rel=tooltip]").tooltip();
});
</script>
<script type="text/javascript">
jQuery(function( $ ){
/**
* Most jQuery.localScroll's settings, actually belong to jQuery.ScrollTo, check it's demo for an example of each option.
* @see http://flesler.demos.com/jquery/scrollTo/
* You can use EVERY single setting of jQuery.ScrollTo, in the settings hash you send to jQuery.LocalScroll.
*/
// The default axis is 'y', but in this demo, I want to scroll both
// You can modify any default like this
$.localScroll.defaults.axis = 'y';
/**
* NOTE: I use $.localScroll instead of $('#navigation').localScroll() so I
* also affect the >> and << links. I want every link in the page to scroll.
*/
$.localScroll({
target: 'body', // could be a selector or a jQuery object too.
queue:true,
duration:1000,
hash:true,
onBefore:function( e, anchor, $target ){
// The 'this' is the settings object, can be modified
},
onAfter:function( anchor, settings ){
// The 'this' contains the scrolled element (#content)
}
});
});
</script>
</body>
</html>