First look at the length of this post. There is a reason it's very long: Karaoke is very complicated. 首先,请看好这篇文章的长度。之所以这么长的原因是:karaoke是很繁杂的。
Leaning to make good karaoke takes many years. 学习做karaoke特效需要很多年。
Making good karaoke takes both artistic talent and computer programming talent. 做出好的karaoke特效需要同时具备艺术天赋和程序设计天赋。
Be prepared to spend many weeks learning the tools. 做好准备花几周时间去学习使用工具。
There are no shortcuts. 捷径并不存在。
Please understand the above before you continue reading.
在继续下一步之前请理解以上的话。
If you'd rather have fun with your friends, and certainly don't spend hours upon hours in front of your computer reading things, trying out things, pulling our your hair, this is not for you.
如果你更喜欢和你的朋友出去玩,而显然不会为特效日以继夜地坐在电脑前阅读资料、做试验并为之抓狂,那么做特效不适合你。
If you have trouble understanding this because your English is poor, sorry, this probably isn't the best place for you to get help. However, remember that the only way to get better at a language is to use it.
如果你英语很糟糕以至于不能理解上述话,对不起,这里不是你获得帮助最佳的地方。另外,请记住提升语言的最好的方式就是去使用它。
To be frank, I don't think there is any good "path" to learning making good karaoke effects. It's really more of learning a lot of separate skills first, that are only somewhat related, and individually not really useful for creating karaoke, and then finally in a sudden flash of inspiration understand how to combine all those skills into making karaoke effects.
坦白的说,我并不认为学习做出色的特效存在什么好的“途径”。不过是先学很多独立、只存在些许关联的技能,甚至有些技能对于做特效并不很实用,然后最后忽然灵感迸发,懂得如何去结合这些技能去做卡拉OK特效。
Yes, my opinion is that making karaoke effects is either something you "get" or not. Either you're one of those persons who "just get it" or you're not, and there isn't any good way of telling which category someone falls into.
我认为做卡拉OK特效就是你是“会”还是不会。即你是否属于那些“开窍”了的人,而这里并没有很好的区分方法告诉你,你属于哪一类人。
It's about being able to combine various different tools in clever ways. For making ASS karaoke effects the "tools" would be:
下面是关于巧妙结合各种不同工具的方法。对于做ASS 卡拉OK特效而言,可能有以下“工具”:
1. Knowing the ins and outs of every single override tag and having a good feeling for how they work. Read the documentation on all the overrides over and over again and remember it all. Try them all out in practice and in all kinds of possible and impossible combinations to get a feeling for what works and what doesn't. There's pretty much an infinite number of combinations so it's obviously impossible to list every single thing you can do. This is why you need to not just know the technicalities of every tag, you need the imagination to think of ways to combine them.
1.详尽的了解每个单独的标签(就是大家所熟知的ass代码)并且很好的体会标签是如何工作的。反复阅读每个标签的说明档并且熟记于心。逐一尝试每个代码的各种可能和不可能的组合,了解哪些组合是有效的,哪些是无效的。组合的数目是无限的,所以列明每个组合显然是不可能的。因此你不仅仅要知道每个标签的技术细节,而且要发挥想象力去思考把它们组合起来的方法。
2. Be proficient in programming. All advanced ASS effects are created using by writing a program (script) that transforms some simple timed input into complex effects. To some degree this also hooks back into point 1, knowing the override tags and how to combine them. The choice of actual programming language is irrelevant, any modern language should be useful for creating karaoke effects. There are some libraries/environments designed for creating karaoke effects (like Aegisub Automation with Lua) which are obviously more suited for working with/in, simply because they provide a framework so you can focus more on generating effects than eg. reading the input, but in the end they're just helps, not requirements, and anything can be used. (In fact I'd recommend trying to do karaoke without using a framework, or write a framework for yourself, since that gives a much better understanding of the mechanichs and eventually should lead to yourself becoming a better karaoker.)
2.熟悉编程。所有高级的ass特效都是通过写程序(脚本)做出来的,程序可以把输入的简单的时间轴转换为复杂的特效。在一定程度上说,我们又回到了第一条,即掌握标签和了解如何组合标签。选择哪一种编程语言是无所谓的,任何现代计算机语言都可以被用来做卡拉OK特效。有一些被设计好用于做 卡拉OK特效的运行库或者环境(比如集成了Lua的Aegisub)很显然更适合拿来使用,因为它们提供了框架使你可以集中更多的精力在生成效果上,而不是在比如读输入数据上。但是,说到底,它们只是辅助,而不是必须品,可以尝试任何可用工具。(其实我推荐尝试不用框架做卡拉OK特效,或者自己写一个框架,它可以让你对技术有更好的理解,从而最终致使你变成更好的卡拉OK制造者。)
By the way, this point refers to programming in general, as a concept, not just knowing one or two specific languages, but rather the ability to think of programs in an abstract way and learn languages on demand.
顺便说,这一条是指从宽泛的概念上编程,并不是仅仅熟知一两门特定的语言,而是掌握抽象思考编程的能力,并按需求学习编程语言。
3. Have free time, lots of it. Any creative work takes time and effort. Of course it's possible to take shortcuts by using pre-written elements/elements and "just" combine those, but doing that also limits the possibilities and in the end, to create something original you will need lots of free time. Patience and curiosity to experiment also falls under this.
3.有大量的空闲时间。任何创造性的工作都需要时间和努力。当然,使用预先写好的代码并直接组合起来也是一种捷径,但是这种方法会限制特效多种多样的可能性。总之,创造原创的东西需要很多空余时间,以及对实验的耐心和好奇心。
In the end, what I find the hardest myself, is getting a good idea. It's impossible to get anywhere without an initial idea of what you want to create.
最后,我自认为最难的是有一个不错的想法。而如果你对于特效作品没有一个草图的话,是不可能灵机一动产生想法的。
There's generally two ways to get ideas.
大体上有两种方法可以产生想法。
First is to think of the tools you have available and want to use, then think of ideas you can implement using those tools, ie. adapt your ideas to your tools. I think this is often the faster way to get somewhere, since you limit the "idea space" a lot when limiting your tools. If you're pressed for time, this is a better choice.
第一种方法是先想想你自己所有可用并且希望使用的工具,然后绞尽脑汁思考用这些工具能够实现什么想法,也就是说让你的思维去适应工具。我认为这往往是产生想法最快的方式,因为你所能使用的工具受限的同时,也限制了你的“思维空间”。如果你很忙的话,这个方法比较好。
The other is to let the imagination free and think of anything at all, and when you have a mental image of what you want to create, think of what tools could perhaps be used to implement that idea. This can be much harder, since there's no limit on the idea space, meaning it can be harder to decide on one single thing. Also, the tools required to implement an idea might not even really exist yet and you might need to create new ones. In the end you may need to adapt even "freeform" ideas to some tools to make them practically doable.
另外一种方法是自由随意地想象任何事物,然后当你对于想创作的作品有了一幅脑内草图时,再去思考什么样的工具或许能够实现这个想法。这个方法难度会更高,因为无限制的想象意味着可能会很难抉择。同时,能够实现这个想法的工具可能还未问世,而你则需要去创造新的工具。而最后你有可能仍然需要让“自由发散”的想法去往工具上靠,从而使你的想法变得可行。
Most of the tools I have released (either as part of Aegisub or separately) are made as a result of an actual need. I originally made Aegisub Automation because I didn't have any tools for making karaoke at all. I had all kinds of ideas on how I would like to be able to generate ASS karaoke but didn't have the tools to be able to do it, the result was Automation. Using "clean" Auto3 was a hassle so I put even more of the tedious parts into the Karaskel. Then I wanted to create lots of different effects intermixed (my FLCL ED, for reference), but Karaskel didn't allow that in an easy way, so I added the "ool-fx" and "inline-fx" features. (In the end, ool-fx didn't survive into the Auto4 karaskel.) For a long time I wanted to do really crazy things and though of ways that could be done. Crazy things like my Gundam 00 karaokes. The result was OverLua.
我所公布的大多数工具都是实际需求的产物。起初我开发了Aegisub Automation,因为当时我没有任何用于制作卡拉OK的工具。关于如何生成ASS文件,我有完整的想法却缺少实施的工具。其产物就是 Automation。而“纯净”Auto3的使用相当困难,因此我把大多数繁琐的工作放在Karaskel中。之后我又希望糅合各种不同特效(例如我的 FLCL ED),但Karaskel无法简单地实现,因此我添加了"ool-fx"和"inline-fx"功能。(ool-fx最后在Auto4中被抛弃)。曾有一段时间我想过去做一些很疯狂的事情,并且思索如何去实现,例如我的Gundam OO卡拉OK效果。其结果便是OverLua。
Yes, pretty much all of it is a result of my more or less direct need, but I tried making things as generally useful as possible whenever I did something new.
的确,这些基本都是我或多或少的需求所带来的产物,不过当我开发一些新的功能时,会尽量使其适用性更广。
In the end, it's not about the tools used, but how the final, rendered effect looks and feels, it's about the idea.
文末,所谓想法不是指使用什么工具,而是最终渲染出的特效的外观效果以及给人的感受。
To get back to the original question, what you should learn next, my answer is "everything". You need to learn the technicalities of every tool first, then "find your red pill" and figure out how to combine things to make interesting effects.
回到最初的问题,你接下去应当学习什么,我的回答是“一切”。你首先需要学习所有工具的技术,然后“找到你的red pill”,然后思考出如何组合它们以创作出有趣的特效。