教程二

前一篇教程 中,我们了解了如何使用卡拉OK模板执行器的基本特性,并且能创作简单的卡拉OK效果。 本篇中,我们将继续走下去,拓展一些知识。

准备

就像前篇一样,准备好打好K值的行和用来预览效果的视频。在此不赘述有关细节。

添加淡出

回忆一下,这是上一篇教程给出的示例模板:

{\r\k$kdur\t($start,$end,\1c&H00FF00&)\t($start,$mid,\fscy120)\t($mid,$end,\fscy100)}

我们现在需要给它加入一个淡出效果,在每个音节唱完 之后 淡出,不是立即。我们需要进行一小点数学计算来做到这点: 在 $end 时开始淡出, 在 $end+200 时结束淡出。这个效果相当于每个音节唱完后 200 毫秒,这个音节完全消失。

对模板做如下修改:

{\r\k$kdur\t($start,$end,\1c&H00FF00&)\t($start,$mid,\fscy120)\t($mid,$end,\fscy100)\t($end,!$end+200!,\alpha&HFF&)}

然后试试再次应用模板。你会看到在上一个模板的基础上,产生了淡出效果。

魔法就在于两个感叹号之间: !$end+200!

当你写了一对感叹号"!"(注意:一定要是半角),它们之间的内容将会被作为 表达式 处理(事实上是个小小的 Lua 程序,但是别担心这个)。我们利用这个表达式在结束时间上加上200毫秒,获得一个新的数字。结果就是带有 \t 参数的淡出效果由 $end 持续到之后的 200 毫秒。

改变 伸长/收缩特效

也许你觉得只是伸长/收缩以中间时间作为分界有些不合适。你也许觉得达到最大高度早于中间时间,剩余的时间用于变回原样比较合适。我们就做如下修改:

{\r\k$kdur\t($start,$end,\1c&H00FF00&)\t($start,!$start+$dur*0.3!,\fscy120)\t(!$start+$dur*0.3!,$end,\fscy100)}

使用这个模板,伸长特效只占用十分之三的音节持续时间,余下十分之七用来收缩。我们使用了一个新的变量 $dur。它是音节的持续时间,以毫秒为单位 时值上等同于$kdur 。(事实上前者的数值是后者的10倍,可以视情况进行代换)

注意我从中移除了淡出特效,这是为了让你看到的更短更易理解。你也可以尝试把它加进来。

希望这篇教程能给你一些点子。在 下一篇 教程中,我们将会添加另一层东西到字幕上,这就是多模板的应用。