有时,在小型开发板上分模块地测验代码,要比自己在大脑里想出整个完好的多模块运用更切实践。你要做的仅仅现在就着手,一行一行地编写代码。
周末咱们打算在电子棋盘游戏体系上开发几款游戏。咱们要做的是将思路转化成实践的一款游戏,而非仅仅含糊的规划理念或主意。
终究咱们打当作一款虚拟足球游戏。假定您是玩家,请问您是否更期望竞赛时有同步的现场说明呢?当您操控球场上的人物,测验阻拦、抢球但球却不当心漏掉时,此刻若刚好呈现谈论员或说明员的声响,您是否会更有感同身受之感?
咱们深信这款游戏定会很受欢迎。而此刻一个更斗胆的主意诞生了。是否能够考虑让一个“活生生的说明员”呈现在屏幕上方呢?让“John Moston”带着麦克风,在屏幕画面里为咱们现场说明?
听起来蛮激动人心的,但做起来却适当有难度。
提到能与模仿3d人物(假如你对此感兴趣,能够试试Hash Animation Master)做到口型同步的说明员,恐怕即便追溯到多年曾经,也仅有如奥康娜几位寥寥无几。短短3分钟的动画片,在录制、回放、擦除、设置关键帧中不断重复,以至于耗时长达3星期之久,所以说这个使命绝不轻松。
Michael历来拿手处理原始动画的形音合作。他提议说,咱们能够试试在不影响文娱作用的前提下稍加改动,经过实时动态处理:让张口巨细与声响的振幅保持一致。
听起来好像在逃避困难,不过这样做至少重要部分完成了同步(如声响开端前和说完一句话时嘴都是闭合的)。其间说的话就让它从嘴里喋喋不休说出就好了。当然,最好是人工处理下每个词组的关键帧。
Michael又提议说,已然能做到实时嘴型同步,那么完成音频的可交换也就不在话下了:加载一个mp3文件并播映,然后让屏幕中的嘴动起来。再加载另一个mp3文件,替换声响但选用相同的同步办法,这样能够答应自界说和用户生成目录。
到了这一步,内容现已远远超越咱们开端的想象。但大多时分,人们总是在极端急迫、看似不可能的期限里,终究超卓地完成了使命并超越自我,不是么?
所以咱们就开端着手做足球游戏了。咱们选用了一较长的mp3单曲文件,其间包括了很多足球术语和老生常谈。咱们将其分隔,竞赛时依据不同情形播映不同的音效。
mp3播映时(显示屏上的卡通头像就在进行说明谈论),体系会按比特逐个剖析音频数据,一起记载这一时间段内的均匀振幅,据此操控显示屏上头像的张口巨细。
到此为止还相对简略……
为了测验咱们将霍默·辛普森的一些惯用语用Audacity合成了一个更大的单mp3文件。运用Audacity这个免费而强壮的音频编辑器,优点在于你能够在音频文件的不同节点创立标签图层。
在此需求留意,当你在标签轨上挑选一个节点时也将播映头更新到了音频数据的相同方位:这将有助于实践播映的音频的方位追寻。
咱们在音频文件的特别节点方位做了简略符号,来表明在哪个节点方位说了哪些话。
将输出为一个文本文档。
按理说每个词组都能够打开标签并界说开始和完毕,鉴于咱们的mp3轨迹包括太多的词组且相邻距离太短,因而这儿没有必要,咱们权当下一个词组的开始便是上一个词组的完毕,只需确保每个词组分隔(即不堆叠)就没问题。