Posts Tagged ‘tip’

AE - Advanced Ramp

2008-6-24-002

AE没有直接画渐变色的工具,Ramp 特效也不支持超过两种颜色以上的渐变。解决方法是先用 Ramp 画出黑白渐变,然后用 Colorama 映射渐变到其他颜色。

另外一个问题是 Ramp 的起始和结束位置是固定的,当图层移动的时候,颜色不会跟随着移动。简单的方式是把 Start of Ramp 和图层的 Position[1] 相关联,把 End of Ramp 设置为 Position[1] + 图层高度。

另一个便于调节的方法是引入一个 Point Control 特效作为控制器,取名为 Position & Spread。第一个值用于控制渐变的位置,第二个值控制渐变的范围跨度。值得注意的是 Point Control 特效的定位方式:对于一般图层定位点是左上角,而文字图层的定位点则始终是场景的左上角。所以针对两种情况有不同的Expression 定位方式。

预设文件下载:advanced_ramp.zip

ps. 本文介绍的方法来自老外的教程,我做了一些调整。

AE - 3D Helper

2008-6-24-001

在用 Trapcode 的 3DStroke 、Particular 和 Form 结合镜头动画来做一些特效的时候,AE内置的3D功能缺点暴露的比较明显:视图刷新速度比较慢,没有辅助定位的网格等。以下是几点建议:

  1. 使用专业图形显卡,打开视图的 OpenGL 加速功能,可以得到一定的提速。
  2. 自己模拟一个平面网格来辅助定位,还可以设置一些标识来表示XYZ方向。
  3. AE没有在3D空间中画曲线的功能(3DStroke 也只是把平面画好的曲线转化到3D空间中去而已)。路径动画的曲线可以在一定程度上代替这一功能(见上图),Particular 滤镜就是用灯光的动画曲线来做粒子的运动路径的。
  4. 将摄像机的位置点和目标点分别绑定到不同的空物体上分开做动画,这样调节比较简单。
  5. 调节动画曲线的时候可以切换值图(Value Map)和速率图(Speed Map),可以直观的看到两者之间的影响。还可以直接从路径上点分布的疏密程度来看物体的移动速度。

针对这些问题,我制作了一个 3D Helper 文件,包含了辅助工具 3D Grid 和 3D Point ,另外还有两个摄像机的绑定设置和一个使用演示。

下载: 3DHelper.zip

BlendMode.LAYER

SNAG-000

当为包含子对象的DisplayObject或MovieClip设置alpha值的时候,默认是会把所有子对象都设置透明再叠加在一起,如中图的情况。如果把层混合模式设置为: BlendMode.LAYER ,Flash会认为该对象只有一层,而不会产生叠加的情况,如右图。

很有用的技巧,谢谢 Zedua flash blog 的分享。

ps. MXNA 变身 Adobe Feeds 回来了。

H.264初探

早听说H.264压缩比很高,并被Apple Movie Trailer、iPod、Apple TV、Sony PSP、蓝光等广泛采用。Youtube在2007年6月以后上传的视频也是用H.264编码。Motion交流社区xplsv.tv也将它作为推荐格式。而且随着Adobe Flash Player支持H.264,我们有必要了解一下这种先进的编码方式,并逐步整合进工作流程。

今天在AE里尝试了一下,压缩效果自不用说,出人意料的是压缩时间还挺短。在我的电脑上(CPU:Q6600),一段10s的轿车360度JPG序列(1024x400,略高于DVD标准),编码使用预设设置,只压了9s。用Sorenson3压mov格式的话是13s。如果视频时间长的话,节省的时间是可观的。

在设置上有两个参数比较特别:Profile和Level。对此在Wiki上有比较全面的解释。初始的NTSC DV Preset中Profile=Main,Level=3是对应于标准DVD精度而设置的。在上例中要稍微提高Level的值,使其支持更高的分辨率。更高的的Level值可以支持蓝光等高清格式的压缩,当然也要相应的设置更高的Profile使其支持更多的压缩特性。如果是压320x240的iPod或PSP视频,只要1.3的Level就可以了。

SNAG-001

在Bitrate Setting下设置压缩精度,可以通过最下方的Estimated File Size来直观的看到最后总的Bitrate。随后就是不断的尝试文件大小和精度之间的平衡。值得一提的是我尝试将Bitrate缩小后,得到了更快的压缩时间(6s)。

PV3D优化CPU占用技巧

PV3D菜单两例中我提到了CPU占用的问题,今天把解决思路在此探讨一下。

在第一版完成后,发现了CPU占用过高的问题。按照常规的方法,先逐步减少透明元素等占用资源最大的“罪魁祸首”,如高光动画,阴影等。但是效果不大(只有5%~10%左右的降幅)。

随后尝试将贴图的MC设置为位图缓存(cacheAsBitmap),但其实这步也是无效的。因为PV3D引擎本身就会把所有的元素做位图缓存再重绘。

再尝试把StageQuality降下来,通常做法是运动的时候把质量设置为LOW,待到运动结束再恢复为HIGH。

但是这种做法还需要一个前提才可能成立:那就是我们假设运动等同于屏幕重绘,也就是说运动时设置屏幕重绘,不运动的时候屏幕不重绘。所以我们必须处理 Event.ENTER_FRAME 事件,使其中的逻辑符合我们的假设,那么优化才可能有效。

那么现在问题的症结已经清晰:PV3D引擎的每帧重绘是最占用资源的操作,我们应该减少不必要的重绘。特别是这种互动导航类型的应用,一旦状态固定,就必须移除重绘。

于是我尝试加入状态判断的逻辑,当检测到运动结束后移除 Event.ENTER_FRAME 的侦听。但是产生了一个致命的问题:一旦renderer.renderScene()不执行,鼠标事件(InteractiveScene3DEvent)也侦听不到了。看来PV3D的互动支持必须依赖于每帧重绘或者是重绘方法其中的一些步骤。接下来就让我们把鼠标事件响应的功能找回来。


More...

PV3D GreatWhite

PV3D的版本变动的很勤快,若是没有一定的精力的确很难啃下来。Google Code上的1.5版本虽然文档比较全,但是架构已经落伍了。所以新加入的同学们一定要从SVN上下最新的版本(在branches\GreatWhite\目录下)。本文发布的时候已经是r531,支持动态变换材质

之前贴过的一些例子是基于旧版本的架构,就不要再看了点这里有基于新架构的文档,但是版本也不是最新,所以有些新加入的功能还是要靠自己去读代码了。此外,这个网站的教程都是基于新版本更新的,建议收藏下来以帮助提高学习效率。

在GreatWhite的架构中,Viewport3D(也就是所有PV3D元素的根Container)中的所有元素都是每帧重画的位图信息。Viewport3D是继承自Sprite,有一个buttonMode属性来改变鼠标状态。但是内部的元素在显示层级上只有位图信息,没有自己的buttonMode。(3D元素最终还是要转化为可以显示出来的DisplayObject)

对互动材质的实现更加合理,只需改变材质的interactive属性即可。发出的事件也是PV3D自定义的InteractiveScene3DEvent,而不是as3内置的那些(MouseEvent)。

这样一来产生一个鼠标状态改变(手型指针)的问题,因为改变容器的buttonMode只会让所有Viewport3D中的物体产生指针变化。如果只想有互动的3D物体才产生变化,解决方法是在监听事件上动态的改变容器的buttonMode属性

Using Flimstrip Format

SNAG-0133 

Flimstrip是一种很有用的文件格式,通过它我们可以进行以下工作流程:

AE导入视频 → 导出flm → PS导入flm,处理 → AE导入flm

可以看到通过这种格式,PS一次只能处理单帧画面的限制不复存在。因为flm本身就是保留了影片信息的单帧集合图像。在这样的流程中,PS的各种强大功能和各种滤镜也能够在视频处理中派上大用场。赶快来学习下这篇教程,掌握这种方便的格式吧。

[tags]tip, After Effects[/tags]

有用的小工具-FLVExtract

有些时候需要把flv文件重新编辑,可是通常的转码或编辑软件都不认flv的。这时候可以用FLVExtract这个小工具,把flv中的视频和音频信息提取出来。

这个工具其实就是一个分离器(Splitter),所以转换的速度非常快,也不会有精度损失的问题。只是出来的avi文件编码还是flv的,需要自己机器上有解码器才可以播放/导入。这时候再用AE或者其他软件就可以自由编辑啦。


Download

Close
E-mail It
Socialized through Gregarious 42