作者 | 许伟
选自 |《影视制作》11期
订阅 | 010-86092062
使用音频数据来驱动动画往往会使计算机动画带来非常精准的动画参数设置和震撼的视觉效果。在Maya中一直没有直接的方法使用音频驱动对象动画,直到软件更新到2017版才在软件中引入了音频节点。本文尝试在不使用软件的音频节点、软件的脚本或插件的情况下,借助其他软件和Maya软件自带的功能来产生音频数据驱动动画的方法。
这种方法可分为三个部分:提取关键帧、制作符合Maya格式的关键帧文件以及将Maya格式的关键帧文件链接给Maya场景对象。
使用AfterEffects软件提取音频关键帧
S
首先准备一个可识别的能导入After Effects 软件中进行编辑的音频文件(如mp3、wav等), 将其倒入AE的项目面板中,将其置入时间轴面板中,在其上按鼠标右键,在弹出的菜单中选择“关键帧辅助”→“将音频转换为关键帧”,如图1所示。
图1
S
这样操作后会在时间轴面板的音频剪辑上产生一个“音频振幅”层,展开“音频振幅”层,将其下“效果”中的“双声道”位于时间轴面板右侧的全部关键帧数据全选并进行复制。如图2所示。
图2
S
然后将复制的关键帧数据粘贴到文本处理软件如Word中,得到如图3所示的数据内容。将红色区域的内容删除,只保留第一列帧编号和第二列的关键帧数据部分以备后用。
图3
制作符合Maya格式的关键帧文件
在Maya中制作要用音频驱动运动的对象。例如,我们要用音频驱动一个小音箱喇叭上纸盆随音乐节奏的振动效果。
S
在Maya场景中选择如图4所示的音箱上喇叭的纸盆,并为其添加菜单“Deform” →“Nonlinear”→“Wave”。为避免Wave 变形影响到纸盆对象的边缘部分,应该在通道盒面板中选择Wave的输入节点,将Dropoff的值设置为1,这样Wave的变形在纸盆边缘会产生衰减。根据需要适当设置Wave在纸盆上产生的Wave Length(波长)参数。
图4 图5
S
选择纸盆对象,在通道盒中的Wave输入节点的Amplitude的属性上设置2到3个关键帧,如图6所示。
图6
S
在Maya的插件管理面板中加载AnimImport Ex插件,以便能导出动画数据文件,也就是将被选择的纸盆对象设置的关键帧动画数据,输出成一个后缀为.anim的动画文件,如图7所示。
图7 图8
S
用Word打开后缀为.anim的动画文件和本文第一部分AE中提取的音频振幅的关键帧数据文件,如图9和图10所示。
图9 图10
S
接下来要将在AE中提取的关键帧数据文件中每行数据的后面,用Word软件中的“查找替换”命令添加上“auto auto 1 0 0;”,并且还要根据AE中提取的关键帧数据文件中的结束帧数去更改如图9中红色框中的“endTime”后面的值。改好的数据文件如图11所示。
保存这个整理好动画关键帧的数据文件。
图11
将符合Maya格式的关键帧文件链接给Maya对象
S
回到Maya中,选择第二部分设置好关键帧的喇叭纸盆对象,调用菜单“File”“Import”命令将第二部分保存的数据文件选中载入,即可自动将文件中的关键帧数据赋给纸盆上的“Wave”节点的Amplitude属性,如图12所示。
图12
S
由于直接载入的关键帧数据值过大,它与Wave上的Amplitude属性产生起伏运动的大小不匹配,从而会产生纸盆振动过于剧烈的错误情况,因此还需要使用Maya的“Node Editor” 里创建一个“setRange”节点编辑关键帧数据,使其产生一定范围内的关键帧数据。
打开“Node Editor”。在两个红色的矩形框中间插入一个“setRange”节点,对其输入的关键帧数据范围进行重新指定,也就是缩小动画数据的取值范围,如图13右侧设置。
图13
通过上面三个部分的操作就可用音频文件来驱动Maya中的对象,而不必借助脚本或插件,也不需要Maya的更高版本的软件来实现这个功能。
END
微信公众号现已全新改版,多多评论分享或将【影视制作】设置为星标订阅号,即可Get更多制作干货~
【热门推荐】