博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ZAM 3D 制作简单的3D字幕 流程(二)
阅读量:6574 次
发布时间:2019-06-24

本文共 13264 字,大约阅读时间需要 44 分钟。

         原地址:

         文中表述仅为本人理解,若有偏差和错误请指正!

         接着  。本篇将是ZAM 3D制作动画的一些关键点。

         我们可以将各个字体工具自己的喜好填充好Materials,当然,也可以采用默认,一般默认灯光下是偏金黄色的,这个可以在左下角进行调节。左下第一个是当前选中的灯光设置,第二个则是全局的灯光设置。(如果你拖动了布局那就另当别论了。)比如我这里将字体染成了葫芦娃的红橙黄绿蓝靛紫以及葫芦小金刚的白色(注意,字体分为主体和阴影两个部分,我们阴影统一再拖一次白色),最后大概是这个样子的:(在不同灯光和角度下可能显示效果会有所不同)

        然后点击开始正式制作:

        将Zoom跳成最大值,将Loop关闭。然后将当前时间轴拖到2.00秒处:(这里有个很坑爹的设定,第一次如果你没有任何帧的话,你需要单价网格的表头才能添加,也就是写着1.00 2.00 那一行。或者除非已经从下面的动画里面附加了一个在某各元素上。)

 

       接着就是和Blend的操作差不多,在3.00秒这一帧下,我们将各个字拖动到黄框显示区域的中间依次摆放,然后点击播放,你会发现,很简单的字幕动画已经完成了。这个时候就可以选择导出XAML了,不过这只是最基本的。

       接着我们打开动画路径,这个时候我们分别选中各个汉字,会发现形如下面的路径:(可以发现这个"看"是从右下角到目标位置的一条直线,很明显其他元素也是从起始位置到结束位置的直线。)

 

     很明显,这样的话各个路径会项目遮挡,而且并不怎么优雅,我们需要手动的拖动控制点和时间轴来把它们的运动轨迹给错开,这个就凭借自己的喜好来做就可以了。注意的是,绿色点中间的蓝色点就是中心点,当我们确定好了中心点的起止位置后,最好不要随意拖动,不然就会变成和意料中不一样的动画效果了。当然,如果弄拙成巧了那也未必不是一件喜事了。要点是尽量只拖动绿色的控制点来改变路径形状,而拖动蓝色的中心点来改变起止位置。当然,无论是控制点还是中心点,当你选中后都是红色的。然后左侧也有一些曲线的类型和属性可供选择。我这里每个字的拖动路径大概是这样子的:

 

  

  

   

 

       此刻动画看起来应该是像这个样子的:

 

        这个时候如果我们想在进一步的搞一些小花样,比如我们想在某个时候,比如上面动画完成后让某个字跳跃并旋转再回到老位置,该怎么办呢?实际上很简单,我们以“娃”字为例,我们选中“娃”,然后点击网格的头部,在2秒以后的区域比如3秒的时候添加一帧,添加一帧的具体含义就是将该元素的某个属性变化一下,就会自动添加一帧,这个点击实际上也就是定位而已,比如我这里设置“娃”的竖向位移 Y Coordinate, X方向也可以调整一下。这里面有几个要点是:1,绿色条表示的是某个时间段内(某个帧的开始结束时间对),某个属性从开始到结束的属性变化,比如下图为Position属性。2,红色调表示的是不变化的时间间隔,即是到下一个帧开始之前都维持当前的属性变化值。这和空白是不同的,这种也是表示的是动画状态,只不过是一般用于过渡而已,比我我们现在要做的,需要停止一段时间再开始新动作,如果不停止这一段时间,则会变成到下一帧开始变化的国富动画。这一点和Blend里面是有类似之处的。

       所以下图的具体含义就是:从0到2秒,“娃"的position属性中的某个值从0秒的值过渡到2秒的值,即时一个过渡动画。然后从2秒到3秒,维持2秒的position的属性值,然后从3秒开始,值会开始变化,从3秒的值过渡打3.4几秒的值,我们这个例子中就是将"娃"的竖向位移往上移动了一定距离,动画效果就是移动到顶峰的感觉。然后从3.4几秒到3.8秒,表示我们在顶峰这个位置停留了这么长的时间,然后从3.8秒开始,"娃"将从顶峰下降到原来的水平位置。也就是说,接近5秒的这一帧就是回到了2秒的位置。(仅限于本例中)。

       ZAM 3D的这个帧动画和Blend有一些不同在于:Blend中没有停止即是下图中红色区域这种概念,我们需要手动的拖动持续区域的条来达到这样的“滞留”效果。而且Blend中的空白所表示的意思就是当前状态的值的意思,它会从这个状态开始过渡到下一帧开始的值。经常使用Blend的话这个应该还是比较好理解的吧。Blend的一些基础操作我以后也会抽点时间来介绍一下,包括行为,事件,样式,动画等等。

 

          好,如果一切OK的话,目前的效果应该是和下面差不多的:(当然时间,路径各方面,都是可以随意调节的。)

 

          最后,剩下就是在这个过程中的翻转了,如果使用过Blend的,那么也很好做了,和上面的差不多,只不过我们这次改变的是Rotation 旋转这个属性:

      

 

            确保Rotation 5个红色区间的X,Y,Z值分别为:0.0 0.0 0.0/180.0 0.0 0.0/0.0 0.0 0.0/180.0 0.0 0.0/0.0 0.0 0.0,其中,1,3,5分别是初始,顶峰和结束时候的XYZ旋转值。2和4是中间值,如果不设置也就谈不上旋转不旋转了。这里要注意的是,第二和第四个值输入后有可能系统会帮你校正它的Rotation值,这个不用管它改成多少那就用多少吧。最后效果图如下:

   

 

         位置,时间的多少,都是可以自行调整的。Tips:和Blend一样每一帧都是可以有缓冲效果的,只不过都很简单,而且只能自己拖动。方法是选中某一帧,然后右键菜单的Propertites选项。

         最后就是File->Export Scene To Xaml了,一路默认Next就可以了,剩下的大家应该都懂了,就可以直接拿到WPF中去使用了。也可以在Blend中打开看看是怎么样子的,默认是ViewBox缩放的。

         把时间和缓冲加上,然后把路径拉到Scene之外,最后的再WPF中效果差不多是这样的:

        

          眼睛好一点的也许发现了,在实际的WPF程序当中,动画和ZAM 3D中的动画是有一些偏差和出入的,比如ZAM 3D中娃字是要等待一下然后再跳起来,而到了WPF中则是很连贯的,这点我们可以在Blend中打开修改一下应该就可以一致了。

          总结一下:实际上ZAM 3D 中还有很多功能值得探讨,比如灯光,模型等等,比较有趣的一个是可以自己手绘一些基本的3D形状拿来生产,嗯,不过审美观不行的还是算了吧,还是拿设计好的模型比较靠谱。由于3D字都是用路径绘制而成,因此也就失去了一些通用性,不过应该没什么问题,一般都是定制的。所以如果要更换字幕,这些流程一定要熟悉才行,不然就冤大头了啊。话说Blend的界面还是要顺眼多了,这个ZAM 3D实际上还有很多改进的顶峰,比如有时候点击关键帧它会出现误操作,妖魔拖不动要么莫名其妙的多了一格出来,嗯,也许是我操作不当造成的,反正就是感觉不如Blend来得顺手啊。反正也不是经常用,先就这样吧。

          对了,最后生成的XAML代码如下:

          

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
99
104
105
106
107
108
109
110
111
112
113
114
119
124
125
126
127
128
129
130
131
132
133
134
139
144
145
146
147
148
149
150
151
152
153
154
159
164
165
166
167
168
169
170
171
172
173
174
179
184
185
186
187
188
189
190
191
192
193
194
199
204
205
206
207
208
209
210
211
212
213
214
219
224
225
226
227
228
229
230
231
232
233
234
239
244
245
246 247
248
249
250 251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293 294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497 498
499
500
501
502
503
504
505 506 507
View Code

 

转载于:https://www.cnblogs.com/yk250/p/5663907.html

你可能感兴趣的文章
AOP jdk动态代理
查看>>
windows常用操作
查看>>
NYOJ-85 有趣的数 AC 分类: NYOJ ...
查看>>
(一)linux下hadoop安装配置
查看>>
Google七项不得不知的搜索技巧
查看>>
FireFox不支持InnerText的解决方法
查看>>
jsp打印
查看>>
从类开始
查看>>
iOS中真机连接电脑运行程序出现问题
查看>>
java安卓如何实现定义接口
查看>>
Union大小
查看>>
南邮CTF--bypass again
查看>>
函数的渐近增长
查看>>
动态参数
查看>>
FirewallD常用命令及设置
查看>>
Slight difference between C++ and C
查看>>
c++类的嵌套(1)
查看>>
Android SqlLite数据库的创建、增、删、改、查、使用事务
查看>>
phpStorm无法使用svn1.8的解决办法
查看>>
Talk is cheap,show me the code
查看>>